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

feat: cookies get by name #183

Merged
merged 3 commits into from
Aug 6, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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