@naturalcycles/js-lib 14.78.1 → 14.79.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.
@@ -56,7 +56,7 @@ function _LogMethod(opt = {}) {
56
56
  })
57
57
  .catch((err) => {
58
58
  logFinished(logger, callSignature, started, sma, logResultFn, undefined, err);
59
- return Promise.reject(err);
59
+ throw err;
60
60
  });
61
61
  }
62
62
  else {
@@ -80,7 +80,7 @@ const _Memo = (opt = {}) => (target, key, descriptor) => {
80
80
  // Wrap as Error if it's not Error
81
81
  cache.get(ctx).set(cacheKey, err instanceof Error ? err : new Error(err));
82
82
  }
83
- return Promise.reject(err);
83
+ throw err;
84
84
  });
85
85
  }
86
86
  else {
@@ -49,7 +49,7 @@ function _memoFn(fn, opt = {}) {
49
49
  // Wrap as Error if it's not Error
50
50
  cache.set(cacheKey, err instanceof Error ? err : new Error(err));
51
51
  }
52
- return Promise.reject(err);
52
+ throw err;
53
53
  });
54
54
  }
55
55
  else {
package/dist/error/try.js CHANGED
@@ -27,8 +27,6 @@ function _try(fn) {
27
27
  }
28
28
  }
29
29
  exports._try = _try;
30
- // todo: remove when eslint starts to know about Awaited
31
- /* eslint-disable no-undef */
32
30
  /**
33
31
  * Like _try, but for Promises.
34
32
  *
@@ -1,10 +1,19 @@
1
- import { PMapOptions } from './pMap';
2
1
  /**
3
2
  * Promise.all for Object instead of Array.
4
- * Supports concurrency.
3
+ *
4
+ * Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
5
+ *
6
+ * Improvements:
7
+ *
8
+ * - Exported as { pProps }, so IDE auto-completion works
9
+ * - Simpler: no support for Map, Mapper, Options
10
+ * - Included Typescript typings (no need for @types/p-props)
11
+ *
12
+ * Concurrency implementation via pMap was removed in favor of preserving async
13
+ * stack traces (more important!).
5
14
  */
6
15
  export declare function pProps<T>(input: {
7
16
  [K in keyof T]: T[K] | Promise<T[K]>;
8
- }, opt?: PMapOptions): Promise<{
17
+ }): Promise<{
9
18
  [K in keyof T]: Awaited<T[K]>;
10
19
  }>;
@@ -1,26 +1,22 @@
1
1
  "use strict";
2
- /*
3
- Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
4
-
5
- Improvements:
6
-
7
- - Exported as { pProps }, so IDE auto-completion works
8
- - Simpler: no support for Map, Mapper, Options
9
- - Included Typescript typings (no need for @types/p-props)
10
- */
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.pProps = void 0;
13
- const pMap_1 = require("./pMap");
14
- // todo: remove when eslint starts to know about Awaited
15
- /* eslint-disable no-undef */
16
4
  /**
17
5
  * Promise.all for Object instead of Array.
18
- * Supports concurrency.
6
+ *
7
+ * Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
8
+ *
9
+ * Improvements:
10
+ *
11
+ * - Exported as { pProps }, so IDE auto-completion works
12
+ * - Simpler: no support for Map, Mapper, Options
13
+ * - Included Typescript typings (no need for @types/p-props)
14
+ *
15
+ * Concurrency implementation via pMap was removed in favor of preserving async
16
+ * stack traces (more important!).
19
17
  */
20
- async function pProps(input, opt) {
21
- const r = {};
18
+ async function pProps(input) {
22
19
  const keys = Object.keys(input);
23
- await (0, pMap_1.pMap)(Object.values(input), (v, i) => (r[keys[i]] = v), opt);
24
- return r;
20
+ return Object.fromEntries((await Promise.all(Object.values(input))).map((v, i) => [keys[i], v]));
25
21
  }
26
22
  exports.pProps = pProps;
@@ -53,7 +53,7 @@ export function _LogMethod(opt = {}) {
53
53
  })
54
54
  .catch((err) => {
55
55
  logFinished(logger, callSignature, started, sma, logResultFn, undefined, err);
56
- return Promise.reject(err);
56
+ throw err;
57
57
  });
58
58
  }
59
59
  else {
@@ -77,7 +77,7 @@ export const _Memo = (opt = {}) => (target, key, descriptor) => {
77
77
  // Wrap as Error if it's not Error
78
78
  cache.get(ctx).set(cacheKey, err instanceof Error ? err : new Error(err));
79
79
  }
80
- return Promise.reject(err);
80
+ throw err;
81
81
  });
82
82
  }
83
83
  else {
@@ -46,7 +46,7 @@ export function _memoFn(fn, opt = {}) {
46
46
  // Wrap as Error if it's not Error
47
47
  cache.set(cacheKey, err instanceof Error ? err : new Error(err));
48
48
  }
49
- return Promise.reject(err);
49
+ throw err;
50
50
  });
51
51
  }
52
52
  else {
@@ -23,8 +23,6 @@ export function _try(fn) {
23
23
  return [err, undefined];
24
24
  }
25
25
  }
26
- // todo: remove when eslint starts to know about Awaited
27
- /* eslint-disable no-undef */
28
26
  /**
29
27
  * Like _try, but for Promises.
30
28
  *
@@ -1,22 +1,18 @@
1
- /*
2
- Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
3
-
4
- Improvements:
5
-
6
- - Exported as { pProps }, so IDE auto-completion works
7
- - Simpler: no support for Map, Mapper, Options
8
- - Included Typescript typings (no need for @types/p-props)
9
- */
10
- import { pMap } from './pMap';
11
- // todo: remove when eslint starts to know about Awaited
12
- /* eslint-disable no-undef */
13
1
  /**
14
2
  * Promise.all for Object instead of Array.
15
- * Supports concurrency.
3
+ *
4
+ * Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
5
+ *
6
+ * Improvements:
7
+ *
8
+ * - Exported as { pProps }, so IDE auto-completion works
9
+ * - Simpler: no support for Map, Mapper, Options
10
+ * - Included Typescript typings (no need for @types/p-props)
11
+ *
12
+ * Concurrency implementation via pMap was removed in favor of preserving async
13
+ * stack traces (more important!).
16
14
  */
17
- export async function pProps(input, opt) {
18
- const r = {};
15
+ export async function pProps(input) {
19
16
  const keys = Object.keys(input);
20
- await pMap(Object.values(input), (v, i) => (r[keys[i]] = v), opt);
21
- return r;
17
+ return Object.fromEntries((await Promise.all(Object.values(input))).map((v, i) => [keys[i], v]));
22
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturalcycles/js-lib",
3
- "version": "14.78.1",
3
+ "version": "14.79.0",
4
4
  "scripts": {
5
5
  "prepare": "husky install",
6
6
  "build-prod": "build-prod-esm-cjs",
@@ -110,7 +110,7 @@ export function _LogMethod(opt: LogMethodOptions = {}): MethodDecorator {
110
110
  })
111
111
  .catch((err: any) => {
112
112
  logFinished(logger, callSignature, started, sma, logResultFn, undefined, err)
113
- return Promise.reject(err)
113
+ throw err
114
114
  })
115
115
  } else {
116
116
  // not a Promise
@@ -163,7 +163,7 @@ export const _Memo =
163
163
  cache.get(ctx)!.set(cacheKey, err instanceof Error ? err : new Error(err))
164
164
  }
165
165
 
166
- return Promise.reject(err)
166
+ throw err
167
167
  })
168
168
  } else {
169
169
  if (logMiss) {
@@ -83,7 +83,7 @@ export function _memoFn<T extends (...args: any[]) => any>(
83
83
  cache.set(cacheKey, err instanceof Error ? err : new Error(err))
84
84
  }
85
85
 
86
- return Promise.reject(err)
86
+ throw err
87
87
  }) as any
88
88
  } else {
89
89
  if (logMiss) {
package/src/error/try.ts CHANGED
@@ -27,9 +27,6 @@ export function _try<ERR = unknown, RETURN = void>(
27
27
  }
28
28
  }
29
29
 
30
- // todo: remove when eslint starts to know about Awaited
31
- /* eslint-disable no-undef */
32
-
33
30
  /**
34
31
  * Like _try, but for Promises.
35
32
  *
@@ -1,28 +1,20 @@
1
- /*
2
- Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
3
-
4
- Improvements:
5
-
6
- - Exported as { pProps }, so IDE auto-completion works
7
- - Simpler: no support for Map, Mapper, Options
8
- - Included Typescript typings (no need for @types/p-props)
9
- */
10
-
11
- import { pMap, PMapOptions } from './pMap'
12
-
13
- // todo: remove when eslint starts to know about Awaited
14
- /* eslint-disable no-undef */
15
-
16
1
  /**
17
2
  * Promise.all for Object instead of Array.
18
- * Supports concurrency.
3
+ *
4
+ * Inspired by Bluebird Promise.props() and https://github.com/sindresorhus/p-props
5
+ *
6
+ * Improvements:
7
+ *
8
+ * - Exported as { pProps }, so IDE auto-completion works
9
+ * - Simpler: no support for Map, Mapper, Options
10
+ * - Included Typescript typings (no need for @types/p-props)
11
+ *
12
+ * Concurrency implementation via pMap was removed in favor of preserving async
13
+ * stack traces (more important!).
19
14
  */
20
- export async function pProps<T>(
21
- input: { [K in keyof T]: T[K] | Promise<T[K]> },
22
- opt?: PMapOptions,
23
- ): Promise<{ [K in keyof T]: Awaited<T[K]> }> {
24
- const r = {} as { [K in keyof T]: Awaited<T[K]> }
25
- const keys = Object.keys(input) as (keyof T)[]
26
- await pMap(Object.values(input), (v, i) => (r[keys[i]!] = v), opt)
27
- return r
15
+ export async function pProps<T>(input: { [K in keyof T]: T[K] | Promise<T[K]> }): Promise<{
16
+ [K in keyof T]: Awaited<T[K]>
17
+ }> {
18
+ const keys = Object.keys(input)
19
+ return Object.fromEntries((await Promise.all(Object.values(input))).map((v, i) => [keys[i], v]))
28
20
  }