@trayio/commons 4.58.0 → 4.60.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.
@@ -1,8 +1,10 @@
1
1
  import * as TE from 'fp-ts/TaskEither';
2
2
  import * as TSK from 'fp-ts/Task';
3
3
  import { Either } from 'fp-ts/lib/Either';
4
+ import * as E from 'fp-ts/Either';
4
5
  export interface TaskExtensionsInterface {
5
6
  recover: <T>(task: TSK.Task<T>, onError: (error: Error) => T) => TSK.Task<T>;
7
+ loopTask: <InterstitialResult, FinalResult>(firstTask: TSK.Task<InterstitialResult>, nextTask: (result: InterstitialResult) => E.Either<FinalResult, TSK.Task<InterstitialResult>>) => TSK.Task<FinalResult>;
6
8
  }
7
9
  export declare const TaskExtensions: TaskExtensionsInterface;
8
10
  export interface TaskEitherExtensionsInterface {
@@ -1 +1 @@
1
- {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC7E;AAED,eAAO,MAAM,cAAc,EAAE,uBAU5B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC7C,0BAA0B,EAAE,CAAC,CAAC,EAC7B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,oBAAoB,EAAE,6BAIlC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAC9B,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CACwC,CAAC;AAGhE,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAC9B,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAoB,CAAC;AAG5C,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAChB,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CACyB,CAAC;AAGjD,eAAO,MAAM,0CAA0C,EAAE,CAAC,CAAC,EAC1D,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CACqB,CAAC"}
1
+ {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,QAAQ,EAAE,CAAC,kBAAkB,EAAE,WAAW,EACzC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACvC,QAAQ,EAAE,CACT,MAAM,EAAE,kBAAkB,KACtB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KACpD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,EAAE,uBAgC5B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC7C,0BAA0B,EAAE,CAAC,CAAC,EAC7B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,oBAAoB,EAAE,6BAIlC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACvB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,KAC9B,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CACwC,CAAC;AAGhE,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAC9B,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAoB,CAAC;AAG5C,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,EAAE,CAAC,EAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAChB,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CACyB,CAAC;AAGjD,eAAO,MAAM,0CAA0C,EAAE,CAAC,CAAC,EAC1D,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CACqB,CAAC"}
package/dist/task/Task.js CHANGED
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.createTaskEitherFromPromiseWithSimpleError = exports.createTaskEitherFromEither = exports.createTaskEither = exports.createTaskEitherFromPromise = exports.TaskEitherExtensions = exports.TaskExtensions = void 0;
27
27
  const TE = __importStar(require("fp-ts/TaskEither"));
28
+ const E = __importStar(require("fp-ts/Either"));
28
29
  const Error_1 = require("../error/Error");
29
30
  exports.TaskExtensions = {
30
31
  recover: (task, onError) => async () => {
@@ -35,6 +36,18 @@ exports.TaskExtensions = {
35
36
  return onError((0, Error_1.castError)(error));
36
37
  }
37
38
  },
39
+ loopTask: (firstTask, nextTask) => () => {
40
+ let currentTask = firstTask;
41
+ const iterate = () => currentTask().then((result) => {
42
+ const next = nextTask(result);
43
+ if (E.isLeft(next)) {
44
+ return Promise.resolve(next.left);
45
+ }
46
+ currentTask = next.right;
47
+ return iterate();
48
+ });
49
+ return iterate();
50
+ },
38
51
  };
39
52
  exports.TaskEitherExtensions = {
40
53
  fromPromiseWithSimpleError: (block) => TE.tryCatch(block, (error) => (0, Error_1.castError)(error)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trayio/commons",
3
- "version": "4.58.0",
3
+ "version": "4.60.0",
4
4
  "description": "Extensions to the standard/core libraries and basic features",
5
5
  "exports": {
6
6
  "./*": "./dist/*.js"