@fuman/fetch 0.0.13 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,11 @@
1
- import { CookieJar } from 'tough-cookie';
1
+ import { CookieJar, GetCookiesOptions, SetCookieOptions } from 'tough-cookie';
2
2
  import { FfetchAddon } from './types.js';
3
3
  export interface FfetchToughCookieAddon {
4
- /** cookie jar to use */
5
- cookies?: CookieJar;
4
+ /** cookie jar to use, or extended config */
5
+ cookies?: CookieJar | {
6
+ jar: CookieJar;
7
+ getCookiesOptions?: GetCookiesOptions;
8
+ setCookieOptions?: SetCookieOptions;
9
+ };
6
10
  }
7
11
  export declare function toughCookieAddon(): FfetchAddon<FfetchToughCookieAddon, object>;
@@ -1,7 +1,11 @@
1
- import { CookieJar } from 'tough-cookie';
1
+ import { CookieJar, GetCookiesOptions, SetCookieOptions } from 'tough-cookie';
2
2
  import { FfetchAddon } from './types.js';
3
3
  export interface FfetchToughCookieAddon {
4
- /** cookie jar to use */
5
- cookies?: CookieJar;
4
+ /** cookie jar to use, or extended config */
5
+ cookies?: CookieJar | {
6
+ jar: CookieJar;
7
+ getCookiesOptions?: GetCookiesOptions;
8
+ setCookieOptions?: SetCookieOptions;
9
+ };
6
10
  }
7
11
  export declare function toughCookieAddon(): FfetchAddon<FfetchToughCookieAddon, object>;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@fuman/fetch",
3
3
  "type": "module",
4
- "version": "0.0.13",
4
+ "version": "0.1.0",
5
5
  "description": "tiny wrapper over fetch",
6
6
  "license": "MIT",
7
7
  "dependencies": {
8
- "@fuman/utils": "^0.0.11"
8
+ "@fuman/utils": "^0.0.14"
9
9
  },
10
10
  "peerDependencies": {
11
11
  "@badrap/valita": ">=0.4.0",
package/tough.cjs CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function cookieJarMiddleware(jar) {
3
+ function cookieJarMiddleware({
4
+ jar,
5
+ getCookiesOptions,
6
+ setCookieOptions = { ignoreError: true }
7
+ }) {
4
8
  return async (ctx, next) => {
5
- ctx.headers.append("Cookie", await jar.getCookieString(ctx.url));
9
+ ctx.headers.append("Cookie", await jar.getCookieString(ctx.url, getCookiesOptions));
6
10
  const res = await next(ctx);
7
11
  for (const header of res.headers.getSetCookie()) {
8
- await jar.setCookie(header, res.url);
12
+ await jar.setCookie(header, res.url, setCookieOptions);
9
13
  }
10
14
  return res;
11
15
  };
@@ -14,9 +18,12 @@ function toughCookieAddon() {
14
18
  return {
15
19
  beforeRequest(ctx) {
16
20
  if (ctx.options.cookies != null || ctx.baseOptions.cookies != null) {
17
- const jar = ctx.options.cookies ?? ctx.baseOptions.cookies;
21
+ let cfg = ctx.options.cookies ?? ctx.baseOptions.cookies;
22
+ if (!("jar" in cfg)) {
23
+ cfg = { jar: cfg };
24
+ }
18
25
  ctx.options.middlewares ??= [];
19
- ctx.options.middlewares.push(cookieJarMiddleware(jar));
26
+ ctx.options.middlewares.push(cookieJarMiddleware(cfg));
20
27
  }
21
28
  }
22
29
  };
package/tough.js CHANGED
@@ -1,9 +1,13 @@
1
- function cookieJarMiddleware(jar) {
1
+ function cookieJarMiddleware({
2
+ jar,
3
+ getCookiesOptions,
4
+ setCookieOptions = { ignoreError: true }
5
+ }) {
2
6
  return async (ctx, next) => {
3
- ctx.headers.append("Cookie", await jar.getCookieString(ctx.url));
7
+ ctx.headers.append("Cookie", await jar.getCookieString(ctx.url, getCookiesOptions));
4
8
  const res = await next(ctx);
5
9
  for (const header of res.headers.getSetCookie()) {
6
- await jar.setCookie(header, res.url);
10
+ await jar.setCookie(header, res.url, setCookieOptions);
7
11
  }
8
12
  return res;
9
13
  };
@@ -12,9 +16,12 @@ function toughCookieAddon() {
12
16
  return {
13
17
  beforeRequest(ctx) {
14
18
  if (ctx.options.cookies != null || ctx.baseOptions.cookies != null) {
15
- const jar = ctx.options.cookies ?? ctx.baseOptions.cookies;
19
+ let cfg = ctx.options.cookies ?? ctx.baseOptions.cookies;
20
+ if (!("jar" in cfg)) {
21
+ cfg = { jar: cfg };
22
+ }
16
23
  ctx.options.middlewares ??= [];
17
- ctx.options.middlewares.push(cookieJarMiddleware(jar));
24
+ ctx.options.middlewares.push(cookieJarMiddleware(cfg));
18
25
  }
19
26
  }
20
27
  };