xaa 1.7.3 → 1.8.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/dist/index.d.ts CHANGED
@@ -2,10 +2,17 @@
2
2
  * @packageDocumentation
3
3
  * @module index
4
4
  */
5
- declare type Consumer<T> = (item: T, index?: number) => unknown;
6
- declare type FuncProducer<T> = () => T | Promise<T>;
7
- declare type Producer<T> = Promise<T> | FuncProducer<T>;
8
- declare type Predicate<T> = (item: T, index?: number) => boolean | Promise<boolean>;
5
+ type Consumer<T> = (item: T, index?: number) => unknown;
6
+ type FuncProducer<T> = () => T | Promise<T>;
7
+ type Producer<T> = Promise<T> | FuncProducer<T>;
8
+ type Predicate<T> = (item: T, index?: number) => boolean | Promise<boolean>;
9
+ /**
10
+ * check if something is a promise
11
+ *
12
+ * @param p
13
+ * @returns true or false
14
+ */
15
+ export declare function isPromise<T>(p: any): p is Promise<T>;
9
16
  /**
10
17
  * Defer object for fulfilling a promise later in other events
11
18
  *
@@ -47,10 +54,10 @@ export declare class Defer<T> {
47
54
  * }
48
55
  * ```
49
56
  *
50
- * @param Promise - optional Promise constructor.
57
+ * @param ThePromise - optional Promise constructor.
51
58
  * @returns Defer instance
52
59
  */
53
- export declare function makeDefer<T>(Promise?: PromiseConstructor): Defer<T>;
60
+ export declare function makeDefer<T>(ThePromise?: PromiseConstructor): Defer<T>;
54
61
  export { makeDefer as defer };
55
62
  /**
56
63
  * The error xaa.timeout will throw if operation timed out
@@ -76,18 +83,31 @@ export declare class TimeoutError extends Error {
76
83
  */
77
84
  export declare function delay(delayMs: number): Promise<void>;
78
85
  export declare function delay<T = void>(delayMs: number, valOrFunc: T): Promise<T>;
79
- declare type Task<T> = Promise<T> | (() => Promise<T>);
80
- declare type Tasks<T extends readonly any[]> = {
86
+ type Task<T> = Promise<T> | (() => Promise<T>);
87
+ type Tasks<T extends readonly any[]> = {
81
88
  readonly [P in keyof T]: Task<T[P]>;
82
89
  };
83
- declare type Runnable<T> = T extends readonly any[] ? Tasks<T> : Task<T>;
90
+ type Runnable<T> = T extends readonly any[] ? Tasks<T> : Task<T>;
91
+ type TimeoutRunnerOptions = {
92
+ TimeoutError: typeof TimeoutError;
93
+ Promise: PromiseConstructor;
94
+ };
84
95
  /**
85
96
  * TimeoutRunner for running tasks (promises) with a timeout
86
97
  *
87
98
  * Please use `xaa.timeout` or `xaa.runTimeout` APIs instead.
88
99
  */
89
100
  export declare class TimeoutRunner<T> {
90
- constructor(maxMs: number, rejectMsg: string);
101
+ /**
102
+ * constructor
103
+ * @param maxMs - number of milliseconds to allow tasks to run
104
+ * @param rejectMsg - message to reject with when timeout triggers
105
+ * @param options - TimeoutRunnerOptions
106
+ */
107
+ constructor(maxMs: number, rejectMsg: string, options: TimeoutRunnerOptions);
108
+ /**
109
+ * message to reject with when timeout triggers
110
+ */
91
111
  private defer;
92
112
  /** setTimeout handle */
93
113
  private timeout;
@@ -132,6 +152,10 @@ export declare class TimeoutRunner<T> {
132
152
  error?: Error;
133
153
  /** the result from running tasks */
134
154
  result?: T | T[];
155
+ /** Promise constructor */
156
+ ThePromise: PromiseConstructor;
157
+ /** TimeoutError constructor */
158
+ TimeoutError: typeof TimeoutError;
135
159
  }
136
160
  /**
137
161
  * Create a TimeoutRunner to run tasks (promises) with timeout
@@ -152,7 +176,7 @@ export declare class TimeoutRunner<T> {
152
176
  * @param rejectMsg - message to reject with when timeout triggers
153
177
  * @returns TimeoutRunner object
154
178
  */
155
- export declare function timeout<T>(maxMs: number, rejectMsg?: string): TimeoutRunner<T>;
179
+ export declare function timeout<T>(maxMs: number, rejectMsg?: string, options?: TimeoutRunnerOptions): TimeoutRunner<T>;
156
180
  /**
157
181
  * Calls `timeout(maxMs, rejectMsg).run(tasks)`
158
182
  *
@@ -161,8 +185,8 @@ export declare function timeout<T>(maxMs: number, rejectMsg?: string): TimeoutRu
161
185
  * @param rejectMsg - message to reject with if operation timed out
162
186
  * @returns promise results from all tasks
163
187
  */
164
- export declare function runTimeout<T>(tasks: Task<T>, maxMs: number, rejectMsg?: string): Promise<T>;
165
- export declare function runTimeout<T extends readonly any[]>(tasks: Tasks<T>, maxMs: number, rejectMsg?: string): Promise<T[]>;
188
+ export declare function runTimeout<T>(tasks: Task<T>, maxMs: number, rejectMsg?: string, options?: TimeoutRunnerOptions): Promise<T>;
189
+ export declare function runTimeout<T extends readonly any[]>(tasks: Tasks<T>, maxMs: number, rejectMsg?: string, options?: TimeoutRunnerOptions): Promise<T[]>;
166
190
  /**
167
191
  * The error xaa.map will throw if something went wrong.
168
192
  *
@@ -173,14 +197,14 @@ export interface MapError<T> extends Error {
173
197
  partial: T[];
174
198
  }
175
199
  /** options for xaa.map */
176
- export declare type MapOptions = {
200
+ export type MapOptions = {
177
201
  /** number of items to map concurrently */
178
202
  concurrency: number;
179
203
  /** the this passed to the map callback */
180
204
  thisArg?: any;
181
205
  };
182
206
  /** context from xaa.map to the mapper callback */
183
- export declare type MapContext<T> = {
207
+ export type MapContext<T> = {
184
208
  /**
185
209
  * indicate if another map operation during concurrent map has failed
186
210
  * Mapping should observe this flag whenever possible and avoid continuing
@@ -197,7 +221,7 @@ export declare type MapContext<T> = {
197
221
  */
198
222
  assertNoFailure: () => void;
199
223
  };
200
- declare type Awaited<T> = T extends PromiseLike<infer T2> ? {
224
+ type Awaited<T> = T extends PromiseLike<infer T2> ? {
201
225
  0: Awaited<T2>;
202
226
  1: T2;
203
227
  }[T2 extends PromiseLike<any> ? 0 : 1] : T;
@@ -209,7 +233,8 @@ declare type Awaited<T> = T extends PromiseLike<infer T2> ? {
209
233
  * @param context MapContext
210
234
  * @returns any or a promise
211
235
  */
212
- export declare type MapFunction<T, O> = (value: Awaited<T>, index: number, context: MapContext<T>) => O | Promise<O>;
236
+ export type MapFunction<T, O> = (value: Awaited<T>, index: number, context: MapContext<T>) => O | Promise<O>;
237
+ export declare function mapSeries<T, O>(array: readonly T[], func?: MapFunction<T, O>, options?: MapOptions): Promise<O[]>;
213
238
  /**
214
239
  * async map array with concurrency
215
240
  *
@@ -234,7 +259,7 @@ export declare function map<T, O>(array: readonly T[], func?: MapFunction<T, O>,
234
259
  * @param array array to each
235
260
  * @param func callback for each
236
261
  */
237
- export declare function each<T>(array: readonly T[], func: Consumer<T>): Promise<void>;
262
+ export declare function each<T>(array: readonly T[], func: Consumer<T>): Promise<T[]>;
238
263
  /**
239
264
  * async filter array
240
265
  *
@@ -251,7 +276,7 @@ export declare function each<T>(array: readonly T[], func: Consumer<T>): Promise
251
276
  * @returns filtered result
252
277
  */
253
278
  export declare function filter<T>(array: readonly T[], func: Predicate<T>): Promise<any[]>;
254
- declare type ValueOrErrorHandler<T> = T extends Function ? never : T | Promise<T> | ((err?: Error) => T | Promise<T>);
279
+ type ValueOrErrorHandler<T> = T extends Function ? never : T | Promise<T> | ((err?: Error) => T | Promise<T>);
255
280
  /**
256
281
  * try to:
257
282
  * - await a promise
package/dist/index.js CHANGED
@@ -3,15 +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
- };
9
6
  Object.defineProperty(exports, "__esModule", { value: true });
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;
11
- /* eslint-disable max-statements, @typescript-eslint/ban-types */
12
- const assert_1 = __importDefault(require("assert"));
13
- const util_1 = require("util");
14
- const setTimeoutPromise = (0, util_1.promisify)(setTimeout);
7
+ exports.TimeoutRunner = exports.TimeoutError = exports.Defer = void 0;
8
+ exports.isPromise = isPromise;
9
+ exports.makeDefer = makeDefer;
10
+ exports.defer = makeDefer;
11
+ exports.delay = delay;
12
+ exports.timeout = timeout;
13
+ exports.runTimeout = runTimeout;
14
+ exports.mapSeries = mapSeries;
15
+ exports.map = map;
16
+ exports.each = each;
17
+ exports.filter = filter;
18
+ exports.tryCatch = tryCatch;
19
+ exports.try = tryCatch;
20
+ exports.wrap = wrap;
21
+ const tslib_1 = require("tslib");
22
+ /* eslint-disable max-statements, @typescript-eslint/ban-types, max-params, complexity */
23
+ const assert_1 = tslib_1.__importDefault(require("assert"));
15
24
  /**
16
25
  * check if something is a promise
17
26
  *
@@ -19,7 +28,7 @@ const setTimeoutPromise = (0, util_1.promisify)(setTimeout);
19
28
  * @returns true or false
20
29
  */
21
30
  function isPromise(p) {
22
- return p && p.then && p.catch;
31
+ return p && p.then && p.catch && typeof p.then === "function" && typeof p.catch === "function";
23
32
  }
24
33
  /**
25
34
  * Defer object for fulfilling a promise later in other events
@@ -63,14 +72,12 @@ exports.Defer = Defer;
63
72
  * }
64
73
  * ```
65
74
  *
66
- * @param Promise - optional Promise constructor.
75
+ * @param ThePromise - optional Promise constructor.
67
76
  * @returns Defer instance
68
77
  */
69
- function makeDefer(Promise = global.Promise) {
70
- return new Defer(Promise);
78
+ function makeDefer(ThePromise = global.Promise) {
79
+ return new Defer(ThePromise);
71
80
  }
72
- exports.makeDefer = makeDefer;
73
- exports.defer = makeDefer;
74
81
  /**
75
82
  * The error xaa.timeout will throw if operation timed out
76
83
  */
@@ -83,21 +90,28 @@ class TimeoutError extends Error {
83
90
  }
84
91
  exports.TimeoutError = TimeoutError;
85
92
  async function delay(delayMs, valOrFunc) {
86
- await setTimeoutPromise(delayMs);
93
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
87
94
  return typeof valOrFunc === "function" ? /* lazily */ valOrFunc() : valOrFunc;
88
95
  }
89
- exports.delay = delay;
90
96
  /**
91
97
  * TimeoutRunner for running tasks (promises) with a timeout
92
98
  *
93
99
  * Please use `xaa.timeout` or `xaa.runTimeout` APIs instead.
94
100
  */
95
101
  class TimeoutRunner {
96
- constructor(maxMs, rejectMsg) {
102
+ /**
103
+ * constructor
104
+ * @param maxMs - number of milliseconds to allow tasks to run
105
+ * @param rejectMsg - message to reject with when timeout triggers
106
+ * @param options - TimeoutRunnerOptions
107
+ */
108
+ constructor(maxMs, rejectMsg, options) {
97
109
  this.maxMs = maxMs;
98
110
  this.rejectMsg = rejectMsg;
99
- this.defer = makeDefer();
100
- this.timeout = setTimeout(() => this.defer.reject(new TimeoutError(rejectMsg)), maxMs);
111
+ this.defer = makeDefer(options.Promise);
112
+ this.ThePromise = options.Promise;
113
+ this.TimeoutError = options.TimeoutError;
114
+ this.timeout = setTimeout(() => this.defer.reject(new this.TimeoutError(rejectMsg)), maxMs);
101
115
  }
102
116
  /**
103
117
  * check if runner has failed with error
@@ -126,9 +140,9 @@ class TimeoutRunner {
126
140
  // Cast below is due in part to https://github.com/microsoft/TypeScript/issues/17002
127
141
  const arrTasks = !Array.isArray(tasks)
128
142
  ? process(tasks)
129
- : Promise.all(tasks.map(process));
143
+ : this.ThePromise.all(tasks.map(process));
130
144
  try {
131
- const r = await Promise.race([arrTasks, this.defer.promise]);
145
+ const r = await this.ThePromise.race([arrTasks, this.defer.promise]);
132
146
  this.clear();
133
147
  this.result = r;
134
148
  return r;
@@ -146,7 +160,7 @@ class TimeoutRunner {
146
160
  */
147
161
  cancel(msg = "xaa TimeoutRunner operation cancelled") {
148
162
  this.clear();
149
- this.defer.reject(new TimeoutError(msg));
163
+ this.defer.reject(new this.TimeoutError(msg));
150
164
  }
151
165
  /** Explicitly clear the setTimeout handle */
152
166
  clear() {
@@ -184,14 +198,12 @@ exports.TimeoutRunner = TimeoutRunner;
184
198
  * @param rejectMsg - message to reject with when timeout triggers
185
199
  * @returns TimeoutRunner object
186
200
  */
187
- function timeout(maxMs, rejectMsg = "xaa TimeoutRunner operation timed out") {
188
- return new TimeoutRunner(maxMs, rejectMsg);
201
+ function timeout(maxMs, rejectMsg = "xaa TimeoutRunner operation timed out", options = { TimeoutError: TimeoutError, Promise: global.Promise }) {
202
+ return new TimeoutRunner(maxMs, rejectMsg, options);
189
203
  }
190
- exports.timeout = timeout;
191
- async function runTimeout(tasks, maxMs, rejectMsg) {
192
- return await timeout(maxMs, rejectMsg).run(tasks);
204
+ async function runTimeout(tasks, maxMs, rejectMsg, options) {
205
+ return await timeout(maxMs, rejectMsg, options).run(tasks);
193
206
  }
194
- exports.runTimeout = runTimeout;
195
207
  /**
196
208
  * create map context
197
209
  *
@@ -225,6 +237,8 @@ function multiMap(array, func, options) {
225
237
  let completedCount = 0;
226
238
  let freeSlots = options.concurrency;
227
239
  let index = 0;
240
+ const iterator = Symbol.iterator in array && typeof array[Symbol.iterator] === "function" ? array[Symbol.iterator]() : null;
241
+ let totalCount = iterator ? Infinity : array.length;
228
242
  const context = createMapContext(array);
229
243
  const defer = makeDefer();
230
244
  const fail = (err) => {
@@ -238,10 +252,19 @@ function multiMap(array, func, options) {
238
252
  const mapNext = () => {
239
253
  // important to check this here, so an empty input array immediately
240
254
  // gets resolved with an empty result.
241
- if (!error && completedCount === array.length) {
255
+ if (!error && (completedCount === totalCount)) {
242
256
  return defer.resolve(awaited);
243
257
  }
244
- if (error || freeSlots <= 0 || index >= array.length) {
258
+ if (error || freeSlots <= 0 || index >= totalCount) {
259
+ return null;
260
+ }
261
+ const ir = iterator && iterator.next();
262
+ if (ir && ir.done) {
263
+ if (totalCount !== index) {
264
+ totalCount = index;
265
+ return mapNext();
266
+ }
267
+ // istanbul ignore next
245
268
  return null;
246
269
  }
247
270
  freeSlots--;
@@ -261,7 +284,7 @@ function multiMap(array, func, options) {
261
284
  return save(res);
262
285
  }
263
286
  };
264
- const item = array[pendingIx];
287
+ const item = ir ? ir.value : array[pendingIx];
265
288
  if (isPromise(item)) {
266
289
  return item.then(val => {
267
290
  return handleRet(func.call(options.thisArg, val, pendingIx, context));
@@ -287,6 +310,24 @@ function multiMap(array, func, options) {
287
310
  mapNext();
288
311
  return defer.promise;
289
312
  }
313
+ async function mapSeries(array, func, options) {
314
+ const awaited = new Array();
315
+ const context = createMapContext(array);
316
+ let i = 0;
317
+ try {
318
+ for (const element of array) {
319
+ const item = isPromise(element) ? await element : element;
320
+ awaited[i] = await func.call(options && options.thisArg, item, i, context);
321
+ i++;
322
+ }
323
+ }
324
+ catch (err) {
325
+ context.failed = true;
326
+ err.partial = awaited;
327
+ throw err;
328
+ }
329
+ return awaited;
330
+ }
290
331
  /**
291
332
  * async map array with concurrency
292
333
  *
@@ -297,35 +338,15 @@ function multiMap(array, func, options) {
297
338
  * @param options - MapOptions
298
339
  * @returns promise with mapped result
299
340
  */
300
- async function map(array, func, options = { concurrency: 1 }) {
341
+ async function map(array, func, options = { concurrency: 50 }) {
301
342
  (0, assert_1.default)(Array.isArray(array), `xaa.map expecting an array but got ${typeof array}`);
302
- if (array.length < 1) {
303
- return [];
304
- }
305
343
  if (options.concurrency > 1) {
306
344
  return multiMap(array, func, options);
307
345
  }
308
346
  else {
309
- const awaited = new Array(array.length);
310
- const context = createMapContext(array);
311
- for (let i = 0; i < array.length; i++) {
312
- try {
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);
318
- }
319
- catch (err) {
320
- context.failed = true;
321
- err.partial = awaited;
322
- throw err;
323
- }
324
- }
325
- return awaited;
347
+ return mapSeries(array, func, options);
326
348
  }
327
349
  }
328
- exports.map = map;
329
350
  /**
330
351
  * async version of array.forEach
331
352
  * - iterate through array and await call func with each element and index
@@ -340,11 +361,16 @@ exports.map = map;
340
361
  * @param func callback for each
341
362
  */
342
363
  async function each(array, func) {
343
- for (let i = 0; i < array.length; i++) {
344
- await func(array[i], i);
364
+ let i = 0;
365
+ const items = [];
366
+ for (const element of array) {
367
+ const item = isPromise(element) ? await element : element;
368
+ items.push(item);
369
+ await func(item, i);
370
+ i++;
345
371
  }
372
+ return items;
346
373
  }
347
- exports.each = each;
348
374
  /**
349
375
  * async filter array
350
376
  *
@@ -369,7 +395,6 @@ async function filter(array, func) {
369
395
  }
370
396
  return filtered;
371
397
  }
372
- exports.filter = filter;
373
398
  /**
374
399
  * try to:
375
400
  * - await a promise
@@ -394,8 +419,6 @@ async function tryCatch(funcOrPromise, valOrFunc) {
394
419
  return typeof valOrFunc === "function" ? valOrFunc(err) : valOrFunc;
395
420
  }
396
421
  }
397
- exports.tryCatch = tryCatch;
398
- exports.try = tryCatch;
399
422
  /**
400
423
  * Wrap the calling of a function into async/await (promise) context
401
424
  * - intended to be similar to `bluebird.try`
@@ -407,5 +430,4 @@ exports.try = tryCatch;
407
430
  async function wrap(func, ...args2) {
408
431
  return func(...args2);
409
432
  }
410
- exports.wrap = wrap;
411
433
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "xaa",
3
- "version": "1.7.3",
3
+ "version": "1.8.0",
4
4
  "description": "async/await/Promise helpers - delay, defer, timeout, each, map, filter",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
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]",
9
+ "test": "jest",
10
+ "jest:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --no-coverage",
11
+ "coverage": "jest --coverage",
12
+ "prepublishOnly": "xrun --serial [[build], xarc/check]",
12
13
  "docs": "clap xarc/docs && touch docs/.nojekyll"
13
14
  },
14
15
  "homepage": "https://jchip.github.io/xaa/",
@@ -35,32 +36,26 @@
35
36
  "author": "Joel Chen",
36
37
  "license": "Apache-2.0",
37
38
  "devDependencies": {
38
- "@istanbuljs/nyc-config-typescript": "^1.0.1",
39
- "@types/chai": "^4.2.14",
40
- "@types/mocha": "^8.2.0",
41
- "@types/node": "^14.14.16",
42
- "@types/sinon": "^9.0.10",
43
- "@types/sinon-chai": "^3.2.5",
44
- "@typescript-eslint/eslint-plugin": "^4.11.0",
45
- "@typescript-eslint/parser": "^4.11.0",
46
- "@xarc/module-dev": "^4.0.0",
39
+ "@istanbuljs/nyc-config-typescript": "^1.0.2",
40
+ "@types/jest": "^29.5.6",
41
+ "@types/node": "^20.8.9",
42
+ "@typescript-eslint/eslint-plugin": "^6.9.0",
43
+ "@typescript-eslint/parser": "^6.9.0",
44
+ "@xarc/module-dev": "^5.0.0",
47
45
  "babel-eslint": "^10.1.0",
48
- "chai": "^4.2.0",
49
- "eslint": "^7.16.0",
46
+ "eslint": "^8.52.0",
50
47
  "eslint-config-walmart": "^2.2.1",
51
- "eslint-plugin-filenames": "^1.1.0",
52
- "eslint-plugin-jsdoc": "^30.7.9",
53
- "eslint-plugin-tsdoc": "^0.2.11",
54
- "mocha": "^8.2.1",
55
- "nyc": "^15.1.0",
56
- "prettier": "^2.2.1",
48
+ "eslint-plugin-filenames": "^1.3.2",
49
+ "eslint-plugin-jsdoc": "^46.8.2",
50
+ "eslint-plugin-tsdoc": "^0.2.17",
51
+ "jest": "^29.7.0",
52
+ "prettier": "^3.0.3",
57
53
  "run-verify": "^1.2.1",
58
- "sinon": "^9.2.2",
59
- "sinon-chai": "^3.5.0",
60
- "source-map-support": "^0.5.19",
61
- "ts-node": "^9.1.1",
62
- "typedoc": "^0.22.12",
63
- "typescript": "^4.1.3"
54
+ "source-map-support": "^0.5.21",
55
+ "ts-jest": "^29.1.1",
56
+ "ts-node": "^10.9.1",
57
+ "typedoc": "^0.25.2",
58
+ "typescript": "^5.2.2"
64
59
  },
65
60
  "nyc": {
66
61
  "extends": [
@@ -100,19 +95,36 @@
100
95
  "features": [
101
96
  "eslint",
102
97
  "eslintTS",
103
- "mocha",
98
+ "jest",
99
+ "jestTS",
104
100
  "prettier",
105
101
  "typedoc",
106
102
  "typescript"
107
103
  ]
108
104
  },
109
- "mocha": {
110
- "require": [
111
- "ts-node/register",
112
- "source-map-support/register",
113
- "@xarc/module-dev/config/test/setup.js"
114
- ],
115
- "recursive": true
105
+ "dependencies": {
106
+ "tslib": "^2.6.2"
116
107
  },
117
- "dependencies": {}
108
+ "jest": {
109
+ "transform": {
110
+ "^.+\\.(ts|tsx)$": "ts-jest"
111
+ },
112
+ "testEnvironment": "node",
113
+ "testMatch": [
114
+ "**/test/**/*.spec.ts",
115
+ "**/test/**/*.spec.js"
116
+ ],
117
+ "collectCoverageFrom": [
118
+ "src/**/*.{ts,js}",
119
+ "!**/node_modules/**"
120
+ ],
121
+ "coverageThreshold": {
122
+ "global": {
123
+ "statements": 100,
124
+ "branches": 100,
125
+ "functions": 100,
126
+ "lines": 100
127
+ }
128
+ }
129
+ }
118
130
  }