@orioro/util 0.9.0 → 0.10.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/hookFn/index.d.ts +10 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +100 -1
- package/dist/promise/index.d.ts +1 -0
- package/dist/promise/makeDeferred.d.ts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type AnyFn = (...args: any[]) => any;
|
|
2
|
+
type Hooks = Partial<{
|
|
3
|
+
input: AnyFn;
|
|
4
|
+
validate: AnyFn;
|
|
5
|
+
before: AnyFn;
|
|
6
|
+
output: AnyFn;
|
|
7
|
+
after: AnyFn;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function hookFn(fn: AnyFn, { input, validate, before, output, after }: Hooks): (...args: any[]) => Promise<any>;
|
|
10
|
+
export {};
|
package/dist/index.d.ts
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -668,6 +668,31 @@ function parseBatchedResults(inputs, results) {
|
|
|
668
668
|
});
|
|
669
669
|
}
|
|
670
670
|
|
|
671
|
+
function makeDeferred() {
|
|
672
|
+
var resolve = function resolve() {};
|
|
673
|
+
var reject = function reject() {};
|
|
674
|
+
var settled = false;
|
|
675
|
+
var promise = new Promise(function (_resolve, _reject) {
|
|
676
|
+
resolve = function resolve(value) {
|
|
677
|
+
if (!settled) {
|
|
678
|
+
settled = true;
|
|
679
|
+
_resolve(value);
|
|
680
|
+
}
|
|
681
|
+
};
|
|
682
|
+
reject = function reject(reason) {
|
|
683
|
+
if (!settled) {
|
|
684
|
+
settled = true;
|
|
685
|
+
_reject(reason);
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
});
|
|
689
|
+
return {
|
|
690
|
+
promise: promise,
|
|
691
|
+
resolve: resolve,
|
|
692
|
+
reject: reject
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
|
|
671
696
|
function testCriteria(criteria, input) {
|
|
672
697
|
switch (_typeof(criteria)) {
|
|
673
698
|
case 'function':
|
|
@@ -1627,4 +1652,78 @@ function normalizeString(str) {
|
|
|
1627
1652
|
.trim(); // Trim leading and trailing spaces
|
|
1628
1653
|
}
|
|
1629
1654
|
|
|
1630
|
-
|
|
1655
|
+
//
|
|
1656
|
+
// Hook module
|
|
1657
|
+
//
|
|
1658
|
+
function hookFn(fn, _a) {
|
|
1659
|
+
var input = _a.input,
|
|
1660
|
+
validate = _a.validate,
|
|
1661
|
+
before = _a.before,
|
|
1662
|
+
output = _a.output,
|
|
1663
|
+
after = _a.after;
|
|
1664
|
+
return function () {
|
|
1665
|
+
var args = [];
|
|
1666
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1667
|
+
args[_i] = arguments[_i];
|
|
1668
|
+
}
|
|
1669
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1670
|
+
var _input, _a, validationResult, error, rawResult, result, _b;
|
|
1671
|
+
return __generator(this, function (_c) {
|
|
1672
|
+
switch (_c.label) {
|
|
1673
|
+
case 0:
|
|
1674
|
+
if (!(typeof input === 'function')) return [3 /*break*/, 2];
|
|
1675
|
+
return [4 /*yield*/, input.apply(void 0, args)];
|
|
1676
|
+
case 1:
|
|
1677
|
+
_a = _c.sent();
|
|
1678
|
+
return [3 /*break*/, 3];
|
|
1679
|
+
case 2:
|
|
1680
|
+
_a = args;
|
|
1681
|
+
_c.label = 3;
|
|
1682
|
+
case 3:
|
|
1683
|
+
_input = _a;
|
|
1684
|
+
if (!Array.isArray(_input)) {
|
|
1685
|
+
throw new TypeError('Input hook must resolve an array of args');
|
|
1686
|
+
}
|
|
1687
|
+
if (!(typeof validate === 'function')) return [3 /*break*/, 5];
|
|
1688
|
+
return [4 /*yield*/, validate.apply(void 0, _input)];
|
|
1689
|
+
case 4:
|
|
1690
|
+
validationResult = _c.sent();
|
|
1691
|
+
if (validationResult !== true) {
|
|
1692
|
+
error = typeof validationResult === 'string' ? new Error(validationResult) : validationResult instanceof Error ? validationResult : new Error('Invalid input');
|
|
1693
|
+
throw error;
|
|
1694
|
+
}
|
|
1695
|
+
_c.label = 5;
|
|
1696
|
+
case 5:
|
|
1697
|
+
if (!(typeof before === 'function')) return [3 /*break*/, 7];
|
|
1698
|
+
return [4 /*yield*/, before.apply(void 0, _input)];
|
|
1699
|
+
case 6:
|
|
1700
|
+
_c.sent();
|
|
1701
|
+
_c.label = 7;
|
|
1702
|
+
case 7:
|
|
1703
|
+
return [4 /*yield*/, fn.apply(void 0, _input)];
|
|
1704
|
+
case 8:
|
|
1705
|
+
rawResult = _c.sent();
|
|
1706
|
+
if (!(typeof output === 'function')) return [3 /*break*/, 10];
|
|
1707
|
+
return [4 /*yield*/, output(rawResult)];
|
|
1708
|
+
case 9:
|
|
1709
|
+
_b = _c.sent();
|
|
1710
|
+
return [3 /*break*/, 11];
|
|
1711
|
+
case 10:
|
|
1712
|
+
_b = rawResult;
|
|
1713
|
+
_c.label = 11;
|
|
1714
|
+
case 11:
|
|
1715
|
+
result = _b;
|
|
1716
|
+
if (!(typeof after === 'function')) return [3 /*break*/, 13];
|
|
1717
|
+
return [4 /*yield*/, after.apply(void 0, __spreadArray([result], _input, false))];
|
|
1718
|
+
case 12:
|
|
1719
|
+
_c.sent();
|
|
1720
|
+
_c.label = 13;
|
|
1721
|
+
case 13:
|
|
1722
|
+
return [2 /*return*/, result];
|
|
1723
|
+
}
|
|
1724
|
+
});
|
|
1725
|
+
});
|
|
1726
|
+
};
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
export { PromiseLikeEventEmitter, SKIPPED, TimeoutError, ValidationError, batchFn, debugFn, deepFreeze, fetchAllPages, hookFn, inMemoryDataStore, interpolate, makeDeferred, makeTypeOf, maybeFn, normalizeString, paginatedHttpFetch, parseBatchedResults, pickPaths, promiseReduce, resolveNestedPromises, switchExec, switchValue, typeMap, typeOf, validate, validateAsync, wait, withTimeout };
|
package/dist/promise/index.d.ts
CHANGED