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

Commit f811937

Browse files
authored
Merge pull request #183 from criticalbh/feature/cookies-by-name
feat: cookies get by name
2 parents 9e3842c + 267ac3f commit f811937

File tree

7 files changed

+47
-43
lines changed

7 files changed

+47
-43
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1313
- `clearCache()` API method [#122](https://github.com/graphcool/chromeless/pull/122) @joeyvandijk
1414
- `scrollToElement()` command and `scrollBeforeClick` constructor option [#15](https://github.com/graphcool/chromeless/issues/15), [#167](https://github.com/graphcool/chromeless/pull/167) @janza
1515
- Mocha E2E tests [example](examples/mocha-chai-test-example.js) [#164](https://github.com/graphcool/chromeless/pull/164) @FabioAntunes
16+
- `cookies(name: string)` API method [#183](https://github.com/graphcool/chromeless/pull/183/files) @criticalbh
1617

1718
### Changed
1819
- **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
20+
- 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
1921

2022
### Fixed
2123
- Chromeless can now be imported into TypeScript projects with activated `strictNullChecks` compiler option [#154](https://github.com/graphcool/chromeless/pull/154) @clebert

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ const chromeless = new Chromeless({
162162
- [`screenshot()`](docs/api.md#api-screenshot)
163163
- [`pdf(options?: PdfOptions)`](docs/api.md#api-pdf)
164164
- [`html()`](docs/api.md#api-html)
165-
- [`cookiesGet()`](docs/api.md#api-cookiesget)
166-
- [`cookiesGet(name: string)`](docs/api.md#api-cookiesget-name)
167-
- [`cookiesGet(query: CookieQuery)`](docs/api.md#api-cookiesget-query) - Not implemented yet
168-
- [`cookiesGetAll()`](docs/api.md#api-cookiesgetall)
165+
- [`cookies()`](docs/api.md#api-cookies)
166+
- [`cookies(name: string)`](docs/api.md#api-cookies-name)
167+
- [`cookies(query: CookieQuery)`](docs/api.md#api-cookies-query) - Not implemented yet
168+
- [`allCookies()`](docs/api.md#api-all-cookies)
169169
- [`cookiesSet(name: string, value: string)`](docs/api.md#api-cookiesset)
170170
- [`cookiesSet(cookie: Cookie)`](docs/api.md#api-cookiesset-one)
171171
- [`cookiesSet(cookies: Cookie[])`](docs/api.md#api-cookiesset-many)

docs/api.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ Chromeless provides TypeScript typings.
3131
- [`screenshot()`](#api-screenshot)
3232
- [`pdf(options?: PdfOptions)`](#api-pdf)
3333
- [`html()`](#api-html)
34-
- [`cookiesGet()`](#api-cookiesget)
35-
- [`cookiesGet(name: string)`](#api-cookiesget-name)
36-
- [`cookiesGet(query: CookieQuery)`](#api-cookiesget-query) - Not implemented yet
37-
- [`cookiesGetAll()`](#api-cookiesgetall)
34+
- [`cookies()`](#api-cookies)
35+
- [`cookies(name: string)`](#api-cookies-name)
36+
- [`cookies(query: CookieQuery)`](#api-cookies-query) - Not implemented yet
37+
- [`allCookies()`](#api-all-cookies)
3838
- [`cookiesSet(name: string, value: string)`](#api-cookiesset)
3939
- [`cookiesSet(cookie: Cookie)`](#api-cookiesset-one)
4040
- [`cookiesSet(cookies: Cookie[])`](#api-cookiesset-many)
@@ -484,23 +484,23 @@ console.log(html) // <html><head></head><body><h1>Hello world!</h1></body></html
484484

485485
---------------------------------------
486486

487-
<a name="api-cookiesget" />
487+
<a name="api-cookies" />
488488

489-
### cookiesGet(): Chromeless<Cookie[] | null>
489+
### cookies(): Chromeless<Cookie[] | null>
490490

491491
Returns all browser cookies for the current URL.
492492

493493
__Example__
494494

495495
```js
496-
await chromeless.cookiesGet()
496+
await chromeless.cookies()
497497
```
498498

499499
---------------------------------------
500500

501-
<a name="api-cookiesget-name" />
501+
<a name="api-cookies-name" />
502502

503-
### cookiesGet(name: string): Chromeless<Cookie | null>
503+
### cookies(name: string): Chromeless<Cookie | null>
504504

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

@@ -510,29 +510,29 @@ __Arguments__
510510
__Example__
511511

512512
```js
513-
const cookie = await chromeless.cookiesGet('creepyTrackingCookie')
513+
const cookie = await chromeless.cookies('creepyTrackingCookie')
514514
```
515515

516516
---------------------------------------
517517

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

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

522522
Not implemented yet
523523

524524
---------------------------------------
525525

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

528-
### cookiesGetAll(): Chromeless<Cookie[]>
528+
### allCookies(): Chromeless<Cookie[]>
529529

530530
Returns all browser cookies. Nam nom nom.
531531

532532
__Example__
533533

534534
```js
535-
await chromeless.cookiesGetAll()
535+
await chromeless.allCookies()
536536
```
537537

538538
---------------------------------------

src/api.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -236,35 +236,35 @@ export default class Chromeless<T extends any> implements Promise<T> {
236236
/**
237237
* Get the cookies for the current url
238238
*/
239-
cookiesGet(): Chromeless<Cookie[] | null>
239+
cookies(): Chromeless<Cookie[] | null>
240240
/**
241241
* Get a specific cookie for the current url
242242
* @param name
243243
*/
244-
cookiesGet(name: string): Chromeless<Cookie | null>
244+
cookies(name: string): Chromeless<Cookie | null>
245245
/**
246246
* Get a specific cookie by query. Not implemented yet
247247
* @param query
248248
*/
249-
cookiesGet(query: CookieQuery): Chromeless<Cookie[] | null>
250-
cookiesGet(
249+
cookies(query: CookieQuery): Chromeless<Cookie[] | null>
250+
cookies(
251251
nameOrQuery?: string | CookieQuery,
252252
): Chromeless<Cookie | Cookie[] | null> {
253-
if (typeof nameOrQuery !== 'undefined') {
254-
throw new Error('Querying cookies is not implemented yet')
253+
if (typeof nameOrQuery !== 'undefined' && typeof nameOrQuery !== 'string') {
254+
throw new Error('Querying cookies is not implemented yet')
255255
}
256256

257257
this.lastReturnPromise = this.queue.process<Cookie[] | Cookie | null>({
258-
type: 'cookiesGet',
258+
type: 'cookies',
259259
nameOrQuery,
260260
})
261261

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

265-
cookiesGetAll(): Chromeless<Cookie[]> {
265+
allCookies(): Chromeless<Cookie[]> {
266266
this.lastReturnPromise = this.queue.process<Cookie[]>({
267-
type: 'cookiesGetAll',
267+
type: 'allCookies',
268268
})
269269

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

src/chrome/local-runtime.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ export default class LocalRuntime {
9696
return this.clearCookies()
9797
case 'setHtml':
9898
return this.setHtml(command.html)
99-
case 'cookiesGet':
100-
return this.cookiesGet(command.nameOrQuery)
101-
case 'cookiesGetAll':
102-
return this.cookiesGetAll()
99+
case 'cookies':
100+
return this.cookies(command.nameOrQuery)
101+
case 'allCookies':
102+
return this.allCookies()
103103
case 'cookiesSet':
104104
return this.cookiesSet(command.nameOrCookies, command.value)
105105
case 'mousedown':
@@ -280,11 +280,11 @@ export default class LocalRuntime {
280280
this.log(`Typed ${text} in ${selector}`)
281281
}
282282

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

287-
async cookiesGetAll(): Promise<Cookie[]> {
287+
async allCookies(): Promise<Cookie[]> {
288288
return await getAllCookies(this.client)
289289
}
290290

src/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,10 @@ export type Command =
149149
value?: string
150150
}
151151
| {
152-
type: 'cookiesGetAll'
152+
type: 'allCookies'
153153
}
154154
| {
155-
type: 'cookiesGet'
155+
type: 'cookies'
156156
nameOrQuery?: string | CookieQuery
157157
}
158158
| {

src/util.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -324,18 +324,20 @@ export async function getCookies(
324324
client: Client,
325325
nameOrQuery?: string | Cookie,
326326
): Promise<any> {
327-
if (nameOrQuery) {
328-
throw new Error('Not yet implemented')
329-
}
330-
331-
const { Network } = client
327+
const {Network} = client
332328

333329
const fn = () => location.href
334330

335-
const url = (await evaluate(client, `${fn}`)) as string
331+
const url = await evaluate(client, `${fn}`) as string
336332

337333
const result = await Network.getCookies([url])
338-
return result.cookies
334+
const cookies = result.cookies
335+
336+
if (typeof nameOrQuery !== 'undefined' && typeof nameOrQuery === 'string') {
337+
const filteredCookies: Cookie[] = cookies.filter(cookie => cookie.name === nameOrQuery)
338+
return filteredCookies
339+
}
340+
return cookies
339341
}
340342

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

0 commit comments

Comments
 (0)