Skip to content
This repository was archived by the owner on Nov 24, 2018. It is now read-only.

Commit

Permalink
Merge pull request #183 from criticalbh/feature/cookies-by-name
Browse files Browse the repository at this point in the history
feat: cookies get by name
  • Loading branch information
adieuadieu authored Aug 6, 2017
2 parents 9e3842c + 267ac3f commit f811937
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 43 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- `clearCache()` API method [#122](https://github.com/graphcool/chromeless/pull/122) @joeyvandijk
- `scrollToElement()` command and `scrollBeforeClick` constructor option [#15](https://github.com/graphcool/chromeless/issues/15), [#167](https://github.com/graphcool/chromeless/pull/167) @janza
- Mocha E2E tests [example](examples/mocha-chai-test-example.js) [#164](https://github.com/graphcool/chromeless/pull/164) @FabioAntunes
- `cookies(name: string)` API method [#183](https://github.com/graphcool/chromeless/pull/183/files) @criticalbh

### Changed
- **Breaking:** We renamed `cookiesClear()` to `deleteCookies()`, `cookiesClearAll()` to `clearCookies()` and according to semver should bump the version to 2.0.0, however, just-this-time, we're not going to. [#123](https://github.com/graphcool/chromeless/pull/123) @joeyvandijk
- We renamed `cookiesGet(name: string | query: CookieQuery)` to `cookies(name: string | query: CookieQuery)`, `cookiesGet()` to `cookies()` and `cookiesGetAll()` to `allCookies()` [#183] (https://github.com/graphcool/chromeless/pull/183/files) @criticalbh

### Fixed
- Chromeless can now be imported into TypeScript projects with activated `strictNullChecks` compiler option [#154](https://github.com/graphcool/chromeless/pull/154) @clebert
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,10 @@ const chromeless = new Chromeless({
- [`screenshot()`](docs/api.md#api-screenshot)
- [`pdf(options?: PdfOptions)`](docs/api.md#api-pdf)
- [`html()`](docs/api.md#api-html)
- [`cookiesGet()`](docs/api.md#api-cookiesget)
- [`cookiesGet(name: string)`](docs/api.md#api-cookiesget-name)
- [`cookiesGet(query: CookieQuery)`](docs/api.md#api-cookiesget-query) - Not implemented yet
- [`cookiesGetAll()`](docs/api.md#api-cookiesgetall)
- [`cookies()`](docs/api.md#api-cookies)
- [`cookies(name: string)`](docs/api.md#api-cookies-name)
- [`cookies(query: CookieQuery)`](docs/api.md#api-cookies-query) - Not implemented yet
- [`allCookies()`](docs/api.md#api-all-cookies)
- [`cookiesSet(name: string, value: string)`](docs/api.md#api-cookiesset)
- [`cookiesSet(cookie: Cookie)`](docs/api.md#api-cookiesset-one)
- [`cookiesSet(cookies: Cookie[])`](docs/api.md#api-cookiesset-many)
Expand Down
30 changes: 15 additions & 15 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ Chromeless provides TypeScript typings.
- [`screenshot()`](#api-screenshot)
- [`pdf(options?: PdfOptions)`](#api-pdf)
- [`html()`](#api-html)
- [`cookiesGet()`](#api-cookiesget)
- [`cookiesGet(name: string)`](#api-cookiesget-name)
- [`cookiesGet(query: CookieQuery)`](#api-cookiesget-query) - Not implemented yet
- [`cookiesGetAll()`](#api-cookiesgetall)
- [`cookies()`](#api-cookies)
- [`cookies(name: string)`](#api-cookies-name)
- [`cookies(query: CookieQuery)`](#api-cookies-query) - Not implemented yet
- [`allCookies()`](#api-all-cookies)
- [`cookiesSet(name: string, value: string)`](#api-cookiesset)
- [`cookiesSet(cookie: Cookie)`](#api-cookiesset-one)
- [`cookiesSet(cookies: Cookie[])`](#api-cookiesset-many)
Expand Down Expand Up @@ -484,23 +484,23 @@ console.log(html) // <html><head></head><body><h1>Hello world!</h1></body></html

---------------------------------------

<a name="api-cookiesget" />
<a name="api-cookies" />

### cookiesGet(): Chromeless<Cookie[] | null>
### cookies(): Chromeless<Cookie[] | null>

Returns all browser cookies for the current URL.

__Example__

```js
await chromeless.cookiesGet()
await chromeless.cookies()
```

---------------------------------------

<a name="api-cookiesget-name" />
<a name="api-cookies-name" />

### cookiesGet(name: string): Chromeless<Cookie | null>
### cookies(name: string): Chromeless<Cookie | null>

Returns a specific browser cookie by name for the current URL.

Expand All @@ -510,29 +510,29 @@ __Arguments__
__Example__

```js
const cookie = await chromeless.cookiesGet('creepyTrackingCookie')
const cookie = await chromeless.cookies('creepyTrackingCookie')
```

---------------------------------------

<a name="api-cookiesget-query" />
<a name="api-cookies-query" />

### cookiesGet(query: CookieQuery) - Not implemented yet
### cookies(query: CookieQuery) - Not implemented yet

Not implemented yet

---------------------------------------

<a name="api-cookiesgetall" />
<a name="api-all-cookies" />

### cookiesGetAll(): Chromeless<Cookie[]>
### allCookies(): Chromeless<Cookie[]>

Returns all browser cookies. Nam nom nom.

__Example__

```js
await chromeless.cookiesGetAll()
await chromeless.allCookies()
```

---------------------------------------
Expand Down
18 changes: 9 additions & 9 deletions src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,35 +236,35 @@ export default class Chromeless<T extends any> implements Promise<T> {
/**
* Get the cookies for the current url
*/
cookiesGet(): Chromeless<Cookie[] | null>
cookies(): Chromeless<Cookie[] | null>
/**
* Get a specific cookie for the current url
* @param name
*/
cookiesGet(name: string): Chromeless<Cookie | null>
cookies(name: string): Chromeless<Cookie | null>
/**
* Get a specific cookie by query. Not implemented yet
* @param query
*/
cookiesGet(query: CookieQuery): Chromeless<Cookie[] | null>
cookiesGet(
cookies(query: CookieQuery): Chromeless<Cookie[] | null>
cookies(
nameOrQuery?: string | CookieQuery,
): Chromeless<Cookie | Cookie[] | null> {
if (typeof nameOrQuery !== 'undefined') {
throw new Error('Querying cookies is not implemented yet')
if (typeof nameOrQuery !== 'undefined' && typeof nameOrQuery !== 'string') {
throw new Error('Querying cookies is not implemented yet')
}

this.lastReturnPromise = this.queue.process<Cookie[] | Cookie | null>({
type: 'cookiesGet',
type: 'cookies',
nameOrQuery,
})

return new Chromeless<Cookie | Cookie[] | null>({}, this)
}

cookiesGetAll(): Chromeless<Cookie[]> {
allCookies(): Chromeless<Cookie[]> {
this.lastReturnPromise = this.queue.process<Cookie[]>({
type: 'cookiesGetAll',
type: 'allCookies',
})

return new Chromeless<Cookie[]>({}, this)
Expand Down
12 changes: 6 additions & 6 deletions src/chrome/local-runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ export default class LocalRuntime {
return this.clearCookies()
case 'setHtml':
return this.setHtml(command.html)
case 'cookiesGet':
return this.cookiesGet(command.nameOrQuery)
case 'cookiesGetAll':
return this.cookiesGetAll()
case 'cookies':
return this.cookies(command.nameOrQuery)
case 'allCookies':
return this.allCookies()
case 'cookiesSet':
return this.cookiesSet(command.nameOrCookies, command.value)
case 'mousedown':
Expand Down Expand Up @@ -280,11 +280,11 @@ export default class LocalRuntime {
this.log(`Typed ${text} in ${selector}`)
}

async cookiesGet(nameOrQuery?: string | CookieQuery): Promise<Cookie[]> {
async cookies(nameOrQuery?: string | CookieQuery): Promise<Cookie[]> {
return await getCookies(this.client, nameOrQuery as string | undefined)
}

async cookiesGetAll(): Promise<Cookie[]> {
async allCookies(): Promise<Cookie[]> {
return await getAllCookies(this.client)
}

Expand Down
4 changes: 2 additions & 2 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,10 @@ export type Command =
value?: string
}
| {
type: 'cookiesGetAll'
type: 'allCookies'
}
| {
type: 'cookiesGet'
type: 'cookies'
nameOrQuery?: string | CookieQuery
}
| {
Expand Down
16 changes: 9 additions & 7 deletions src/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,20 @@ export async function getCookies(
client: Client,
nameOrQuery?: string | Cookie,
): Promise<any> {
if (nameOrQuery) {
throw new Error('Not yet implemented')
}

const { Network } = client
const {Network} = client

const fn = () => location.href

const url = (await evaluate(client, `${fn}`)) as string
const url = await evaluate(client, `${fn}`) as string

const result = await Network.getCookies([url])
return result.cookies
const cookies = result.cookies

if (typeof nameOrQuery !== 'undefined' && typeof nameOrQuery === 'string') {
const filteredCookies: Cookie[] = cookies.filter(cookie => cookie.name === nameOrQuery)
return filteredCookies
}
return cookies
}

export async function getAllCookies(client: Client): Promise<any> {
Expand Down

0 comments on commit f811937

Please sign in to comment.