@nlozgachev/pipelined 0.27.0 → 0.29.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.
@@ -19,9 +19,8 @@ var Maybe;
19
19
  Maybe2.fromNullable = (value) => value === null || value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
20
20
  Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
21
21
  Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
22
- Maybe2.fromUndefined = (value) => value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
23
22
  Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
24
- Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
23
+ Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.error(onNone());
25
24
  Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
26
25
  Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
27
26
  Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
@@ -41,18 +40,18 @@ var Maybe;
41
40
  var Result;
42
41
  ((Result2) => {
43
42
  Result2.ok = (value) => ({ kind: "Ok", value });
44
- Result2.err = (error) => ({ kind: "Error", error });
43
+ Result2.error = (e) => ({ kind: "Error", error: e });
45
44
  Result2.isOk = (data) => data.kind === "Ok";
46
- Result2.isErr = (data) => data.kind === "Error";
45
+ Result2.isError = (data) => data.kind === "Error";
47
46
  Result2.tryCatch = (f, onError) => {
48
47
  try {
49
48
  return (0, Result2.ok)(f());
50
49
  } catch (e) {
51
- return (0, Result2.err)(onError(e));
50
+ return (0, Result2.error)(onError(e));
52
51
  }
53
52
  };
54
53
  Result2.map = (f) => (data) => (0, Result2.isOk)(data) ? (0, Result2.ok)(f(data.value)) : data;
55
- Result2.mapError = (f) => (data) => (0, Result2.isErr)(data) ? (0, Result2.err)(f(data.error)) : data;
54
+ Result2.mapError = (f) => (data) => (0, Result2.isError)(data) ? (0, Result2.error)(f(data.error)) : data;
56
55
  Result2.chain = (f) => (data) => (0, Result2.isOk)(data) ? f(data.value) : data;
57
56
  Result2.fold = (onErr, onOk) => (data) => (0, Result2.isOk)(data) ? onOk(data.value) : onErr(data.error);
58
57
  Result2.match = (cases) => (data) => (0, Result2.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
@@ -62,14 +61,14 @@ var Result;
62
61
  return data;
63
62
  };
64
63
  Result2.tapError = (f) => (data) => {
65
- if ((0, Result2.isErr)(data)) f(data.error);
64
+ if ((0, Result2.isError)(data)) f(data.error);
66
65
  return data;
67
66
  };
68
- Result2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result2.ok)(a) : (0, Result2.err)(onFalse(a));
67
+ Result2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result2.ok)(a) : (0, Result2.error)(onFalse(a));
69
68
  Result2.recover = (fallback) => (data) => (0, Result2.isOk)(data) ? data : fallback(data.error);
70
- Result2.recoverUnless = (blockedErr, fallback) => (data) => (0, Result2.isErr)(data) && data.error !== blockedErr ? fallback() : data;
69
+ Result2.recoverUnless = (isBlocked, fallback) => (data) => (0, Result2.isError)(data) && !isBlocked(data.error) ? fallback() : data;
71
70
  Result2.toMaybe = (data) => (0, Result2.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
72
- Result2.ap = (arg) => (data) => (0, Result2.isOk)(data) && (0, Result2.isOk)(arg) ? (0, Result2.ok)(data.value(arg.value)) : (0, Result2.isErr)(data) ? data : arg;
71
+ Result2.ap = (arg) => (data) => (0, Result2.isOk)(data) && (0, Result2.isOk)(arg) ? (0, Result2.ok)(data.value(arg.value)) : (0, Result2.isError)(data) ? data : arg;
73
72
  })(Result || (Result = {}));
74
73
 
75
74
  // src/Core/Task.ts
@@ -109,21 +108,22 @@ var Task;
109
108
  if (times <= 0) return Promise.resolve([]);
110
109
  const results = [];
111
110
  const wait = () => ms !== void 0 && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
112
- const run = (left) => toPromise(task, signal).then((a) => {
111
+ const run2 = (left) => toPromise(task, signal).then((a) => {
113
112
  results.push(a);
114
113
  if (left <= 1) return results;
115
- return wait().then(() => run(left - 1));
114
+ return wait().then(() => run2(left - 1));
116
115
  });
117
- return run(times);
116
+ return run2(times);
118
117
  });
119
118
  Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
120
- const { when: predicate, delay: ms } = options;
119
+ const { when: predicate, delay: ms, maxAttempts } = options;
121
120
  const wait = () => ms !== void 0 && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
122
- const run = () => toPromise(task, signal).then((a) => {
121
+ const run2 = (attempt) => toPromise(task, signal).then((a) => {
123
122
  if (predicate(a)) return a;
124
- return wait().then(run);
123
+ if (maxAttempts !== void 0 && attempt >= maxAttempts) return a;
124
+ return wait().then(() => run2(attempt + 1));
125
125
  });
126
- return run();
126
+ return run2(1);
127
127
  });
128
128
  Task2.race = (tasks) => (0, Task2.from)((signal) => Promise.race(tasks.map((t) => toPromise(t, signal))));
129
129
  Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
@@ -148,14 +148,18 @@ var Task;
148
148
  timerId = setTimeout(() => {
149
149
  controller.abort();
150
150
  outerSignal?.removeEventListener("abort", onOuterAbort);
151
- resolve2(Result.err(onTimeout()));
151
+ resolve2(Result.error(onTimeout()));
152
152
  }, ms);
153
153
  })
154
154
  ]);
155
155
  });
156
156
  Task2.abortable = (factory) => {
157
- const controller = new AbortController();
157
+ let currentController = null;
158
+ const abort = () => currentController?.abort();
158
159
  const task = (outerSignal) => {
160
+ currentController?.abort();
161
+ currentController = new AbortController();
162
+ const controller = currentController;
159
163
  if (outerSignal) {
160
164
  if (outerSignal.aborted) {
161
165
  controller.abort(outerSignal.reason);
@@ -165,8 +169,9 @@ var Task;
165
169
  }
166
170
  return Deferred.fromPromise(factory(controller.signal));
167
171
  };
168
- return { task, abort: () => controller.abort() };
172
+ return { task, abort };
169
173
  };
174
+ Task2.run = (signal) => (task) => Deferred.toPromise(task(signal));
170
175
  })(Task || (Task = {}));
171
176
 
172
177
  export {