@ledgerhq/live-promise 0.0.1 → 0.0.2-next.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/.eslintignore ADDED
@@ -0,0 +1,2 @@
1
+ lib/
2
+ lib-es/
package/.eslintrc.js CHANGED
@@ -1,57 +1,20 @@
1
1
  module.exports = {
2
- parser: "@typescript-eslint/parser",
3
2
  env: {
4
3
  browser: true,
5
4
  es6: true,
6
- node: true,
7
- jest: true,
8
5
  },
9
- extends: [
10
- "eslint:recommended",
11
- "plugin:@typescript-eslint/eslint-recommended",
12
- "plugin:@typescript-eslint/recommended",
13
- "prettier",
6
+ overrides: [
7
+ {
8
+ files: ["src/**/*.test.{ts,tsx}"],
9
+ env: {
10
+ "jest/globals": true,
11
+ },
12
+ plugins: ["jest"],
13
+ },
14
14
  ],
15
- globals: {
16
- Atomics: "readonly",
17
- SharedArrayBuffer: "readonly",
18
- },
19
- plugins: ["@typescript-eslint", "prettier"],
20
15
  rules: {
21
16
  "no-console": ["error", { allow: ["warn", "error"] }],
22
- "linebreak-style": ["error", "unix"],
23
- semi: ["error", "always"],
24
- "no-unused-vars": "off",
25
- "import/prefer-default-export": 0,
26
- "no-plusplus": 0,
27
- "no-underscore-dangle": 0,
28
- "prefer-template": 0,
29
- "no-await-in-loop": 0,
30
- "no-restricted-syntax": 0,
31
- "consistent-return": 0,
32
- "no-lonely-if": 0,
33
- "no-use-before-define": 0,
34
- "no-nested-ternary": 0,
35
- "import/no-cycle": 0,
36
- "no-multi-assign": 0,
37
- "guard-for-in": 0,
38
- "no-continue": 0,
39
- "lines-between-class-members": 0,
40
- "prefer-destructuring": 0,
41
- "prettier/prettier": "error",
42
- "@typescript-eslint/no-use-before-define": "off",
43
- "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
44
17
  "@typescript-eslint/no-empty-function": "off",
45
- "@typescript-eslint/no-namespace": ["error", { allowDeclarations: true }],
46
- "@typescript-eslint/no-explicit-any": 0,
47
- "@typescript-eslint/ban-types": [
48
- "error",
49
- {
50
- extendDefaults: true,
51
- types: {
52
- "{}": false,
53
- },
54
- },
55
- ],
18
+ "@typescript-eslint/no-explicit-any": "warn",
56
19
  },
57
20
  };
@@ -0,0 +1,5 @@
1
+ {
2
+ "entry": ["src/index.ts"],
3
+ "ignoreUnimported": [],
4
+ "ignoreUnresolved": []
5
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # @ledgerhq/live-promise
2
+
3
+ ## 0.0.2-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`9e2d32aec4`](https://github.com/LedgerHQ/ledger-live/commit/9e2d32aec4ebd8774880f94e3ef0e805ebb172ac)]:
8
+ - @ledgerhq/logs@6.11.0-next.0
package/lib/index.js CHANGED
@@ -13,6 +13,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
- exports.__esModule = true;
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./promise"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,QAAQ,IAAI,CACR,CAAC;AACxC,QAAA,MAAM,QAAQ;;;;;CAKb,CAAC;AACF,wBAAgB,KAAK,CAAC,CAAC,EACrB,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AACD,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,eAAO,MAAM,WAAW,yEAEW,MAAM,cAUxC,CAAC;AACF,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwBd"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,QAAQ,IAAI,CAAwC,CAAC;AACxF,QAAA,MAAM,QAAQ;;;;;CAKb,CAAC;AACF,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AACD,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,eAAO,MAAM,WAAW,yEAEW,MAAM,cAUxC,CAAC;AACF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOlF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwBd"}
package/lib/promise.js CHANGED
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,112 +8,51 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __read = (this && this.__read) || function (o, n) {
50
- var m = typeof Symbol === "function" && o[Symbol.iterator];
51
- if (!m) return o;
52
- var i = m.call(o), r, ar = [], e;
53
- try {
54
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
- }
56
- catch (error) { e = { error: error }; }
57
- finally {
58
- try {
59
- if (r && !r.done && (m = i["return"])) m.call(i);
60
- }
61
- finally { if (e) throw e.error; }
62
- }
63
- return ar;
64
- };
65
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
- if (ar || !(i in from)) {
68
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
- ar[i] = from[i];
70
- }
71
- }
72
- return to.concat(ar || Array.prototype.slice.call(from));
73
- };
74
- exports.__esModule = true;
11
+ Object.defineProperty(exports, "__esModule", { value: true });
75
12
  exports.promiseAllBatched = exports.execAndWaitAtLeast = exports.atomicQueue = exports.retry = exports.delay = void 0;
76
- var logs_1 = require("@ledgerhq/logs");
77
- var delay = function (ms) {
78
- return new Promise(function (f) { return setTimeout(f, ms); });
79
- };
13
+ const logs_1 = require("@ledgerhq/logs");
14
+ const delay = (ms) => new Promise(f => setTimeout(f, ms));
80
15
  exports.delay = delay;
81
- var defaults = {
16
+ const defaults = {
82
17
  maxRetry: 4,
83
18
  interval: 300,
84
19
  intervalMultiplicator: 1.5,
85
- context: ""
20
+ context: "",
86
21
  };
87
22
  function retry(f, options) {
88
- var _a = __assign(__assign({}, defaults), options), maxRetry = _a.maxRetry, interval = _a.interval, intervalMultiplicator = _a.intervalMultiplicator, context = _a.context;
23
+ const { maxRetry, interval, intervalMultiplicator, context } = Object.assign(Object.assign({}, defaults), options);
89
24
  function rec(remainingTry, i) {
90
- var result = f();
25
+ const result = f();
91
26
  if (remainingTry <= 0) {
92
27
  return result;
93
28
  }
94
29
  // In case of failure, wait the interval, retry the action
95
- return result["catch"](function (e) {
30
+ return result.catch(e => {
96
31
  (0, logs_1.log)("promise-retry", context + " failed. " + remainingTry + " retry remain. " + String(e));
97
- return (0, exports.delay)(i).then(function () {
98
- return rec(remainingTry - 1, i * intervalMultiplicator);
99
- });
32
+ return (0, exports.delay)(i).then(() => rec(remainingTry - 1, i * intervalMultiplicator));
100
33
  });
101
34
  }
102
35
  return rec(maxRetry, interval);
103
36
  }
104
37
  exports.retry = retry;
105
- var atomicQueue = function (job, queueIdentifier) {
106
- if (queueIdentifier === void 0) { queueIdentifier = function () { return ""; }; }
107
- var queues = {};
108
- return function () {
109
- var args = [];
110
- for (var _i = 0; _i < arguments.length; _i++) {
111
- args[_i] = arguments[_i];
112
- }
113
- var id = queueIdentifier.apply(void 0, __spreadArray([], __read(args), false));
114
- var queue = queues[id] || Promise.resolve();
115
- var p = queue.then(function () { return job.apply(void 0, __spreadArray([], __read(args), false)); });
116
- queues[id] = p["catch"](function () { });
38
+ const atomicQueue = (job, queueIdentifier = () => "") => {
39
+ const queues = {};
40
+ return (...args) => {
41
+ const id = queueIdentifier(...args);
42
+ const queue = queues[id] || Promise.resolve();
43
+ const p = queue.then(() => job(...args));
44
+ queues[id] = p.catch(() => { });
117
45
  return p;
118
46
  };
119
47
  };
120
48
  exports.atomicQueue = atomicQueue;
121
49
  function execAndWaitAtLeast(ms, cb) {
122
- var startTime = Date.now();
123
- return cb().then(function (r) {
124
- var remaining = ms - (Date.now() - startTime);
50
+ const startTime = Date.now();
51
+ return cb().then(r => {
52
+ const remaining = ms - (Date.now() - startTime);
125
53
  if (remaining <= 0)
126
54
  return r;
127
- return (0, exports.delay)(remaining).then(function () { return r; });
55
+ return (0, exports.delay)(remaining).then(() => r);
128
56
  });
129
57
  }
130
58
  exports.execAndWaitAtLeast = execAndWaitAtLeast;
@@ -136,51 +64,29 @@ exports.execAndWaitAtLeast = execAndWaitAtLeast;
136
64
  * where f is a function that returns a promise
137
65
  */
138
66
  function promiseAllBatched(batch, items, fn) {
139
- return __awaiter(this, void 0, void 0, function () {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const data = Array(items.length);
69
+ const queue = items.map((item, index) => ({
70
+ item,
71
+ index,
72
+ }));
140
73
  function step() {
141
- return __awaiter(this, void 0, void 0, function () {
142
- var first, item, index, _a, _b;
143
- return __generator(this, function (_c) {
144
- switch (_c.label) {
145
- case 0:
146
- if (queue.length === 0)
147
- return [2 /*return*/];
148
- first = queue.shift();
149
- if (!first) return [3 /*break*/, 2];
150
- item = first.item, index = first.index;
151
- _a = data;
152
- _b = index;
153
- return [4 /*yield*/, fn(item, index)];
154
- case 1:
155
- _a[_b] = _c.sent();
156
- _c.label = 2;
157
- case 2: return [4 /*yield*/, step()];
158
- case 3:
159
- _c.sent(); // each time an item redeem, we schedule another one
160
- return [2 /*return*/];
161
- }
162
- });
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ if (queue.length === 0)
76
+ return;
77
+ const first = queue.shift();
78
+ if (first) {
79
+ const { item, index } = first;
80
+ data[index] = yield fn(item, index);
81
+ }
82
+ yield step(); // each time an item redeem, we schedule another one
163
83
  });
164
84
  }
165
- var data, queue;
166
- return __generator(this, function (_a) {
167
- switch (_a.label) {
168
- case 0:
169
- data = Array(items.length);
170
- queue = items.map(function (item, index) { return ({
171
- item: item,
172
- index: index
173
- }); });
174
- // initially, we schedule <batch> items in parallel
175
- return [4 /*yield*/, Promise.all(Array(Math.min(batch, items.length))
176
- .fill(function () { return undefined; })
177
- .map(step))];
178
- case 1:
179
- // initially, we schedule <batch> items in parallel
180
- _a.sent();
181
- return [2 /*return*/, data];
182
- }
183
- });
85
+ // initially, we schedule <batch> items in parallel
86
+ yield Promise.all(Array(Math.min(batch, items.length))
87
+ .fill(() => undefined)
88
+ .map(step));
89
+ return data;
184
90
  });
185
91
  }
186
92
  exports.promiseAllBatched = promiseAllBatched;
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"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"}
@@ -8,65 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- exports.__esModule = true;
39
- var promise_1 = require("./promise");
40
- test("promiseAllBatched", function () { return __awaiter(void 0, void 0, void 0, function () {
41
- var promisifyIdPlusOne, p, _a, _b, _c, _d, _e;
42
- return __generator(this, function (_f) {
43
- switch (_f.label) {
44
- case 0:
45
- promisifyIdPlusOne = function (a) { return Promise.resolve(a + 1); };
46
- p = (0, promise_1.promiseAllBatched)(5, [], promisifyIdPlusOne);
47
- expect(typeof p.then).toBe("function");
48
- _a = expect;
49
- return [4 /*yield*/, p];
50
- case 1:
51
- _a.apply(void 0, [_f.sent()]).toEqual([]);
52
- _b = expect;
53
- return [4 /*yield*/, (0, promise_1.promiseAllBatched)(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
54
- case 2:
55
- _b.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
56
- _c = expect;
57
- return [4 /*yield*/, (0, promise_1.promiseAllBatched)(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
58
- case 3:
59
- _c.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
60
- _d = expect;
61
- return [4 /*yield*/, (0, promise_1.promiseAllBatched)(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
62
- case 4:
63
- _d.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
64
- _e = expect;
65
- return [4 /*yield*/, (0, promise_1.promiseAllBatched)(2, Array(6).fill(0), function (_, i) { return Promise.resolve(i); })];
66
- case 5:
67
- _e.apply(void 0, [_f.sent()]).toEqual([0, 1, 2, 3, 4, 5]);
68
- return [2 /*return*/];
69
- }
70
- });
71
- }); });
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const promise_1 = require("./promise");
13
+ test("promiseAllBatched", () => __awaiter(void 0, void 0, void 0, function* () {
14
+ const promisifyIdPlusOne = (a) => Promise.resolve(a + 1);
15
+ const p = (0, promise_1.promiseAllBatched)(5, [], promisifyIdPlusOne);
16
+ expect(typeof p.then).toBe("function");
17
+ expect(yield p).toEqual([]);
18
+ expect(yield (0, promise_1.promiseAllBatched)(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
19
+ 2, 3, 4, 5, 6, 7, 8, 9,
20
+ ]);
21
+ expect(yield (0, promise_1.promiseAllBatched)(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
22
+ 2, 3, 4, 5, 6, 7, 8, 9,
23
+ ]);
24
+ expect(yield (0, promise_1.promiseAllBatched)(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
25
+ 2, 3, 4, 5, 6, 7, 8, 9,
26
+ ]);
27
+ expect(yield (0, promise_1.promiseAllBatched)(2, Array(6).fill(0), (_, i) => Promise.resolve(i))).toEqual([
28
+ 0, 1, 2, 3, 4, 5,
29
+ ]);
30
+ }));
72
31
  //# sourceMappingURL=promise.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.test.js","sourceRoot":"","sources":["../src/promise.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA8C;AAC9C,IAAI,CAAC,mBAAmB,EAAE;;;;;gBAClB,kBAAkB,GAAG,UAAC,CAAS,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAtB,CAAsB,CAAC;gBAE3D,CAAC,GAAG,IAAA,2BAAiB,EAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,KAAA,MAAM,CAAA;gBAAC,qBAAM,CAAC,EAAA;;gBAAd,kBAAO,SAAO,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5B,KAAA,MAAM,CAAA;gBACJ,qBAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD1E,kBACE,SAAwE,EACzE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD1E,kBACE,SAAwE,EACzE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,IAAA,2BAAiB,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD3E,kBACE,SAAyE,EAC1E,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,EAAA;;gBAD5E,kBACE,SAA0E,EAC3E,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;;;KAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"promise.test.js","sourceRoot":"","sources":["../src/promise.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uCAA8C;AAC9C,IAAI,CAAC,mBAAmB,EAAE,GAAS,EAAE;IACnC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,MAAM,CAAC,GAAG,IAAA,2BAAiB,EAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,IAAA,2BAAiB,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,IAAA,2BAAiB,EAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACjB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,QAAQ,IAAI,CACR,CAAC;AACxC,QAAA,MAAM,QAAQ;;;;;CAKb,CAAC;AACF,wBAAgB,KAAK,CAAC,CAAC,EACrB,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AACD,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,eAAO,MAAM,WAAW,yEAEW,MAAM,cAUxC,CAAC;AACF,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwBd"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,QAAQ,IAAI,CAAwC,CAAC;AACxF,QAAA,MAAM,QAAQ;;;;;CAKb,CAAC;AACF,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AACD,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,eAAO,MAAM,WAAW,yEAEW,MAAM,cAUxC,CAAC;AACF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOlF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAwBd"}
package/lib-es/promise.js CHANGED
@@ -1,14 +1,3 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -18,107 +7,46 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
18
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
19
8
  });
20
9
  };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __read = (this && this.__read) || function (o, n) {
49
- var m = typeof Symbol === "function" && o[Symbol.iterator];
50
- if (!m) return o;
51
- var i = m.call(o), r, ar = [], e;
52
- try {
53
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
- }
55
- catch (error) { e = { error: error }; }
56
- finally {
57
- try {
58
- if (r && !r.done && (m = i["return"])) m.call(i);
59
- }
60
- finally { if (e) throw e.error; }
61
- }
62
- return ar;
63
- };
64
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
- if (ar || !(i in from)) {
67
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
- ar[i] = from[i];
69
- }
70
- }
71
- return to.concat(ar || Array.prototype.slice.call(from));
72
- };
73
10
  import { log } from "@ledgerhq/logs";
74
- export var delay = function (ms) {
75
- return new Promise(function (f) { return setTimeout(f, ms); });
76
- };
77
- var defaults = {
11
+ export const delay = (ms) => new Promise(f => setTimeout(f, ms));
12
+ const defaults = {
78
13
  maxRetry: 4,
79
14
  interval: 300,
80
15
  intervalMultiplicator: 1.5,
81
- context: ""
16
+ context: "",
82
17
  };
83
18
  export function retry(f, options) {
84
- var _a = __assign(__assign({}, defaults), options), maxRetry = _a.maxRetry, interval = _a.interval, intervalMultiplicator = _a.intervalMultiplicator, context = _a.context;
19
+ const { maxRetry, interval, intervalMultiplicator, context } = Object.assign(Object.assign({}, defaults), options);
85
20
  function rec(remainingTry, i) {
86
- var result = f();
21
+ const result = f();
87
22
  if (remainingTry <= 0) {
88
23
  return result;
89
24
  }
90
25
  // In case of failure, wait the interval, retry the action
91
- return result["catch"](function (e) {
26
+ return result.catch(e => {
92
27
  log("promise-retry", context + " failed. " + remainingTry + " retry remain. " + String(e));
93
- return delay(i).then(function () {
94
- return rec(remainingTry - 1, i * intervalMultiplicator);
95
- });
28
+ return delay(i).then(() => rec(remainingTry - 1, i * intervalMultiplicator));
96
29
  });
97
30
  }
98
31
  return rec(maxRetry, interval);
99
32
  }
100
- export var atomicQueue = function (job, queueIdentifier) {
101
- if (queueIdentifier === void 0) { queueIdentifier = function () { return ""; }; }
102
- var queues = {};
103
- return function () {
104
- var args = [];
105
- for (var _i = 0; _i < arguments.length; _i++) {
106
- args[_i] = arguments[_i];
107
- }
108
- var id = queueIdentifier.apply(void 0, __spreadArray([], __read(args), false));
109
- var queue = queues[id] || Promise.resolve();
110
- var p = queue.then(function () { return job.apply(void 0, __spreadArray([], __read(args), false)); });
111
- queues[id] = p["catch"](function () { });
33
+ export const atomicQueue = (job, queueIdentifier = () => "") => {
34
+ const queues = {};
35
+ return (...args) => {
36
+ const id = queueIdentifier(...args);
37
+ const queue = queues[id] || Promise.resolve();
38
+ const p = queue.then(() => job(...args));
39
+ queues[id] = p.catch(() => { });
112
40
  return p;
113
41
  };
114
42
  };
115
43
  export function execAndWaitAtLeast(ms, cb) {
116
- var startTime = Date.now();
117
- return cb().then(function (r) {
118
- var remaining = ms - (Date.now() - startTime);
44
+ const startTime = Date.now();
45
+ return cb().then(r => {
46
+ const remaining = ms - (Date.now() - startTime);
119
47
  if (remaining <= 0)
120
48
  return r;
121
- return delay(remaining).then(function () { return r; });
49
+ return delay(remaining).then(() => r);
122
50
  });
123
51
  }
124
52
  /**
@@ -129,51 +57,29 @@ export function execAndWaitAtLeast(ms, cb) {
129
57
  * where f is a function that returns a promise
130
58
  */
131
59
  export function promiseAllBatched(batch, items, fn) {
132
- return __awaiter(this, void 0, void 0, function () {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const data = Array(items.length);
62
+ const queue = items.map((item, index) => ({
63
+ item,
64
+ index,
65
+ }));
133
66
  function step() {
134
- return __awaiter(this, void 0, void 0, function () {
135
- var first, item, index, _a, _b;
136
- return __generator(this, function (_c) {
137
- switch (_c.label) {
138
- case 0:
139
- if (queue.length === 0)
140
- return [2 /*return*/];
141
- first = queue.shift();
142
- if (!first) return [3 /*break*/, 2];
143
- item = first.item, index = first.index;
144
- _a = data;
145
- _b = index;
146
- return [4 /*yield*/, fn(item, index)];
147
- case 1:
148
- _a[_b] = _c.sent();
149
- _c.label = 2;
150
- case 2: return [4 /*yield*/, step()];
151
- case 3:
152
- _c.sent(); // each time an item redeem, we schedule another one
153
- return [2 /*return*/];
154
- }
155
- });
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ if (queue.length === 0)
69
+ return;
70
+ const first = queue.shift();
71
+ if (first) {
72
+ const { item, index } = first;
73
+ data[index] = yield fn(item, index);
74
+ }
75
+ yield step(); // each time an item redeem, we schedule another one
156
76
  });
157
77
  }
158
- var data, queue;
159
- return __generator(this, function (_a) {
160
- switch (_a.label) {
161
- case 0:
162
- data = Array(items.length);
163
- queue = items.map(function (item, index) { return ({
164
- item: item,
165
- index: index
166
- }); });
167
- // initially, we schedule <batch> items in parallel
168
- return [4 /*yield*/, Promise.all(Array(Math.min(batch, items.length))
169
- .fill(function () { return undefined; })
170
- .map(step))];
171
- case 1:
172
- // initially, we schedule <batch> items in parallel
173
- _a.sent();
174
- return [2 /*return*/, data];
175
- }
176
- });
78
+ // initially, we schedule <batch> items in parallel
79
+ yield Promise.all(Array(Math.min(batch, items.length))
80
+ .fill(() => undefined)
81
+ .map(step));
82
+ return data;
177
83
  });
178
84
  }
179
85
  //# sourceMappingURL=promise.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"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"}
@@ -7,64 +7,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
10
  import { promiseAllBatched } from "./promise";
38
- test("promiseAllBatched", function () { return __awaiter(void 0, void 0, void 0, function () {
39
- var promisifyIdPlusOne, p, _a, _b, _c, _d, _e;
40
- return __generator(this, function (_f) {
41
- switch (_f.label) {
42
- case 0:
43
- promisifyIdPlusOne = function (a) { return Promise.resolve(a + 1); };
44
- p = promiseAllBatched(5, [], promisifyIdPlusOne);
45
- expect(typeof p.then).toBe("function");
46
- _a = expect;
47
- return [4 /*yield*/, p];
48
- case 1:
49
- _a.apply(void 0, [_f.sent()]).toEqual([]);
50
- _b = expect;
51
- return [4 /*yield*/, promiseAllBatched(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
52
- case 2:
53
- _b.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
54
- _c = expect;
55
- return [4 /*yield*/, promiseAllBatched(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
56
- case 3:
57
- _c.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
58
- _d = expect;
59
- return [4 /*yield*/, promiseAllBatched(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)];
60
- case 4:
61
- _d.apply(void 0, [_f.sent()]).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
62
- _e = expect;
63
- return [4 /*yield*/, promiseAllBatched(2, Array(6).fill(0), function (_, i) { return Promise.resolve(i); })];
64
- case 5:
65
- _e.apply(void 0, [_f.sent()]).toEqual([0, 1, 2, 3, 4, 5]);
66
- return [2 /*return*/];
67
- }
68
- });
69
- }); });
11
+ test("promiseAllBatched", () => __awaiter(void 0, void 0, void 0, function* () {
12
+ const promisifyIdPlusOne = (a) => Promise.resolve(a + 1);
13
+ const p = promiseAllBatched(5, [], promisifyIdPlusOne);
14
+ expect(typeof p.then).toBe("function");
15
+ expect(yield p).toEqual([]);
16
+ expect(yield promiseAllBatched(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
17
+ 2, 3, 4, 5, 6, 7, 8, 9,
18
+ ]);
19
+ expect(yield promiseAllBatched(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
20
+ 2, 3, 4, 5, 6, 7, 8, 9,
21
+ ]);
22
+ expect(yield promiseAllBatched(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
23
+ 2, 3, 4, 5, 6, 7, 8, 9,
24
+ ]);
25
+ expect(yield promiseAllBatched(2, Array(6).fill(0), (_, i) => Promise.resolve(i))).toEqual([
26
+ 0, 1, 2, 3, 4, 5,
27
+ ]);
28
+ }));
70
29
  //# sourceMappingURL=promise.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.test.js","sourceRoot":"","sources":["../src/promise.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,IAAI,CAAC,mBAAmB,EAAE;;;;;gBAClB,kBAAkB,GAAG,UAAC,CAAS,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAtB,CAAsB,CAAC;gBAE3D,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,KAAA,MAAM,CAAA;gBAAC,qBAAM,CAAC,EAAA;;gBAAd,kBAAO,SAAO,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5B,KAAA,MAAM,CAAA;gBACJ,qBAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD1E,kBACE,SAAwE,EACzE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD1E,kBACE,SAAwE,EACzE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAA;;gBAD3E,kBACE,SAAyE,EAC1E,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAA,MAAM,CAAA;gBACJ,qBAAM,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC,EAAA;;gBAD5E,kBACE,SAA0E,EAC3E,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;;;KAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"promise.test.js","sourceRoot":"","sources":["../src/promise.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,IAAI,CAAC,mBAAmB,EAAE,GAAS,EAAE;IACnC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACvD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACjB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-promise",
3
- "version": "0.0.1",
3
+ "version": "0.0.2-next.0",
4
4
  "description": "Ledger Live Promise utilities",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -21,30 +21,21 @@
21
21
  "types": "lib/index.d.ts",
22
22
  "license": "Apache-2.0",
23
23
  "dependencies": {
24
- "@ledgerhq/logs": "^6.10.1"
24
+ "@ledgerhq/logs": "^6.11.0-next.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/jest": "^29.2.4",
28
- "@typescript-eslint/eslint-plugin": "^5.46.1",
29
- "@typescript-eslint/parser": "^5.46.1",
30
- "eslint": "^7.32.0",
31
- "eslint-config-prettier": "^8.3.0",
32
- "eslint-config-typescript": "^3.0.0",
33
- "eslint-formatter-pretty": "^3.0.1",
34
- "eslint-plugin-prettier": "^3.4.0",
35
- "eslint-plugin-typescript": "^0.14.0",
36
28
  "jest": "^28.1.1",
37
- "prettier": "^2.8.1",
38
- "ts-jest": "^28.0.5",
39
- "typescript": "^4.9.4"
29
+ "ts-jest": "^28.0.5"
40
30
  },
41
31
  "scripts": {
42
32
  "clean": "rimraf lib lib-es",
43
33
  "build": "tsc && tsc -m ES6 --outDir lib-es",
44
34
  "prewatch": "pnpm build",
45
35
  "watch": "tsc --watch",
46
- "lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx",
36
+ "lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
47
37
  "lint:fix": "pnpm lint --fix",
48
- "test": "jest"
38
+ "test": "jest",
39
+ "unimported": "unimported"
49
40
  }
50
41
  }
@@ -5,16 +5,16 @@ test("promiseAllBatched", async () => {
5
5
  const p = promiseAllBatched(5, [], promisifyIdPlusOne);
6
6
  expect(typeof p.then).toBe("function");
7
7
  expect(await p).toEqual([]);
8
- expect(
9
- await promiseAllBatched(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)
10
- ).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
11
- expect(
12
- await promiseAllBatched(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)
13
- ).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
14
- expect(
15
- await promiseAllBatched(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)
16
- ).toEqual([2, 3, 4, 5, 6, 7, 8, 9]);
17
- expect(
18
- await promiseAllBatched(2, Array(6).fill(0), (_, i) => Promise.resolve(i))
19
- ).toEqual([0, 1, 2, 3, 4, 5]);
8
+ expect(await promiseAllBatched(5, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
9
+ 2, 3, 4, 5, 6, 7, 8, 9,
10
+ ]);
11
+ expect(await promiseAllBatched(1, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
12
+ 2, 3, 4, 5, 6, 7, 8, 9,
13
+ ]);
14
+ expect(await promiseAllBatched(10, [1, 2, 3, 4, 5, 6, 7, 8], promisifyIdPlusOne)).toEqual([
15
+ 2, 3, 4, 5, 6, 7, 8, 9,
16
+ ]);
17
+ expect(await promiseAllBatched(2, Array(6).fill(0), (_, i) => Promise.resolve(i))).toEqual([
18
+ 0, 1, 2, 3, 4, 5,
19
+ ]);
20
20
  });
package/src/promise.ts CHANGED
@@ -1,16 +1,12 @@
1
1
  import { log } from "@ledgerhq/logs";
2
- export const delay = (ms: number): Promise<void> =>
3
- new Promise((f) => setTimeout(f, ms));
2
+ export const delay = (ms: number): Promise<void> => new Promise(f => setTimeout(f, ms));
4
3
  const defaults = {
5
4
  maxRetry: 4,
6
5
  interval: 300,
7
6
  intervalMultiplicator: 1.5,
8
7
  context: "",
9
8
  };
10
- export function retry<A>(
11
- f: () => Promise<A>,
12
- options?: Partial<typeof defaults>
13
- ): Promise<A> {
9
+ export function retry<A>(f: () => Promise<A>, options?: Partial<typeof defaults>): Promise<A> {
14
10
  const { maxRetry, interval, intervalMultiplicator, context } = {
15
11
  ...defaults,
16
12
  ...options,
@@ -24,14 +20,9 @@ export function retry<A>(
24
20
  }
25
21
 
26
22
  // In case of failure, wait the interval, retry the action
27
- return result.catch((e) => {
28
- log(
29
- "promise-retry",
30
- context + " failed. " + remainingTry + " retry remain. " + String(e)
31
- );
32
- return delay(i).then(() =>
33
- rec(remainingTry - 1, i * intervalMultiplicator)
34
- );
23
+ return result.catch(e => {
24
+ log("promise-retry", context + " failed. " + remainingTry + " retry remain. " + String(e));
25
+ return delay(i).then(() => rec(remainingTry - 1, i * intervalMultiplicator));
35
26
  });
36
27
  }
37
28
 
@@ -40,7 +31,7 @@ export function retry<A>(
40
31
  type Job<R, A extends Array<any>> = (...args: A) => Promise<R>;
41
32
  export const atomicQueue = <R, A extends Array<any>>(
42
33
  job: Job<R, A>,
43
- queueIdentifier: (...args: A) => string = () => ""
34
+ queueIdentifier: (...args: A) => string = () => "",
44
35
  ): Job<R, A> => {
45
36
  const queues: Record<string, any> = {};
46
37
  return (...args) => {
@@ -51,12 +42,9 @@ export const atomicQueue = <R, A extends Array<any>>(
51
42
  return p;
52
43
  };
53
44
  };
54
- export function execAndWaitAtLeast<A>(
55
- ms: number,
56
- cb: () => Promise<A>
57
- ): Promise<A> {
45
+ export function execAndWaitAtLeast<A>(ms: number, cb: () => Promise<A>): Promise<A> {
58
46
  const startTime = Date.now();
59
- return cb().then((r) => {
47
+ return cb().then(r => {
60
48
  const remaining = ms - (Date.now() - startTime);
61
49
  if (remaining <= 0) return r;
62
50
  return delay(remaining).then(() => r);
@@ -73,7 +61,7 @@ export function execAndWaitAtLeast<A>(
73
61
  export async function promiseAllBatched<A, B>(
74
62
  batch: number,
75
63
  items: Array<A>,
76
- fn: (arg0: A, arg1: number) => Promise<B>
64
+ fn: (arg0: A, arg1: number) => Promise<B>,
77
65
  ): Promise<B[]> {
78
66
  const data = Array(items.length);
79
67
  const queue = items.map((item, index) => ({
@@ -95,7 +83,7 @@ export async function promiseAllBatched<A, B>(
95
83
  await Promise.all(
96
84
  Array(Math.min(batch, items.length))
97
85
  .fill(() => undefined)
98
- .map(step)
86
+ .map(step),
99
87
  );
100
88
  return data;
101
89
  }
package/tsconfig.json CHANGED
@@ -1,18 +1,12 @@
1
1
  {
2
+ "extends": "../../tsconfig.base",
2
3
  "compilerOptions": {
3
4
  "declaration": true,
4
5
  "declarationMap": true,
5
- "sourceMap": true,
6
- "strict": true,
7
6
  "noImplicitAny": false,
8
7
  "noImplicitThis": false,
9
- "allowSyntheticDefaultImports": true,
10
- "esModuleInterop": true,
11
- "skipLibCheck": true,
12
- "forceConsistentCasingInFileNames": true,
13
- "moduleResolution": "node",
14
8
  "downlevelIteration": true,
15
- "resolveJsonModule": true,
9
+ "module": "commonjs",
16
10
  "lib": ["es2020", "dom"],
17
11
  "outDir": "lib"
18
12
  },