extra-utils 5.0.0 → 5.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.
package/README.md CHANGED
@@ -279,3 +279,74 @@ function pipe<T, U>(
279
279
  , ...operators: Array<(value: any) => unknown>
280
280
  ): U
281
281
  ```
282
+
283
+ ### pipeAsync
284
+ ```ts
285
+ function pipeAsync<A, B, C, D, E, F, G, H>(
286
+ value: Awaitable<A>
287
+ , ...operators: [
288
+ (value: A) => Awaitable<B>
289
+ , (value: B) => Awaitable<C>
290
+ , (value: C) => Awaitable<D>
291
+ , (value: D) => Awaitable<E>
292
+ , (value: E) => Awaitable<F>
293
+ , (value: F) => Awaitable<G>
294
+ , (value: G) => Awaitable<H>
295
+ ]
296
+ ): Promise<H>
297
+ function pipeAsync<A, B, C, D, E, F, G>(
298
+ value: Awaitable<A>
299
+ , ...operators: [
300
+ (value: A) => Awaitable<B>
301
+ , (value: B) => Awaitable<C>
302
+ , (value: C) => Awaitable<D>
303
+ , (value: D) => Awaitable<E>
304
+ , (value: E) => Awaitable<F>
305
+ , (value: F) => Awaitable<G>
306
+ ]
307
+ ): Promise<G>
308
+ function pipeAsync<A, B, C, D, E, F>(
309
+ value: Awaitable<A>
310
+ , ...operators: [
311
+ (value: A) => Awaitable<B>
312
+ , (value: B) => Awaitable<C>
313
+ , (value: C) => Awaitable<D>
314
+ , (value: D) => Awaitable<E>
315
+ , (value: E) => Awaitable<F>
316
+ ]
317
+ ): Promise<F>
318
+ function pipeAsync<A, B, C, D, E>(
319
+ value: Awaitable<A>
320
+ , ...operators: [
321
+ (value: A) => Awaitable<B>
322
+ , (value: B) => Awaitable<C>
323
+ , (value: C) => Awaitable<D>
324
+ , (value: D) => Awaitable<E>
325
+ ]
326
+ ): Promise<E>
327
+ function pipeAsync<A, B, C, D>(
328
+ value: Awaitable<A>
329
+ , ...operators: [
330
+ (value: A) => Awaitable<B>
331
+ , (value: B) => Awaitable<C>
332
+ , (value: C) => Awaitable<D>
333
+ ]
334
+ ): Promise<D>
335
+ function pipeAsync<A, B, C>(
336
+ value: Awaitable<A>
337
+ , ...operators: [
338
+ (value: A) => Awaitable<B>
339
+ , (value: B) => Awaitable<C>
340
+ ]
341
+ ): Promise<C>
342
+ function pipeAsync<A, B>(
343
+ value: Awaitable<A>
344
+ , ...operators: [
345
+ (value: A) => Awaitable<B>
346
+ ]
347
+ ): Promise<B>
348
+ function pipeAsync<T, U>(
349
+ value: Awaitable<T>
350
+ , ...operators: Array<(value: any) => Awaitable<unknown>>
351
+ ): Promise<U>
352
+ ```
package/lib/index.d.ts CHANGED
@@ -11,3 +11,4 @@ export * from './is-symbol.js';
11
11
  export * from './is-date.js';
12
12
  export * from './is-function.js';
13
13
  export * from './pipe.js';
14
+ export * from './pipe-async.js';
package/lib/index.js CHANGED
@@ -11,4 +11,5 @@ export * from './is-symbol.js';
11
11
  export * from './is-date.js';
12
12
  export * from './is-function.js';
13
13
  export * from './pipe.js';
14
+ export * from './pipe-async.js';
14
15
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA"}
@@ -1,4 +1,4 @@
1
- import isPlainObjectByLodash from 'lodash/isPlainObject.js';
1
+ import { isPlainObject as isPlainObjectByLodash } from 'lodash-es';
2
2
  export function isPlainObject(val) {
3
3
  return isPlainObjectByLodash(val);
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is-plain-object.js","sourceRoot":"","sources":["../../src/object/is-plain-object.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAE3D,MAAM,UAAU,aAAa,CAC3B,GAAY;IAIZ,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAM;IAEN,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"is-plain-object.js","sourceRoot":"","sources":["../../src/object/is-plain-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAElE,MAAM,UAAU,aAAa,CAC3B,GAAY;IAIZ,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAM;IAEN,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { Awaitable } from 'justypes';
2
+ export declare function pipeAsync<A, B, C, D, E, F, G, H>(value: Awaitable<A>, ...operators: [
3
+ (value: A) => Awaitable<B>,
4
+ (value: B) => Awaitable<C>,
5
+ (value: C) => Awaitable<D>,
6
+ (value: D) => Awaitable<E>,
7
+ (value: E) => Awaitable<F>,
8
+ (value: F) => Awaitable<G>,
9
+ (value: G) => Awaitable<H>
10
+ ]): Promise<H>;
11
+ export declare function pipeAsync<A, B, C, D, E, F, G>(value: Awaitable<A>, ...operators: [
12
+ (value: A) => Awaitable<B>,
13
+ (value: B) => Awaitable<C>,
14
+ (value: C) => Awaitable<D>,
15
+ (value: D) => Awaitable<E>,
16
+ (value: E) => Awaitable<F>,
17
+ (value: F) => Awaitable<G>
18
+ ]): Promise<G>;
19
+ export declare function pipeAsync<A, B, C, D, E, F>(value: Awaitable<A>, ...operators: [
20
+ (value: A) => Awaitable<B>,
21
+ (value: B) => Awaitable<C>,
22
+ (value: C) => Awaitable<D>,
23
+ (value: D) => Awaitable<E>,
24
+ (value: E) => Awaitable<F>
25
+ ]): Promise<F>;
26
+ export declare function pipeAsync<A, B, C, D, E>(value: Awaitable<A>, ...operators: [
27
+ (value: A) => Awaitable<B>,
28
+ (value: B) => Awaitable<C>,
29
+ (value: C) => Awaitable<D>,
30
+ (value: D) => Awaitable<E>
31
+ ]): Promise<E>;
32
+ export declare function pipeAsync<A, B, C, D>(value: Awaitable<A>, ...operators: [
33
+ (value: A) => Awaitable<B>,
34
+ (value: B) => Awaitable<C>,
35
+ (value: C) => Awaitable<D>
36
+ ]): Promise<D>;
37
+ export declare function pipeAsync<A, B, C>(value: Awaitable<A>, ...operators: [
38
+ (value: A) => Awaitable<B>,
39
+ (value: B) => Awaitable<C>
40
+ ]): Promise<C>;
41
+ export declare function pipeAsync<A, B>(value: Awaitable<A>, ...operators: [
42
+ (value: A) => Awaitable<B>
43
+ ]): Promise<B>;
44
+ export declare function pipeAsync<T, U>(value: Awaitable<T>, ...operators: Array<(value: any) => Awaitable<unknown>>): Promise<U>;
@@ -0,0 +1,8 @@
1
+ export async function pipeAsync(value, ...operators) {
2
+ let result = await value;
3
+ for (const operator of operators) {
4
+ result = await operator(result);
5
+ }
6
+ return result;
7
+ }
8
+ //# sourceMappingURL=pipe-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-async.js","sourceRoot":"","sources":["../src/pipe-async.ts"],"names":[],"mappings":"AAqEA,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAmB,EACnB,GAAG,SAAyC;IAE5C,IAAI,MAAM,GAAU,MAAM,KAAK,CAAA;IAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;KAChC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-utils",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "Utilities for JavaScript and Typescript",
5
5
  "files": [
6
6
  "lib"
@@ -18,9 +18,9 @@
18
18
  "scripts": {
19
19
  "prepare": "ts-patch install -s",
20
20
  "lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src __tests__",
21
- "test": "jest --runInBand --config jest.config.cjs",
22
- "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --config jest.config.cjs",
23
- "test:coverage": "jest --coverage --config jest.config.cjs",
21
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --runInBand --config jest.config.cjs",
22
+ "test:debug": "cross-env NODE_OPTIONS=--experimental-vm-modules node --inspect-brk node_modules/.bin/jest --runInBand --config jest.config.cjs",
23
+ "test:coverage": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage --config jest.config.cjs",
24
24
  "prepublishOnly": "run-s prepare clean build",
25
25
  "clean": "rimraf lib",
26
26
  "build": "tsc --project tsconfig.build.json --outDir lib",
@@ -35,29 +35,30 @@
35
35
  "devDependencies": {
36
36
  "@blackglory/jest-resolver": "^0.3.0",
37
37
  "@blackglory/pass": "^1.1.0",
38
- "@commitlint/cli": "^17.3.0",
39
- "@commitlint/config-conventional": "^17.3.0",
40
- "@types/jest": "^29.2.4",
41
- "@types/jsdom": "^20.0.1",
42
- "@types/lodash": "^4.14.191",
43
- "@typescript-eslint/eslint-plugin": "^5.46.1",
44
- "@typescript-eslint/parser": "^5.46.1",
45
- "eslint": "^8.30.0",
38
+ "@commitlint/cli": "^17.4.4",
39
+ "@commitlint/config-conventional": "^17.4.4",
40
+ "@types/jest": "^29.4.0",
41
+ "@types/jsdom": "^21.1.0",
42
+ "@types/lodash-es": "^4.17.6",
43
+ "@typescript-eslint/eslint-plugin": "^5.52.0",
44
+ "@typescript-eslint/parser": "^5.52.0",
45
+ "cross-env": "^7.0.3",
46
+ "eslint": "^8.34.0",
46
47
  "husky": "^4.3.8",
47
- "jest": "^29.3.1",
48
- "jest-resolve": "^29.3.1",
48
+ "jest": "^29.4.3",
49
+ "jest-resolve": "^29.4.3",
49
50
  "npm-run-all": "^4.1.5",
50
51
  "rimraf": "^3.0.2",
51
52
  "standard-version": "^9.5.0",
52
- "ts-jest": "^29.0.3",
53
+ "ts-jest": "^29.0.5",
53
54
  "ts-patch": "^2.1.0",
54
55
  "tsd": "^0.25.0",
55
- "tslib": "^2.4.1",
56
- "typescript": "4.9.3",
56
+ "tslib": "^2.5.0",
57
+ "typescript": "4.8",
57
58
  "typescript-transform-paths": "^3.4.6"
58
59
  },
59
60
  "dependencies": {
60
- "justypes": "^4.0.0",
61
- "lodash": "^4.17.21"
61
+ "justypes": "^4.1.0",
62
+ "lodash-es": "^4.17.21"
62
63
  }
63
64
  }