ismx-nexo-node-app 0.4.128 → 0.4.130

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.
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class PromiseUtils {
4
+ static tokenize(promise) {
5
+ let cancelled = false;
6
+ let onCancelledCb;
7
+ let rejectOuter;
8
+ const cancel = (onCancelled) => {
9
+ onCancelledCb = onCancelled;
10
+ return token;
11
+ };
12
+ const stop = () => {
13
+ cancelled = true;
14
+ onCancelledCb === null || onCancelledCb === void 0 ? void 0 : onCancelledCb();
15
+ };
16
+ const wrapped = new Promise((resolve, reject) => {
17
+ promise.then(value => { if (!cancelled)
18
+ resolve(value); }, error => { if (!cancelled)
19
+ reject(error); });
20
+ });
21
+ const token = Object.assign(wrapped, { stop, cancel });
22
+ return token;
23
+ }
24
+ static delayed(promise, timeout) {
25
+ let tId;
26
+ let innerToken;
27
+ let cancelled = false;
28
+ const wrappedPromise = new Promise((resolve, reject) => {
29
+ tId = setTimeout(() => {
30
+ if (!cancelled) {
31
+ innerToken = this.tokenize(promise());
32
+ innerToken.then(resolve, reject);
33
+ }
34
+ }, timeout);
35
+ });
36
+ const token = Object.assign(wrappedPromise, {
37
+ stop: () => {
38
+ cancelled = true;
39
+ clearTimeout(tId);
40
+ innerToken === null || innerToken === void 0 ? void 0 : innerToken.stop();
41
+ },
42
+ cancel: (onCancelled) => {
43
+ onCancelled();
44
+ token.stop();
45
+ return token;
46
+ }
47
+ });
48
+ return token;
49
+ }
50
+ }
51
+ exports.default = PromiseUtils;
package/dist/js/index.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.RestUtils = exports.QueryUtils = exports.RepositoryRestFormalTemplate = exports.RepositoryRestFormal = exports.RepositoryRest = exports.RepositoryDatabasePostgres = exports.RepositoryDatabase = exports.Repository = exports.ArrayUtils = exports.StringUtils = exports.NumberUtils = exports.CryptoUtils = exports.DateUtils = exports.BusinessLogger = exports.FormalError = exports.BusinessErrors = exports.BusinessThreadState = exports.BusinessThread = exports.BusinessServer = exports.FormalLoopbackBusiness = exports.FormalProxyBusiness = exports.ProxyBusiness = exports.BusinessState = exports.Business = exports.ColorUtils = exports.ServiceRestFormalTemplate = exports.ServiceRestFormal = exports.ServiceRest = exports.HttpResponse = exports.Service = void 0;
29
+ exports.RestUtils = exports.QueryUtils = exports.RepositoryRestFormalTemplate = exports.RepositoryRestFormal = exports.RepositoryRest = exports.RepositoryDatabasePostgres = exports.RepositoryDatabase = exports.Repository = exports.PromiseUtils = exports.ArrayUtils = exports.StringUtils = exports.NumberUtils = exports.CryptoUtils = exports.DateUtils = exports.BusinessLogger = exports.FormalError = exports.BusinessErrors = exports.BusinessThreadState = exports.BusinessThread = exports.BusinessServer = exports.FormalLoopbackBusiness = exports.FormalProxyBusiness = exports.ProxyBusiness = exports.BusinessState = exports.Business = exports.ColorUtils = exports.ServiceRestFormalTemplate = exports.ServiceRestFormal = exports.ServiceRest = exports.HttpResponse = exports.Service = void 0;
30
30
  const Service_1 = __importStar(require("./api/Service"));
31
31
  class Service extends Service_1.default {
32
32
  }
@@ -114,6 +114,10 @@ const ArrayUtils_1 = __importDefault(require("./business/utils/ArrayUtils"));
114
114
  class ArrayUtils extends ArrayUtils_1.default {
115
115
  }
116
116
  exports.ArrayUtils = ArrayUtils;
117
+ const PromiseUtils_1 = __importDefault(require("./business/utils/PromiseUtils"));
118
+ class PromiseUtils extends PromiseUtils_1.default {
119
+ }
120
+ exports.PromiseUtils = PromiseUtils;
117
121
  /**************************************************************/
118
122
  const Repository_1 = __importDefault(require("./repository/Repository"));
119
123
  class Repository extends Repository_1.default {
@@ -7,7 +7,7 @@ export default class BusinessState<Model> {
7
7
  init(): Promise<void>;
8
8
  observe(listener: (data: Model) => any, runOnObserve?: boolean): string;
9
9
  observeId(id: string, listener: (data: Model) => any, runOnObserve?: boolean): string;
10
- protected remove(id: string): void;
10
+ remove(id: string): void;
11
11
  protected notify(data?: Model): void;
12
12
  protected clone(data: Model): Model;
13
13
  private reviver;
@@ -0,0 +1,8 @@
1
+ export interface Token<T> extends Promise<T> {
2
+ stop: () => void;
3
+ cancel(onCancelled: () => void): this;
4
+ }
5
+ export default abstract class PromiseUtils {
6
+ static tokenize<T>(promise: Promise<T>): Token<T>;
7
+ static delayed<T>(promise: () => Promise<T>, timeout: number): Token<T>;
8
+ }
@@ -71,6 +71,9 @@ export declare abstract class StringUtils extends _StringUtils {
71
71
  import _ArrayUtils from "./business/utils/ArrayUtils";
72
72
  export declare abstract class ArrayUtils extends _ArrayUtils {
73
73
  }
74
+ import _PromiseUtils from "./business/utils/PromiseUtils";
75
+ export declare abstract class PromiseUtils extends _PromiseUtils {
76
+ }
74
77
  /**************************************************************/
75
78
  import BaseRepository, { Pagination as _Pagination } from "./repository/Repository";
76
79
  export declare class Repository extends BaseRepository {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ismx-nexo-node-app",
3
- "version": "0.4.128",
3
+ "version": "0.4.130",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "rm -rf ./dist && npx tsc",
@@ -20,7 +20,7 @@ export default class BusinessState<Model>
20
20
  return id;
21
21
  }
22
22
 
23
- protected remove(id: string) {
23
+ remove(id: string) {
24
24
  delete this.listeners[id];
25
25
  }
26
26
 
@@ -0,0 +1,65 @@
1
+ import Timeout = NodeJS.Timeout;
2
+
3
+ export interface Token<T> extends Promise<T> {
4
+ stop: () => void;
5
+ cancel(onCancelled: () => void): this;
6
+ }
7
+
8
+ export default abstract class PromiseUtils {
9
+
10
+ public static tokenize<T>(promise: Promise<T>): Token<T>
11
+ {
12
+ let cancelled = false;
13
+ let onCancelledCb: (() => void) | undefined;
14
+ let rejectOuter: ((reason?: any) => void) | undefined;
15
+
16
+ const cancel = (onCancelled: () => void) => {
17
+ onCancelledCb = onCancelled; return token;
18
+ };
19
+
20
+ const stop = () => {
21
+ cancelled = true; onCancelledCb?.();
22
+ };
23
+
24
+ const wrapped = new Promise<T>((resolve, reject) => {
25
+ promise.then(
26
+ value => { if (!cancelled) resolve(value); },
27
+ error => { if (!cancelled) reject(error); }
28
+ );
29
+ });
30
+
31
+ const token: Token<T> = Object.assign(wrapped, { stop, cancel });
32
+ return token;
33
+ }
34
+
35
+ public static delayed<T>(promise: () => Promise<T>, timeout: number): Token<T>
36
+ {
37
+ let tId: NodeJS.Timeout;
38
+ let innerToken: Token<T> | undefined;
39
+ let cancelled = false;
40
+
41
+ const wrappedPromise = new Promise<T>((resolve, reject) => {
42
+ tId = setTimeout(() => {
43
+ if (!cancelled) {
44
+ innerToken = this.tokenize(promise());
45
+ innerToken.then(resolve, reject);
46
+ }
47
+ }, timeout);
48
+ });
49
+
50
+ const token: Token<T> = Object.assign(wrappedPromise, {
51
+ stop: () => {
52
+ cancelled = true;
53
+ clearTimeout(tId);
54
+ innerToken?.stop();
55
+ },
56
+ cancel: (onCancelled: () => void) => {
57
+ onCancelled();
58
+ token.stop();
59
+ return token;
60
+ }
61
+ });
62
+
63
+ return token;
64
+ }
65
+ }
@@ -67,6 +67,9 @@ export abstract class StringUtils extends _StringUtils {}
67
67
  import _ArrayUtils from "./business/utils/ArrayUtils";
68
68
  export abstract class ArrayUtils extends _ArrayUtils {}
69
69
 
70
+ import _PromiseUtils from "./business/utils/PromiseUtils";
71
+ export abstract class PromiseUtils extends _PromiseUtils {}
72
+
70
73
  /**************************************************************/
71
74
 
72
75
  import BaseRepository, { Pagination as _Pagination } from "./repository/Repository";