xaa 1.6.2 → 1.7.2

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  async/await and Promise helpers.
4
4
 
5
- <https://github.com/jchip/xaa>
5
+ github: <https://github.com/jchip/xaa>
6
6
 
7
7
  ## Install and Usage
8
8
 
@@ -12,7 +12,7 @@ npm i xaa
12
12
 
13
13
  ## APIs
14
14
 
15
- API references can be found [here](https://jchip.github.io/xaa/modules/index.html)
15
+ API references <https://jchip.github.io/xaa/>
16
16
 
17
17
  Or just use your IDE for hint if it supports TypeScript and typedoc.
18
18
 
@@ -32,9 +32,9 @@ async function test() {
32
32
  () => xaa.delay(10, 1),
33
33
  () => xaa.delay(15, 2),
34
34
  "some value",
35
- Promise.resolve("more value"),
35
+ Promise.resolve("more value")
36
36
  ])
37
- .then((results) => {
37
+ .then(results => {
38
38
  // results === [1, 2, "some value", "more value"]
39
39
  });
40
40
  }
@@ -3,7 +3,8 @@
3
3
  * @module index
4
4
  */
5
5
  declare type Consumer<T> = (item: T, index?: number) => unknown;
6
- declare type Producer<T> = () => T | Promise<T>;
6
+ declare type FuncProducer<T> = () => T | Promise<T>;
7
+ declare type Producer<T> = Promise<T> | FuncProducer<T>;
7
8
  declare type Predicate<T> = (item: T, index?: number) => boolean | Promise<boolean>;
8
9
  /**
9
10
  * Defer object for fulfilling a promise later in other events
@@ -31,7 +32,7 @@ export declare class Defer<T> {
31
32
  * @param args - result
32
33
  * @returns nothing
33
34
  */
34
- done(err: Error, ...args: any[]): void;
35
+ done: (err: Error, ...args: any[]) => void;
35
36
  }
36
37
  /**
37
38
  * Create a promise Defer object
@@ -57,8 +58,6 @@ export { makeDefer as defer };
57
58
  export declare class TimeoutError extends Error {
58
59
  constructor(msg: string);
59
60
  }
60
- declare type ValueOrProducer<T> = T extends Function ? never : T | Promise<T> | Producer<T>;
61
- declare type ValueOrErrorHandler<T> = T extends Function ? never : T | Promise<T> | ((err?: Error) => T | Promise<T>);
62
61
  /**
63
62
  * delay some milliseconds and then return `valOrFunc`
64
63
  *
@@ -75,8 +74,8 @@ declare type ValueOrErrorHandler<T> = T extends Function ? never : T | Promise<T
75
74
  * It can be an async function.
76
75
  * @returns `valOrFunc` or its returned value if it's a function.
77
76
  */
78
- export declare function delay<T extends Function>(delayMs: number, valOrFunc?: Producer<T>): Promise<T>;
79
- export declare function delay<T = void>(delayMs: number, valOrFunc: ValueOrProducer<T>): Promise<T>;
77
+ export declare function delay(delayMs: number): Promise<void>;
78
+ export declare function delay<T = void>(delayMs: number, valOrFunc: T): Promise<T>;
80
79
  declare type Task<T> = Promise<T> | (() => Promise<T>);
81
80
  declare type Tasks<T extends readonly any[]> = {
82
81
  readonly [P in keyof T]: Task<T[P]>;
@@ -206,17 +205,18 @@ export declare type MapContext<T> = {
206
205
  * @param context MapContext
207
206
  * @returns any or a promise
208
207
  */
209
- export declare type MapFunction<T, O> = (value: T, index: number, context: MapContext<T>) => O | Promise<O>;
208
+ export declare type MapFunction<T, O> = (value: Awaited<T>, index: number, context: MapContext<T>) => O | Promise<O>;
210
209
  /**
211
210
  * async map array with concurrency
211
+ *
212
212
  * - intended to be similar to `bluebird.map`
213
213
  *
214
- * @param array - input array for map
214
+ * @param array array to map, if any item is promise-like, it will be resolved first.
215
215
  * @param func - callback to map values from the array
216
216
  * @param options - MapOptions
217
217
  * @returns promise with mapped result
218
218
  */
219
- export declare function map<T, O>(array: readonly T[], func: MapFunction<T, O>, options?: MapOptions): Promise<O[]>;
219
+ export declare function map<T, O>(array: readonly T[], func?: MapFunction<T, O>, options?: MapOptions): Promise<O[]>;
220
220
  /**
221
221
  * async version of array.forEach
222
222
  * - iterate through array and await call func with each element and index
@@ -247,16 +247,21 @@ export declare function each<T>(array: readonly T[], func: Consumer<T>): Promise
247
247
  * @returns filtered result
248
248
  */
249
249
  export declare function filter<T>(array: readonly T[], func: Predicate<T>): Promise<any[]>;
250
+ declare type ValueOrErrorHandler<T> = T extends Function ? never : T | Promise<T> | ((err?: Error) => T | Promise<T>);
250
251
  /**
251
- * try to call and await a function and if it throws, then return `valOrFunc`.
252
+ * try to:
253
+ * - await a promise
254
+ * - call and await function that returns a promise
255
+ *
256
+ * If exception occur, then return `valOrFunc`
252
257
  *
253
- * - if `valOrFunc` is a function, then return `await valOrFunc(err)`
258
+ * - if `valOrFunc` is a function, then return `valOrFunc(err)`
254
259
  *
255
- * @param func function to try
260
+ * @param funcOrPromise function or promise to try
256
261
  * @param valOrFunc value, or callback to get value, to return if `func` throws
257
- * @returns awaited result, `valOrFunc`, or `await valOrFunc(err)`.
262
+ * @returns result, `valOrFunc`, or `valOrFunc(err)`.
258
263
  */
259
- export declare function tryCatch<T, TAlt>(func: Producer<T>, valOrFunc?: ValueOrErrorHandler<TAlt>): Promise<T | TAlt>;
264
+ export declare function tryCatch<T>(funcOrPromise: Producer<T>, valOrFunc?: ValueOrErrorHandler<T>): Promise<T>;
260
265
  export { tryCatch as try };
261
266
  /**
262
267
  * Wrap the calling of a function into async/await (promise) context
@@ -3,13 +3,24 @@
3
3
  * @packageDocumentation
4
4
  * @module index
5
5
  */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
6
9
  Object.defineProperty(exports, "__esModule", { value: true });
7
10
  exports.wrap = exports.try = exports.tryCatch = exports.filter = exports.each = exports.map = exports.runTimeout = exports.timeout = exports.TimeoutRunner = exports.delay = exports.TimeoutError = exports.defer = exports.makeDefer = exports.Defer = void 0;
8
- const tslib_1 = require("tslib");
9
11
  /* eslint-disable max-statements, @typescript-eslint/ban-types */
10
- const assert_1 = tslib_1.__importDefault(require("assert"));
12
+ const assert_1 = __importDefault(require("assert"));
11
13
  const util_1 = require("util");
12
- const setTimeoutPromise = util_1.promisify(setTimeout);
14
+ const setTimeoutPromise = (0, util_1.promisify)(setTimeout);
15
+ /**
16
+ * check if something is a promise
17
+ *
18
+ * @param p
19
+ * @returns true or false
20
+ */
21
+ function isPromise(p) {
22
+ return p && p.then && p.catch;
23
+ }
13
24
  /**
14
25
  * Defer object for fulfilling a promise later in other events
15
26
  *
@@ -27,22 +38,15 @@ class Defer {
27
38
  this.resolve = resolve;
28
39
  this.reject = reject;
29
40
  });
30
- }
31
- /**
32
- * node.js callback for the deferred promise
33
- *
34
- * @param err - error
35
- * @param args - result
36
- * @returns nothing
37
- */
38
- done(err, ...args) {
39
41
  // Not declaring (err, result) explicitly for standard node.js callback.
40
42
  // we can't be sure if user's API expects callback that
41
43
  // should have a second arg for result.
42
- if (err)
43
- this.reject(err);
44
- else
45
- this.resolve(args[0]);
44
+ this.done = (err, ...args) => {
45
+ if (err)
46
+ this.reject(err);
47
+ else
48
+ this.resolve(args[0]);
49
+ };
46
50
  }
47
51
  }
48
52
  exports.Defer = Defer;
@@ -74,7 +78,7 @@ class TimeoutError extends Error {
74
78
  constructor(msg) {
75
79
  super(msg);
76
80
  this.name = "TimeoutError";
77
- assert_1.default(msg);
81
+ (0, assert_1.default)(msg);
78
82
  }
79
83
  }
80
84
  exports.TimeoutError = TimeoutError;
@@ -210,7 +214,7 @@ function createMapContext(array) {
210
214
  *
211
215
  * Use by xaa.map internally.
212
216
  *
213
- * @param array array to map
217
+ * @param array array to map, if any item is promise-like, it will be resolved first.
214
218
  * @param func mapper callback
215
219
  * @param options MapOptions
216
220
  * @returns promise with mapped result
@@ -248,18 +252,28 @@ function multiMap(array, func, options) {
248
252
  awaited[pendingIx] = x;
249
253
  mapNext();
250
254
  };
251
- try {
252
- const res = func.call(options.thisArg, array[pendingIx], pendingIx, context);
253
- if (res && res.then) {
255
+ const handleRet = res => {
256
+ if (isPromise(res)) {
254
257
  res.then(save, fail);
255
258
  return mapNext();
256
259
  }
257
260
  else {
258
261
  return save(res);
259
262
  }
263
+ };
264
+ const item = array[pendingIx];
265
+ if (isPromise(item)) {
266
+ return item.then(val => {
267
+ return handleRet(func.call(options.thisArg, val, pendingIx, context));
268
+ }, fail);
260
269
  }
261
- catch (err) {
262
- return fail(err);
270
+ else {
271
+ try {
272
+ return handleRet(func.call(options.thisArg, item, pendingIx, context));
273
+ }
274
+ catch (err) {
275
+ return fail(err);
276
+ }
263
277
  }
264
278
  };
265
279
  //
@@ -275,15 +289,16 @@ function multiMap(array, func, options) {
275
289
  }
276
290
  /**
277
291
  * async map array with concurrency
292
+ *
278
293
  * - intended to be similar to `bluebird.map`
279
294
  *
280
- * @param array - input array for map
295
+ * @param array array to map, if any item is promise-like, it will be resolved first.
281
296
  * @param func - callback to map values from the array
282
297
  * @param options - MapOptions
283
298
  * @returns promise with mapped result
284
299
  */
285
300
  async function map(array, func, options = { concurrency: 1 }) {
286
- assert_1.default(Array.isArray(array), `xaa.map expecting an array but got ${typeof array}`);
301
+ (0, assert_1.default)(Array.isArray(array), `xaa.map expecting an array but got ${typeof array}`);
287
302
  if (array.length < 1) {
288
303
  return [];
289
304
  }
@@ -295,7 +310,11 @@ async function map(array, func, options = { concurrency: 1 }) {
295
310
  const context = createMapContext(array);
296
311
  for (let i = 0; i < array.length; i++) {
297
312
  try {
298
- awaited[i] = await func.call(options.thisArg, array[i], i, context);
313
+ let item = array[i];
314
+ if (isPromise(item)) {
315
+ item = await item;
316
+ }
317
+ awaited[i] = await func.call(options.thisArg, item, i, context);
299
318
  }
300
319
  catch (err) {
301
320
  context.failed = true;
@@ -352,20 +371,30 @@ async function filter(array, func) {
352
371
  }
353
372
  exports.filter = filter;
354
373
  /**
355
- * try to call and await a function and if it throws, then return `valOrFunc`.
374
+ * try to:
375
+ * - await a promise
376
+ * - call and await function that returns a promise
377
+ *
378
+ * If exception occur, then return `valOrFunc`
356
379
  *
357
- * - if `valOrFunc` is a function, then return `await valOrFunc(err)`
380
+ * - if `valOrFunc` is a function, then return `valOrFunc(err)`
358
381
  *
359
- * @param func function to try
382
+ * @param funcOrPromise function or promise to try
360
383
  * @param valOrFunc value, or callback to get value, to return if `func` throws
361
- * @returns awaited result, `valOrFunc`, or `await valOrFunc(err)`.
384
+ * @returns result, `valOrFunc`, or `valOrFunc(err)`.
362
385
  */
363
- async function tryCatch(func, valOrFunc) {
386
+ async function tryCatch(funcOrPromise, valOrFunc) {
364
387
  try {
365
- return await func();
388
+ if (isPromise(funcOrPromise)) {
389
+ return await funcOrPromise;
390
+ }
391
+ return await funcOrPromise();
366
392
  }
367
393
  catch (err) {
368
- return typeof valOrFunc === "function" ? valOrFunc(err) : valOrFunc;
394
+ if (typeof valOrFunc === "function") {
395
+ return valOrFunc(err);
396
+ }
397
+ return valOrFunc;
369
398
  }
370
399
  }
371
400
  exports.tryCatch = tryCatch;
@@ -382,4 +411,4 @@ async function wrap(func, ...args2) {
382
411
  return func(...args2);
383
412
  }
384
413
  exports.wrap = wrap;
385
- //# sourceMappingURL=xaa.js.map
414
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,iEAAiE;AAEjE,oDAA4B;AAC5B,+BAAiC;AAOjC,MAAM,iBAAiB,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,SAAS,SAAS,CAAI,CAAM;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAa,KAAK;IAChB;;;;OAIG;IACH,YAAY,aAAiC,MAAM,CAAC,OAAO;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,wEAAwE;QACxE,uDAAuD;QACvD,uCAAuC;QACvC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAU,EAAE,GAAG,IAAW,EAAE,EAAE;YACzC,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;CAeF;AAjCD,sBAiCC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,SAAS,CAAI,UAA8B,MAAM,CAAC,OAAO;IACvE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAFD,8BAEC;AAEqB,0BAAK;AAE3B;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC;IACd,CAAC;CACF;AAND,oCAMC;AAoBM,KAAK,UAAU,KAAK,CACzB,OAAe,EACf,SAAgC;IAEhC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAND,sBAMC;AAOD;;;;GAIG;AACH,MAAa,aAAa;IACxB,YAAY,KAAa,EAAE,SAAiB;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAID;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAwB,KAAQ;QACvC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,oFAAoF;QACpF,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,KAAgB,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,IAAI;YACF,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;SACV;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc,uCAAuC;QAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,6CAA6C;IAC7C,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;CAUF;AAvFD,sCAuFC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,OAAO,CACrB,KAAa,EACb,YAAoB,uCAAuC;IAE3D,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AALD,0BAKC;AAgBM,KAAK,UAAU,UAAU,CAC9B,KAAkB,EAClB,KAAa,EACb,SAAkB;IAElB,OAAO,MAAM,OAAO,CAAI,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAND,gCAMC;AAqDD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAI,KAAmB;IAC9C,OAAO;QACL,KAAK;QACL,MAAM,EAAE,KAAK;QACb,eAAe;YACb,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;aACpC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AACD;;;;;;;;;GASG;AACH,SAAS,QAAQ,CACf,KAAmB,EACnB,IAAuB,EACvB,OAAmB;IAEnB,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,KAAkB,CAAC;IACvB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,SAAS,EAAO,CAAC;IAE/B,MAAM,IAAI,GAAG,CAAC,GAAU,EAAQ,EAAE;QAChC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,GAAkB,CAAC,CAAC,sCAAsC;YAClE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAQ,EAAE;QACxB,oEAAoE;QACpE,sCAAsC;QACtC,IAAI,CAAC,KAAK,IAAI,cAAc,KAAK,KAAK,CAAC,MAAM,EAAE;YAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/B;QAED,IAAI,KAAK,IAAI,SAAS,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;QAED,SAAS,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,GAAG,CAAC,CAAI,EAAE,EAAE;YACpB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE;YACtB,IAAI,SAAS,CAAI,GAAG,CAAC,EAAE;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO,OAAO,EAAE,CAAC;aAClB;iBAAM;gBACL,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,GAAQ,KAAK,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,SAAS,CAAI,IAAI,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACxE,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;aAAM;YACL,IAAI;gBACF,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;aAC7E;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;SACF;IACH,CAAC,CAAC;IAEF,EAAE;IACF,sCAAsC;IACtC,EAAE;IACF,wFAAwF;IACxF,EAAE;IACF,4DAA4D;IAC5D,+DAA+D;IAC/D,EAAE;IACF,OAAO,EAAE,CAAC;IAEV,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,GAAG,CACvB,KAAmB,EACnB,IAAwB,EACxB,UAAsB,EAAE,WAAW,EAAE,CAAC,EAAE;IAExC,IAAA,gBAAM,EAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,sCAAsC,OAAO,KAAK,EAAE,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,EAAE,CAAC;KACX;IACD,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE;QAC3B,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KACvC;SAAM;QACL,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI;gBACF,IAAI,IAAI,GAAQ,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnB,IAAI,GAAG,MAAM,IAAI,CAAC;iBACnB;gBACD,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAS,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;aACtE;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrB,GAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvC,MAAM,GAAG,CAAC;aACX;SACF;QAED,OAAO,OAAO,CAAC;KAChB;AACH,CAAC;AAhCD,kBAgCC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,IAAI,CAAI,KAAmB,EAAE,IAAiB;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACzB;AACH,CAAC;AAJD,oBAIC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,MAAM,CAAI,KAAmB,EAAE,IAAkB;IACrE,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAChC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,wBAUC;AAMD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,QAAQ,CAC5B,aAA0B,EAC1B,SAAkC;IAElC,IAAI;QACF,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;YAC5B,OAAO,MAAM,aAAa,CAAC;SAC5B;QAED,OAAO,MAAM,aAAa,EAAE,CAAC;KAC9B;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;YACnC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,OAAO,SAAgB,CAAC;KACzB;AACH,CAAC;AAhBD,4BAgBC;AAEoB,uBAAG;AAExB;;;;;;;GAOG;AACI,KAAK,UAAU,IAAI,CACxB,IAAO,EACP,GAAG,KAAoB;IAEvB,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;AACxB,CAAC;AALD,oBAKC"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "xaa",
3
- "version": "1.6.2",
3
+ "version": "1.7.2",
4
4
  "description": "async/await/Promise helpers - delay, defer, timeout, each, map, filter",
5
- "main": "dist/xaa.js",
6
- "types": "dist/xaa.d.ts",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
7
  "scripts": {
8
- "build": "tsc",
9
- "test": "xrun xarc/test-only",
10
- "coverage": "xrun xarc/test-cov",
11
- "prepublishOnly": "xrun [[build, docs], xarc/check]",
8
+ "build": "rm -rf dist && tsc",
9
+ "test": "xrun -s build xarc/test-only",
10
+ "coverage": "xrun -s build xarc/test-cov",
11
+ "prepublishOnly": "xrun [[build, docs] xarc/check]",
12
12
  "docs": "clap xarc/docs && touch docs/.nojekyll"
13
13
  },
14
14
  "homepage": "https://jchip.github.io/xaa/",
@@ -43,23 +43,23 @@
43
43
  "@types/sinon-chai": "^3.2.5",
44
44
  "@typescript-eslint/eslint-plugin": "^4.11.0",
45
45
  "@typescript-eslint/parser": "^4.11.0",
46
- "@xarc/module-dev": "^3.0.2",
46
+ "@xarc/module-dev": "^4.0.0",
47
47
  "babel-eslint": "^10.1.0",
48
48
  "chai": "^4.2.0",
49
49
  "eslint": "^7.16.0",
50
50
  "eslint-config-walmart": "^2.2.1",
51
51
  "eslint-plugin-filenames": "^1.1.0",
52
52
  "eslint-plugin-jsdoc": "^30.7.9",
53
+ "eslint-plugin-tsdoc": "^0.2.11",
53
54
  "mocha": "^8.2.1",
54
55
  "nyc": "^15.1.0",
55
- "prettier": "^2.0.5",
56
+ "prettier": "^2.2.1",
56
57
  "run-verify": "^1.2.1",
57
58
  "sinon": "^9.2.2",
58
59
  "sinon-chai": "^3.5.0",
59
60
  "source-map-support": "^0.5.19",
60
61
  "ts-node": "^9.1.1",
61
- "typedoc": "^0.20.13",
62
- "typedoc-plugin-external-module-name": "^3.0.0",
62
+ "typedoc": "^0.22.12",
63
63
  "typescript": "^4.1.3"
64
64
  },
65
65
  "nyc": {
@@ -96,16 +96,12 @@
96
96
  "trailingComma": "none",
97
97
  "arrowParens": "avoid"
98
98
  },
99
- "fyn": {
100
- "devDependencies": {
101
- "@xarc/module-dev": "../module-dev"
102
- }
103
- },
104
99
  "@xarc/module-dev": {
105
100
  "features": [
106
101
  "eslint",
107
102
  "eslintTS",
108
103
  "mocha",
104
+ "prettier",
109
105
  "typedoc",
110
106
  "typescript"
111
107
  ]
@@ -118,7 +114,5 @@
118
114
  ],
119
115
  "recursive": true
120
116
  },
121
- "dependencies": {
122
- "tslib": "^2.1.0"
123
- }
117
+ "dependencies": {}
124
118
  }
package/dist/xaa.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"xaa.js","sourceRoot":"","sources":["../src/xaa.ts"],"names":[],"mappings":"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"}