@zajno/common 2.3.2 → 2.3.4

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/api/call.d.ts CHANGED
@@ -25,6 +25,6 @@ type CallerOptions = {
25
25
  }>;
26
26
  };
27
27
  export type EndpointCallArgs<T extends IEndpointInfo> = IEndpointInfo.ExtractIn<T> | IEndpointInfo.ExtractPath<T> | IEndpointInfo.ExtractQuery<T>;
28
- export declare function buildApiCaller(options: CallerOptions): <T extends IEndpointInfo>(api: T, data: EndpointCallArgs<T>, extra?: Extra<T> | undefined) => Promise<IEndpointInfo.ExtractOut<T>>;
28
+ export declare function buildApiCaller(options: CallerOptions): <T extends IEndpointInfo>(api: T, data: EndpointCallArgs<T>, extra?: Extra<T>) => Promise<IEndpointInfo.ExtractOut<T>>;
29
29
  export {};
30
30
  //# sourceMappingURL=call.d.ts.map
package/api/call.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC7B,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG;IAC/H,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CACrG,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAElJ,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,sIAuEpD"}
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC7B,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG;IAC/H,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CACrG,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAElJ,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,kCAKxC,CAAC,QACA,iBAAiB,CAAC,CAAC,UACjB,MAAM,CAAC,CAAC,0CAgEvB"}
package/api/call.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildApiCaller = void 0;
4
4
  const register_1 = require("./register");
5
+ const helpers_1 = require("./helpers");
5
6
  function buildApiCaller(options) {
6
7
  const { bodyValidation, request } = options;
7
8
  return async function callApi(api, data, extra) {
@@ -42,7 +43,7 @@ function buildApiCaller(options) {
42
43
  const method = api.method || 'GET';
43
44
  const config = {
44
45
  method,
45
- url: api.pathBuilder.build(pathInputs) + queryStr,
46
+ url: (0, helpers_1.getPath)(api, pathInputs) + queryStr,
46
47
  data: register_1.PreProcessors.process(api, sendingData) || undefined,
47
48
  headers: headers || {},
48
49
  _api: api,
package/api/call.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":";;;AAAA,yCAA2D;AAgC3D,SAAgB,cAAc,CAAC,OAAsB;IAEjD,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5C,OAAO,KAAK,UAAU,OAAO,CACzB,GAAM,EACN,IAAyB,EACzB,KAAgB;QAKhB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAgC,CAAC;QACtE,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,IAAI,QAAQ,GAAW,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,IAAI,WAAW,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC;QACxC,IAAI,WAAW,IAAI,iBAAiB,EAAE,MAAM,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACZ,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrB,KAAK,GAAG,KAAK,CAAC;gBAClB,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;gBAChD,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;YAClE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,MAAM,GAA4B;YACpC,MAAM;YACN,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ;YACjD,IAAI,EAAE,wBAAa,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,SAAS;YAC1D,OAAO,EAAE,OAAoB,IAAI,EAAE;YACnC,IAAI,EAAE,GAAG;YACT,SAAS,EAAE,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;YAChF,IAAI,EAAE,GAAG;SACZ,CAAC;QAEF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC;QAC3D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAmB,CAAC;QACzD,OAAO,yBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC;AACN,CAAC;AAvED,wCAuEC"}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":"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"}
package/api/endpoint.d.ts CHANGED
@@ -11,7 +11,8 @@ export declare class ApiEndpoint<TIn extends object | null, TOut, TPath extends
11
11
  in?: TIn;
12
12
  out?: TOut;
13
13
  queryKeys?: (string & keyof TQuery)[];
14
- errors?: TErrors;
14
+ queryTemplate?: TQuery;
15
+ errorProcessor?: (err: TErrors) => void;
15
16
  headers?: THeaders;
16
17
  get pathBuilder(): Path.IBuilder;
17
18
  static construct<TIn extends object | null, TOut>(method?: EndpointMethods, displayName?: string): ApiEndpoint<TIn, TOut, readonly [], object, any, AnyObject>;
@@ -20,7 +21,7 @@ export declare class ApiEndpoint<TIn extends object | null, TOut, TPath extends
20
21
  static delete<TOut>(displayName?: string): ApiEndpoint<null, TOut, readonly [], object, any, AnyObject>;
21
22
  withPath<P extends Path.BaseInput[]>(...path: P): ApiEndpoint<TIn, TOut, Path.ExtractArgs<Path.CombineBuilders<P>>, TQuery, TErrors, THeaders>;
22
23
  withQuery<TQ extends object>(...queryKeys: (string & keyof TQ)[]): ApiEndpoint<TIn, TOut, TPath, TQ, TErrors, THeaders>;
23
- withErrors<TErr>(_errors?: TErr): ApiEndpoint<TIn, TOut, TPath, TQuery, TErr, THeaders>;
24
+ withErrors<TErr>(errorProcessor?: (err: TErr) => void): ApiEndpoint<TIn, TOut, TPath, TQuery, TErr, THeaders>;
24
25
  withHeaders<THeads>(_headersMarker?: THeads): ApiEndpoint<TIn, TOut, TPath, TQuery, TErrors, THeads>;
25
26
  asForm(): this;
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,qBAAa,WAAW,CACpB,GAAG,SAAS,MAAM,GAAG,IAAI,EACzB,IAAI,EACJ,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,MAAM,SAAS,MAAM,EACrB,OAAO,EACP,QAAQ,CACV,YACF,aAAa,EACb,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAC1B,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAC5B,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAC9B,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAE5B,MAAM,EAAE,eAAe,CAAuB;IAC9C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAA8C;IAE7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;IAEtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,IAAW,WAAW,kBAA4C;IAElE,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,eAAqC,EAAE,WAAW,CAAC,EAAE,MAAM;IAOrH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIrC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIxE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIjC,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAS9I,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC;IAMvH,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAIvF,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAIpG,MAAM;CAIhB"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,qBAAa,WAAW,CACpB,GAAG,SAAS,MAAM,GAAG,IAAI,EACzB,IAAI,EACJ,KAAK,SAAS,SAAS,MAAM,EAAE,EAC/B,MAAM,SAAS,MAAM,EACrB,OAAO,EACP,QAAQ,CACV,YACF,aAAa,EACb,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxB,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAC1B,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAC5B,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAC9B,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAE5B,MAAM,EAAE,eAAe,CAAuB;IAC9C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAA8C;IAE7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,IAAW,WAAW,kBAA4C;IAElE,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,eAAqC,EAAE,WAAW,CAAC,EAAE,MAAM;IAOrH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIrC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIxE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM;IAIjC,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAS9I,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC;IAMvH,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAM7G,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAIpG,MAAM;CAIhB"}
package/api/endpoint.js CHANGED
@@ -11,7 +11,8 @@ class ApiEndpoint {
11
11
  in;
12
12
  out;
13
13
  queryKeys;
14
- errors;
14
+ queryTemplate;
15
+ errorProcessor;
15
16
  headers;
16
17
  get pathBuilder() { return this.path.as(); }
17
18
  static construct(method = methods_1.EndpointMethods.GET, displayName) {
@@ -40,8 +41,10 @@ class ApiEndpoint {
40
41
  res.queryKeys = queryKeys;
41
42
  return res;
42
43
  }
43
- withErrors(_errors) {
44
- return this;
44
+ withErrors(errorProcessor) {
45
+ const res = this;
46
+ res.errorProcessor = errorProcessor;
47
+ return res;
45
48
  }
46
49
  withHeaders(_headersMarker) {
47
50
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,uCAA4C;AAK5C,MAAa,WAAW;IAgBpB,MAAM,GAAoB,yBAAe,CAAC,GAAG,CAAC;IAC9C,IAAI,GAA8B,WAAI,CAAC,KAAK,CAAC,EAAE,EAA6B,CAAC;IAE7E,MAAM,CAAW;IACjB,WAAW,CAAU;IAErB,EAAE,CAAO;IACT,GAAG,CAAQ;IACX,SAAS,CAA6B;IAEtC,MAAM,CAAW;IACjB,OAAO,CAAY;IAEnB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAiB,CAAC,CAAC,CAAC;IAElE,MAAM,CAAC,SAAS,CAAkC,SAA0B,yBAAe,CAAC,GAAG,EAAE,WAAoB;QACjH,MAAM,GAAG,GAAG,IAAI,WAAW,EAAkD,CAAC;QAC9E,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAG,CAAO,WAAoB;QACjC,OAAO,WAAW,CAAC,SAAS,CAAa,yBAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAI,CAAyC,WAAoB;QACpE,OAAO,WAAW,CAAC,SAAS,CAAY,yBAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,MAAM,CAAO,WAAoB;QACpC,OAAO,WAAW,CAAC,SAAS,CAAa,yBAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAEM,QAAQ,CAA6B,GAAG,IAAO;QAGlD,MAAM,GAAG,GAAG,IAA0E,CAAC;QACvF,MAAM,CAAC,GAAG,WAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAClC,GAAG,CAAC,IAAI,GAAG,CAAwC,CAAC;QACpD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,SAAS,CAAoB,GAAG,SAAgC;QACnE,MAAM,GAAG,GAAG,IAAuE,CAAC;QACpF,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,UAAU,CAAO,OAAc;QAClC,OAAO,IAAwE,CAAC;IACpF,CAAC;IAEM,WAAW,CAAS,cAAuB;QAC9C,OAAO,IAAyE,CAAC;IACrF,CAAC;IAEM,MAAM;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA7ED,kCA6EC"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,uCAA4C;AAK5C,MAAa,WAAW;IAgBpB,MAAM,GAAoB,yBAAe,CAAC,GAAG,CAAC;IAC9C,IAAI,GAA8B,WAAI,CAAC,KAAK,CAAC,EAAE,EAA6B,CAAC;IAE7E,MAAM,CAAW;IACjB,WAAW,CAAU;IAErB,EAAE,CAAO;IACT,GAAG,CAAQ;IACX,SAAS,CAA6B;IACtC,aAAa,CAAU;IAEvB,cAAc,CAA0B;IACxC,OAAO,CAAY;IAEnB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAiB,CAAC,CAAC,CAAC;IAElE,MAAM,CAAC,SAAS,CAAkC,SAA0B,yBAAe,CAAC,GAAG,EAAE,WAAoB;QACjH,MAAM,GAAG,GAAG,IAAI,WAAW,EAAkD,CAAC;QAC9E,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAG,CAAO,WAAoB;QACjC,OAAO,WAAW,CAAC,SAAS,CAAa,yBAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAI,CAAyC,WAAoB;QACpE,OAAO,WAAW,CAAC,SAAS,CAAY,yBAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,MAAM,CAAO,WAAoB;QACpC,OAAO,WAAW,CAAC,SAAS,CAAa,yBAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAEM,QAAQ,CAA6B,GAAG,IAAO;QAGlD,MAAM,GAAG,GAAG,IAA0E,CAAC;QACvF,MAAM,CAAC,GAAG,WAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAClC,GAAG,CAAC,IAAI,GAAG,CAAwC,CAAC;QACpD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,SAAS,CAAoB,GAAG,SAAgC;QACnE,MAAM,GAAG,GAAG,IAAuE,CAAC;QACpF,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,UAAU,CAAO,cAAoC;QACxD,MAAM,GAAG,GAAG,IAAwE,CAAC;QACrF,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;QACpC,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,WAAW,CAAS,cAAuB;QAC9C,OAAO,IAAyE,CAAC;IACrF,CAAC;IAEM,MAAM;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAhFD,kCAgFC"}
@@ -6,6 +6,7 @@ export interface IEndpointInfo {
6
6
  readonly isForm?: boolean;
7
7
  readonly pathBuilder: Path.IBuilder;
8
8
  readonly displayName?: string;
9
+ readonly errorProcessor?: (err?: any) => void;
9
10
  readonly queryKeys?: string[];
10
11
  }
11
12
  export declare namespace IEndpointInfo {
@@ -18,11 +19,16 @@ export declare namespace IEndpointInfo {
18
19
  export interface IPath<TPath extends readonly string[]> {
19
20
  readonly path: Path.SwitchBuilder<TPath>;
20
21
  }
22
+ export type QueryKeysType = boolean | string | string[] | number | number[];
23
+ export type QueryArgs = Record<string, QueryKeysType>;
21
24
  export interface IQuery<TQuery extends object> {
25
+ /** actual query keys to be used in argument object parsing */
22
26
  readonly queryKeys?: (string & keyof TQuery)[];
27
+ /** dummy marker object for better type determining */
28
+ readonly queryTemplate?: TQuery;
23
29
  }
24
30
  export interface IErrors<TErrors> {
25
- readonly errors?: TErrors;
31
+ readonly errorProcessor?: (err: TErrors) => void;
26
32
  }
27
33
  export interface IHeaders<THeaders> {
28
34
  readonly headers?: THeaders;
@@ -31,7 +37,7 @@ export declare namespace IEndpointInfo {
31
37
  type Empty = EmptyObjectNullable;
32
38
  export type ExtractIn<T> = T extends IIn<infer TIn> ? Coalesce<TIn> : Empty;
33
39
  export type ExtractPath<T> = T extends IPath<infer TPath extends string[]> ? (readonly [] extends TPath ? Empty : Path.ObjectBuilderArgs<TPath[number]>) : Empty;
34
- export type ExtractQuery<T> = T extends IQuery<infer TQuery> ? TQuery : Empty;
40
+ export type ExtractQuery<T> = T extends IQuery<infer TQuery extends QueryArgs> ? TQuery : Empty;
35
41
  export type ExtractOut<T> = T extends IOut<infer TOut> ? TOut : never;
36
42
  export type ExtractErrors<T> = T extends IErrors<infer TErrors> ? TErrors : Any;
37
43
  export type ExtractHeaders<T> = T extends IHeaders<infer THeaders> ? THeaders : Any;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.types.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;IAEpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,yBAAiB,aAAa,CAAC;IAE3B,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,MAAM,GAAG,IAAI;QAC1C,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;KACrB;IAED,MAAM,OAAO,IAAI,CAAC,IAAI;QAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;KACvB;IAED,MAAM,WAAW,KAAK,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE;QAClD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC5C;IAED,MAAM,WAAW,MAAM,CAAC,MAAM,SAAS,MAAM;QACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;KAClD;IAED,MAAM,WAAW,OAAO,CAAC,OAAO;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;KAC7B;IAED,MAAM,WAAW,QAAQ,CAAC,QAAQ;QAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;KAC/B;IAED,KAAK,GAAG,GAAG,SAAS,CAAC;IACrB,KAAK,KAAK,GAAG,mBAAmB,CAAC;IAEjC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,GAC7C,QAAQ,CAAC,GAAG,CAAC,GACb,KAAK,CAAC;IAEZ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC,GACpE,CAAC,SAAS,EAAE,SAAS,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAC3E,KAAK,CAAC;IAEZ,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,MAAM,CAAC,GACtD,MAAM,GACN,KAAK,CAAC;IAEZ,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,GAChD,IAAI,GACJ,KAAK,CAAC;IAEZ,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC;IAChF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;;CACvF"}
1
+ {"version":3,"file":"endpoint.types.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.types.js","sourceRoot":"","sources":["../../src/api/endpoint.types.ts"],"names":[],"mappings":";;;AAeA,IAAiB,aAAa,CA+C7B;AA/CD,WAAiB,aAAa;IAM1B,MAAa,IAAI;QACJ,GAAG,CAAQ;KACvB;IAFY,kBAAI,OAEhB,CAAA;AAuCL,CAAC,EA/CgB,aAAa,6BAAb,aAAa,QA+C7B"}
1
+ {"version":3,"file":"endpoint.types.js","sourceRoot":"","sources":["../../src/api/endpoint.types.ts"],"names":[],"mappings":";;;AAgBA,IAAiB,aAAa,CAqD7B;AArDD,WAAiB,aAAa;IAM1B,MAAa,IAAI;QACJ,GAAG,CAAQ;KACvB;IAFY,kBAAI,OAEhB,CAAA;AA6CL,CAAC,EArDgB,aAAa,6BAAb,aAAa,QAqD7B"}
package/api/helpers.d.ts CHANGED
@@ -4,6 +4,7 @@ export declare const DefaultSettings: {
4
4
  basePrefix: string;
5
5
  };
6
6
  export declare function setDefaults(settings: Partial<typeof DefaultSettings>): void;
7
- export declare function getPath<T extends IEndpointInfo>(endpoint: T, pathArgs?: IEndpointInfo.ExtractPath<T>): string;
7
+ export declare function getPath<T extends IEndpointInfo>(endpoint: T, pathArgs: IEndpointInfo.ExtractPath<T>, prefix?: string | boolean): string;
8
+ export declare function getTemplate<T extends IEndpointInfo>(endpoint: T, prefix?: string | boolean): string;
8
9
  export declare function getFormattedDisplayName(endpoint: IEndpointInfo): string;
9
10
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/api/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,eAAe,CAAC,QAEpE;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,UAKpG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,UAM9D"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/api/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,eAAe,CAAC,QAEpE;AAKD,wBAAgB,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,MAAM,GAAG,OAAc,UAEpI;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAE,MAAM,GAAG,OAAc,UAEhG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,UAM9D"}
package/api/helpers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFormattedDisplayName = exports.getPath = exports.setDefaults = exports.DefaultSettings = void 0;
3
+ exports.getFormattedDisplayName = exports.getTemplate = exports.getPath = exports.setDefaults = exports.DefaultSettings = void 0;
4
4
  exports.DefaultSettings = {
5
5
  templateArgPrefix: ':',
6
6
  basePrefix: '/',
@@ -9,15 +9,17 @@ function setDefaults(settings) {
9
9
  Object.assign(exports.DefaultSettings, settings);
10
10
  }
11
11
  exports.setDefaults = setDefaults;
12
- function getPath(endpoint, pathArgs) {
13
- if (pathArgs) {
14
- return endpoint.pathBuilder.build(pathArgs, { addStart: exports.DefaultSettings.basePrefix });
15
- }
16
- return endpoint.pathBuilder.template(exports.DefaultSettings.templateArgPrefix, { addStart: exports.DefaultSettings.basePrefix });
12
+ const getPrefix = (prefix) => typeof prefix === 'string' ? prefix : (prefix ? exports.DefaultSettings.basePrefix : false);
13
+ function getPath(endpoint, pathArgs, prefix = true) {
14
+ return endpoint.pathBuilder.build(pathArgs || undefined, { addStart: getPrefix(prefix) });
17
15
  }
18
16
  exports.getPath = getPath;
17
+ function getTemplate(endpoint, prefix = true) {
18
+ return endpoint.pathBuilder.template(exports.DefaultSettings.templateArgPrefix, { addStart: getPrefix(prefix) });
19
+ }
20
+ exports.getTemplate = getTemplate;
19
21
  function getFormattedDisplayName(endpoint) {
20
- const template = endpoint.pathBuilder.template(exports.DefaultSettings.templateArgPrefix, { addStart: exports.DefaultSettings.basePrefix });
22
+ const template = getTemplate(endpoint);
21
23
  const prefix = endpoint.displayName
22
24
  ? `[${endpoint.displayName}] `
23
25
  : '';
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/api/helpers.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GAAG;IAC3B,iBAAiB,EAAE,GAAoC;IACvD,UAAU,EAAE,GAAG;CAClB,CAAC;AAEF,SAAgB,WAAW,CAAC,QAAyC;IACjE,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,kCAEC;AAED,SAAgB,OAAO,CAA0B,QAAW,EAAE,QAAuC;IACjG,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,uBAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,uBAAe,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,uBAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtH,CAAC;AALD,0BAKC;AAED,SAAgB,uBAAuB,CAAC,QAAuB;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,uBAAe,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,uBAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5H,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW;QAC/B,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI;QAC9B,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,MAAM,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAND,0DAMC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/api/helpers.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GAAG;IAC3B,iBAAiB,EAAE,GAAoC;IACvD,UAAU,EAAE,GAAG;CAClB,CAAC;AAEF,SAAgB,WAAW,CAAC,QAAyC;IACjE,MAAM,CAAC,MAAM,CAAC,uBAAe,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,kCAEC;AAGD,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAe,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjI,SAAgB,OAAO,CAA0B,QAAW,EAAE,QAAsC,EAAE,SAA2B,IAAI;IACjI,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC;AAFD,0BAEC;AAED,SAAgB,WAAW,CAA0B,QAAW,EAAE,SAA2B,IAAI;IAC7F,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,uBAAe,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7G,CAAC;AAFD,kCAEC;AAED,SAAgB,uBAAuB,CAAC,QAAuB;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW;QAC/B,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI;QAC9B,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,MAAM,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAND,0DAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../src/math/object/ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,KAAK,IAAI,CAAC,CAAC,SAAS,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7C,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IAMpD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAJlC,SAAgB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAExC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAIlC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKlD,QAAQ,IAAI,CAAC;IAQb,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAU5B,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAU/C,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;IAaxF,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAE,WAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAoBnI,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;CAS9C"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../src/math/object/ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,KAAK,IAAI,CAAC,CAAC,SAAS,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7C,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IAMpD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAJlC,SAAgB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEnC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAExC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAIlC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKlD,QAAQ,IAAI,CAAC;IAQb,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAW5B,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAI1B,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAU/C,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;IAcxF,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,GAAE,WAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAoBnI,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;CAS9C"}
@@ -26,7 +26,8 @@ class ObjectOps {
26
26
  const result = this.getEmpty();
27
27
  if (o != null) {
28
28
  this.keys.forEach(key => {
29
- result[key] = o[key];
29
+ const kk = key;
30
+ result[key] = o[kk];
30
31
  });
31
32
  }
32
33
  return result;
@@ -53,7 +54,9 @@ class ObjectOps {
53
54
  if (skip_1.SkipCondition.shouldSkip(condition, key, val)) {
54
55
  return;
55
56
  }
56
- res[key] = val;
57
+ const kk = key;
58
+ const vv = val;
59
+ res[kk] = vv;
57
60
  });
58
61
  return res;
59
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../../src/math/object/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../../src/math/object/ops.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,42 @@
1
1
  import { IDisposable } from '../functions/disposer';
2
2
  import { EventHandler, IEvent } from './event';
3
- export declare class Timer implements IDisposable, IEvent<number> {
3
+ export type TimerState = {
4
+ timer: Timer;
5
+ elapsed: number;
6
+ left: number;
7
+ now: number;
8
+ };
9
+ export declare class Timer implements IDisposable, IEvent<TimerState> {
4
10
  readonly interval: number;
5
11
  private readonly _event;
12
+ private readonly _onFinished;
6
13
  private _now;
14
+ private _elapsed;
15
+ private _left;
16
+ private _duration;
7
17
  private _handle;
8
- constructor(interval?: number);
18
+ /**
19
+ * @param interval timer firing interval in milliseconds
20
+ * @param start whether to start the timer immediately. default is `true`
21
+ */
22
+ constructor(interval?: number, start?: boolean);
23
+ /** the timestamp when the timer last fired */
9
24
  get now(): number;
10
- on(handler: EventHandler<number>): () => void;
11
- off(handler: EventHandler<number>): void;
25
+ /** the duration of the timer in milliseconds. If was not set, `Number.MAX_SAFE_INTEGER` */
26
+ get duration(): number;
27
+ /** the elapsed milliseconds since the timer started */
28
+ get elapsed(): number;
29
+ /** left milliseconds for this timer. If duration was not set, `Number.MAX_SAFE_INTEGER` */
30
+ get left(): number;
31
+ /** Fired when the timer has finished by duration, if set */
32
+ get onFinished(): IEvent<TimerState>;
33
+ /** Adds duration in milliseconds for the timer so it will auto-stop when elapsed is >= duration */
34
+ withDuration(duration: number): this;
35
+ on(handler: EventHandler<TimerState>): () => void;
36
+ off(handler: EventHandler<TimerState>): void;
37
+ /** (Re-)Starts the timer */
12
38
  restart(): void;
39
+ /** Stops the timer but does not clean all counters. */
13
40
  dispose(): void;
14
41
  }
15
42
  //# sourceMappingURL=timer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/observing/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAS,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,KAAM,YAAW,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;IAMzC,QAAQ,CAAC,QAAQ;IAL7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAA+C;gBAEzC,QAAQ,SAAc;IAI3C,IAAI,GAAG,WAEN;IAED,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;IAI7C,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI;IAIjC,OAAO;IAUP,OAAO,IAAI,IAAI;CAMzB"}
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/observing/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAS,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,KAAM,YAAW,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAiB7C,QAAQ,CAAC,QAAQ;IAhB7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IAEvD,OAAO,CAAC,IAAI,CAAsB;IAElC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAmB;IAEhC,OAAO,CAAC,SAAS,CAAmB;IAEpC,OAAO,CAAC,OAAO,CAA+C;IAE9D;;;OAGG;gBACkB,QAAQ,SAAc,EAAE,KAAK,UAAO;IAMzD,+CAA+C;IAC/C,IAAI,GAAG,WAAwB;IAC/B,2FAA2F;IAC3F,IAAI,QAAQ,WAAwD;IACpE,uDAAuD;IACvD,IAAI,OAAO,WAA4B;IACvC,2FAA2F;IAC3F,IAAI,IAAI,WAAoD;IAE5D,4DAA4D;IAC5D,IAAI,UAAU,uBAAwC;IAEtD,mGAAmG;IACnG,YAAY,CAAC,QAAQ,EAAE,MAAM;IAM7B,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI;IAIjD,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI;IAI5C,4BAA4B;IACrB,OAAO;IAsCd,uDAAuD;IAChD,OAAO,IAAI,IAAI;CAMzB"}
@@ -5,14 +5,37 @@ const event_1 = require("./event");
5
5
  class Timer {
6
6
  interval;
7
7
  _event = new event_1.Event();
8
+ _onFinished = new event_1.Event();
8
9
  _now = Date.now();
10
+ _elapsed = 0;
11
+ _left;
12
+ _duration;
9
13
  _handle = null;
10
- constructor(interval = 3600 * 1000) {
14
+ /**
15
+ * @param interval timer firing interval in milliseconds
16
+ * @param start whether to start the timer immediately. default is `true`
17
+ */
18
+ constructor(interval = 3600 * 1000, start = true) {
11
19
  this.interval = interval;
12
- this.restart();
20
+ if (start) {
21
+ this.restart();
22
+ }
13
23
  }
14
- get now() {
15
- return this._now;
24
+ /** the timestamp when the timer last fired */
25
+ get now() { return this._now; }
26
+ /** the duration of the timer in milliseconds. If was not set, `Number.MAX_SAFE_INTEGER` */
27
+ get duration() { return this._duration ?? Number.MAX_SAFE_INTEGER; }
28
+ /** the elapsed milliseconds since the timer started */
29
+ get elapsed() { return this._elapsed; }
30
+ /** left milliseconds for this timer. If duration was not set, `Number.MAX_SAFE_INTEGER` */
31
+ get left() { return this._left ?? Number.MAX_SAFE_INTEGER; }
32
+ /** Fired when the timer has finished by duration, if set */
33
+ get onFinished() { return this._onFinished.expose(); }
34
+ /** Adds duration in milliseconds for the timer so it will auto-stop when elapsed is >= duration */
35
+ withDuration(duration) {
36
+ this._duration = duration;
37
+ this._left = duration;
38
+ return this;
16
39
  }
17
40
  on(handler) {
18
41
  return this._event.on(handler);
@@ -20,14 +43,37 @@ class Timer {
20
43
  off(handler) {
21
44
  return this._event.off(handler);
22
45
  }
46
+ /** (Re-)Starts the timer */
23
47
  restart() {
24
48
  this.dispose();
25
- // Update _now once an hour
26
- this._handle = setInterval(() => {
27
- this._now = Date.now();
28
- this._event.trigger(this._now);
29
- }, this.interval);
49
+ this._elapsed = 0;
50
+ this._now = Date.now();
51
+ this._left = this._duration;
52
+ const startTime = this._now;
53
+ const getState = () => ({
54
+ timer: this,
55
+ elapsed: this._elapsed,
56
+ left: this.left,
57
+ now: this._now,
58
+ });
59
+ const onTick = (firstTime = false) => {
60
+ const now = Date.now();
61
+ this._elapsed = now - startTime;
62
+ this._now = now;
63
+ this._left = this._duration
64
+ ? Math.max(0, this._duration - this._elapsed)
65
+ : null;
66
+ this._event.trigger(getState());
67
+ if (!firstTime && this._left != null && this._left <= 0) {
68
+ this.dispose();
69
+ this._onFinished.trigger(getState());
70
+ }
71
+ };
72
+ // Update _now once an interval
73
+ this._handle = setInterval(() => onTick(), this.interval);
74
+ onTick(true);
30
75
  }
76
+ /** Stops the timer but does not clean all counters. */
31
77
  dispose() {
32
78
  if (this._handle) {
33
79
  clearInterval(this._handle);
@@ -1 +1 @@
1
- {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/observing/timer.ts"],"names":[],"mappings":";;;AACA,mCAAsD;AAEtD,MAAa,KAAK;IAMO;IALJ,MAAM,GAAG,IAAI,aAAK,EAAU,CAAC;IAEtC,IAAI,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,GAA0C,IAAI,CAAC;IAE9D,YAAqB,WAAW,IAAI,GAAG,IAAI;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,EAAE,CAAC,OAA6B;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,OAA6B;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,2BAA2B;QAC3B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;CACJ;AAtCD,sBAsCC"}
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/observing/timer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "private": false,
6
6
  "repository": {
@@ -32,20 +32,20 @@
32
32
  }
33
33
  },
34
34
  "devDependencies": {
35
- "@faker-js/faker": "^8.3.1",
36
- "@types/node": "^20.10.5",
37
- "@vitest/coverage-istanbul": "^1.1.0",
35
+ "@faker-js/faker": "^8.4.1",
36
+ "@types/node": "^20.11.30",
37
+ "@vitest/coverage-istanbul": "^1.4.0",
38
38
  "@zajno/eslint-config": "^3.0.1",
39
39
  "cpy-cli": "^5.0.0",
40
- "eslint": "^8.56.0",
41
- "fast-check": "^3.15.0",
40
+ "eslint": "^8.57.0",
41
+ "fast-check": "^3.16.0",
42
42
  "jest-extended": "^4.0.2",
43
43
  "rimraf": "^5.0.5",
44
44
  "scripty": "^2.1.1",
45
45
  "ts-node": "^10.9.2",
46
46
  "tslib": "^2.6.2",
47
- "typescript": "^5.3.3",
48
- "vitest": "^1.1.0"
47
+ "typescript": "^5.4.3",
48
+ "vitest": "^1.4.0"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "tslib": "^2.6.2"
@@ -43,15 +43,22 @@ export declare class PromiseExtended<T, TCustomErrors extends Record<string, unk
43
43
  private readonly _errorProcessors;
44
44
  private constructor();
45
45
  static run<T, TErrors extends Record<string, unknown> = Record<never, unknown>>(worker: Promise<T> | (() => Promise<T>)): PromiseExtended<T, TErrors>;
46
+ static succeeded<T>(data: T): PromiseExtended<T>;
47
+ static errored<T, TErrors extends Record<string, unknown>>(source: Error | string): PromiseExtended<T, TErrors>;
46
48
  onError(cb: Nullable<(data: PromiseExtended.ErrorData & TCustomErrors) => void>): this;
47
49
  onSuccess(cb: Nullable<(data: T) => void>): this;
48
- expectError<TName extends string, TError2 extends Error>(name: TName, ErrCtor: new (...args: any[]) => TError2): PromiseExtended<T, TCustomErrors & Record<TName, TError2>>;
50
+ expectError<TName extends string, TError2 extends Error>(name: TName, ErrCtor: new (...args: any[]) => TError2, processor?: (value: TError2) => void): PromiseExtended<T, TCustomErrors & Record<TName, TError2>>;
49
51
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): PromiseExtended<TResult1 | TResult2, TCustomErrors>;
50
52
  catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null | undefined): PromiseExtended<T | TResult, TCustomErrors>;
51
53
  finally(onfinally?: (() => void) | null | undefined): this;
52
54
  get [Symbol.toStringTag](): string;
53
55
  private getError;
54
56
  private _catch;
57
+ /** Adds to the end of chain special marker that allow outer PromiseExtended to correctly process this instance with its own onSuccess/onError callbacks.
58
+ *
59
+ * See `example for combining` test case for more details.
60
+ */
61
+ pop(): PromiseExtended<T, TCustomErrors>;
55
62
  protected onErrorCaught(data: PromiseExtended.ErrorData): void;
56
63
  }
57
64
  export declare namespace PromiseExtended {
@@ -1 +1 @@
1
- {"version":3,"file":"promiseExtended.d.ts","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,eAAe,CAAC,CAAC,EAAE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAEzH,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,GAAG,IAAI,CAAQ;IAE1D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqD;IAEtF,OAAO;WAIO,GAAG,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;IAYrJ,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,IAAI;IAYtF,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI;IAYhD,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,KAAK,EAC1D,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,GACzC,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAY7D,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EACjF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAO3F,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAM5G,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;IAKnD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA8C;IAEhF,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,MAAM,CAWZ;IAEF,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS;CAG1D;AAED,yBAAiB,eAAe,CAAC;IAC7B,KAAY,SAAS,GAAG;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;KACjB,CAAC;CACL"}
1
+ {"version":3,"file":"promiseExtended.d.ts","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,eAAe,CAAC,CAAC,EAAE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAEzH,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,GAAG,IAAI,CAAQ;IAE1D,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqD;IAEtF,OAAO;WAIO,GAAG,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;WAY9I,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;WAIzC,OAAO,CAAC,CAAC,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;IAM/G,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,IAAI;IAYtF,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI;IAYhD,WAAW,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,KAAK,EAC1D,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,EACxC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACrC,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAa7D,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EACjF,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAO3F,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;IAM5G,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;IAKnD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA8C;IAEhF,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,MAAM,CAqBZ;IAEF;;;OAGG;IACI,GAAG;IAMV,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS;CAG1D;AAED,yBAAiB,eAAe,CAAC;IAC7B,KAAY,SAAS,GAAG;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;KACjB,CAAC;CACL"}
@@ -55,6 +55,14 @@ class PromiseExtended {
55
55
  }
56
56
  return new PromiseExtended(promise);
57
57
  }
58
+ static succeeded(data) {
59
+ return new PromiseExtended(Promise.resolve(data));
60
+ }
61
+ static errored(source) {
62
+ const err = typeof source === 'string' ? new Error(source) : source;
63
+ const promise = new PromiseExtended(Promise.reject(err));
64
+ return promise;
65
+ }
58
66
  onError(cb) {
59
67
  if (cb != null) {
60
68
  this._promise = this._promise.then(data => {
@@ -77,10 +85,11 @@ class PromiseExtended {
77
85
  }
78
86
  return this;
79
87
  }
80
- expectError(name, ErrCtor) {
88
+ expectError(name, ErrCtor, processor) {
81
89
  this._errorProcessors.push(errorData => {
82
90
  const src = errorData?.source;
83
91
  if (src && src instanceof ErrCtor) {
92
+ processor?.(src);
84
93
  Object.assign(errorData, { [name]: errorData.source });
85
94
  }
86
95
  });
@@ -110,6 +119,15 @@ class PromiseExtended {
110
119
  return data;
111
120
  }
112
121
  _catch = (err) => {
122
+ if (err instanceof PromiseExtendedInnerMarker) {
123
+ // we've caught the marker, so we need to redirect everything to the inner instance
124
+ // first, if we still didn't catch any error, we're taking it from the inner instance
125
+ if (!this._error && err.instance._error) {
126
+ this.onErrorCaught(err.instance.getError());
127
+ }
128
+ // returning inner promise will also resolve with their resolved data
129
+ return err.data;
130
+ }
113
131
  let message = '';
114
132
  if (Array.isArray(err)) {
115
133
  message = err.map(e => e.message).join('\n');
@@ -120,9 +138,32 @@ class PromiseExtended {
120
138
  this.onErrorCaught({ error: message, source: err });
121
139
  return undefined;
122
140
  };
141
+ /** Adds to the end of chain special marker that allow outer PromiseExtended to correctly process this instance with its own onSuccess/onError callbacks.
142
+ *
143
+ * See `example for combining` test case for more details.
144
+ */
145
+ pop() {
146
+ return this.then(data => {
147
+ throw new PromiseExtendedInnerMarker(this, data);
148
+ });
149
+ }
123
150
  onErrorCaught(data) {
124
151
  this._error = data;
125
152
  }
126
153
  }
127
154
  exports.PromiseExtended = PromiseExtended;
155
+ /*
156
+
157
+ Idea: would be nice to combine few Promises and PromiseExtended's into one PromiseExtended instance, so the final result will be handled by onSuccess/onError
158
+
159
+ */
160
+ class PromiseExtendedInnerMarker extends Error {
161
+ instance;
162
+ data;
163
+ constructor(instance, data) {
164
+ super('This is a marker error for PromiseExtended instance, it should be handled internally. If you see this, it means an async function `PromiseExtended.pop()` was called in is not wrapped with `PromiseExtended.run()` or not awaited.');
165
+ this.instance = instance;
166
+ this.data = data;
167
+ }
168
+ }
128
169
  //# sourceMappingURL=promiseExtended.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promiseExtended.js","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,eAAe;IAEd,MAAM,GAAqC,IAAI,CAAC;IAElD,QAAQ,CAAa;IACZ,gBAAgB,GAAkD,EAAE,CAAC;IAEtF,YAAoB,OAAmB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAe,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAsE,MAAuC;QAC1H,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU;YACxC,CAAC,CAAC,MAAM,EAAE;YACV,CAAC,CAAC,MAAM,CAAC;QAEb,IAAI,OAAO,YAAY,eAAe,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,eAAe,CAAa,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,OAAO,CAAC,EAAuE;QAClF,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,EAA+B;QAC5C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACf,EAAE,CAAC,IAAI,CAAC,CAAC;gBACb,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CACd,IAAW,EACX,OAAwC;QAGxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACnC,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC;YAC9B,IAAI,GAAG,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAgH,CAAC;IAC5H,CAAC;IAED,IAAI,CACA,WAAiF,EACjF,UAAuF;QAEvF,MAAM,GAAG,GAAG,IAA2D,CAAC;QACxE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAkB,UAAqF;QACxG,MAAM,GAAG,GAAG,IAAmD,CAAC;QAChE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,CAAC,SAA2C;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAExE,QAAQ;QACZ,MAAM,IAAI,GAAG;YACT,KAAK,EAAE,IAAI,CAAC,MAAO,CAAC,KAAK;YACzB,MAAM,EAAE,IAAI,CAAC,MAAO,CAAC,MAAM;SAC9B,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,IAAiD,CAAC;IAC7D,CAAC;IAEO,MAAM,GAAG,CAAC,GAAY,EAAE,EAAE;QAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAY,EAAE,CAAC,CAAC;QAE7D,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEQ,aAAa,CAAC,IAA+B;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;CACJ;AA/GD,0CA+GC"}
1
+ {"version":3,"file":"promiseExtended.js","sourceRoot":"","sources":["../../src/structures/promiseExtended.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,eAAe;IAEd,MAAM,GAAqC,IAAI,CAAC;IAElD,QAAQ,CAAa;IACZ,gBAAgB,GAAkD,EAAE,CAAC;IAEtF,YAAoB,OAAmB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAe,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAsE,MAAuC;QAC1H,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU;YACxC,CAAC,CAAC,MAAM,EAAE;YACV,CAAC,CAAC,MAAM,CAAC;QAEb,IAAI,OAAO,YAAY,eAAe,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,eAAe,CAAa,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,IAAO;QAC9B,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,OAAO,CAA6C,MAAsB;QACpF,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAa,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,OAAO,CAAC,EAAuE;QAClF,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,EAA+B;QAC5C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACf,EAAE,CAAC,IAAI,CAAC,CAAC;gBACb,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CACd,IAAW,EACX,OAAwC,EACxC,SAAoC;QAGpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACnC,MAAM,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC;YAC9B,IAAI,GAAG,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAgH,CAAC;IAC5H,CAAC;IAED,IAAI,CACA,WAAiF,EACjF,UAAuF;QAEvF,MAAM,GAAG,GAAG,IAA2D,CAAC;QACxE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAkB,UAAqF;QACxG,MAAM,GAAG,GAAG,IAAmD,CAAC;QAChE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,CAAC,SAA2C;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAExE,QAAQ;QACZ,MAAM,IAAI,GAAG;YACT,KAAK,EAAE,IAAI,CAAC,MAAO,CAAC,KAAK;YACzB,MAAM,EAAE,IAAI,CAAC,MAAO,CAAC,MAAM;SAC9B,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,IAAiD,CAAC;IAC7D,CAAC;IAEO,MAAM,GAAG,CAAC,GAAY,EAAE,EAAE;QAC9B,IAAI,GAAG,YAAY,0BAA0B,EAAE,CAAC;YAC5C,mFAAmF;YACnF,qFAAqF;YACrF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,qEAAqE;YACrE,OAAO,GAAG,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACJ,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAY,EAAE,CAAC,CAAC;QAE7D,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF;;;OAGG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,IAAI,CAAO,IAAI,CAAC,EAAE;YAC1B,MAAM,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAES,aAAa,CAAC,IAA+B;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;CACJ;AA/ID,0CA+IC;AASD;;;;EAIE;AAEF,MAAM,0BAAoC,SAAQ,KAAK;IAC9B;IAAuC;IAA5D,YAAqB,QAA4B,EAAW,IAAO;QAC/D,KAAK,CAAC,qOAAqO,CAAC,CAAC;QAD5N,aAAQ,GAAR,QAAQ,CAAoB;QAAW,SAAI,GAAJ,IAAI,CAAG;IAEnE,CAAC;CACJ"}
package/types/deep.d.ts CHANGED
@@ -1,26 +1,26 @@
1
- import { AnyFunction, Primitive } from './misc';
2
- export type DeepReadonly<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? ReadonlyArray<DeepReadonly<U>> : {
1
+ import { AnyFunction } from './misc';
2
+ export type DeepReadonly<T> = T extends Array<infer U> ? ReadonlyArray<DeepReadonly<U>> : (T extends AnyFunction ? T : (T extends object ? {
3
3
  readonly [P in keyof T]: DeepReadonly<T[P]>;
4
- });
5
- export type DeepReadonlyPartial<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? ReadonlyArray<DeepReadonlyPartial<U>> : {
4
+ } : T));
5
+ export type DeepMutable<T> = T extends ReadonlyArray<infer U> ? Array<DeepMutable<U>> : (T extends AnyFunction ? T : (T extends object ? {
6
+ -readonly [P in keyof T]: DeepMutable<T[P]>;
7
+ } : T));
8
+ export type DeepReadonlyPartial<T> = T extends Array<infer U> ? ReadonlyArray<DeepReadonlyPartial<U>> : (T extends AnyFunction ? T : (T extends object ? {
6
9
  readonly [P in keyof T]?: DeepReadonlyPartial<T[P]>;
7
- });
8
- export type DeepPartial<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? Array<DeepPartial<U>> : {
9
- [P in keyof T]?: DeepPartial<T[P]> | undefined;
10
- });
11
- export type DeepRequired<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? Array<DeepRequired<U>> : {
10
+ } : T));
11
+ export type DeepPartial<T> = T extends Array<infer U> ? Array<DeepPartial<U>> : (T extends AnyFunction ? T : (T extends object ? {
12
+ [P in keyof T]?: DeepPartial<T[P]>;
13
+ } : T));
14
+ export type DeepRequired<T> = T extends Array<infer U> ? Array<DeepRequired<U>> : (T extends AnyFunction ? T : (T extends object ? {
12
15
  [P in keyof T]-?: DeepRequired<T[P]>;
13
- });
14
- export type DeepMutable<T> = T extends (AnyFunction | Primitive) ? T : (T extends ReadonlyArray<infer U> ? Array<DeepMutable<U>> : {
15
- -readonly [P in keyof T]: DeepMutable<T[P]>;
16
- });
16
+ } : T));
17
17
  export type DeepPickNullable<T, K extends keyof T> = {
18
18
  [P in K]?: null | undefined | DeepPartialNullable<T[P]>;
19
19
  };
20
- export type DeepNullable<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? Array<DeepNullable<U>> : {
20
+ export type DeepNullable<T> = T extends Array<infer U> ? Array<DeepNullable<U>> : (T extends AnyFunction ? T : (T extends object ? {
21
21
  [P in keyof T]: null | DeepNullable<T[P]>;
22
- });
23
- export type DeepPartialNullable<T> = T extends (AnyFunction | Primitive) ? T : (T extends Array<infer U> ? Array<DeepPartialNullable<U>> : {
22
+ } : T));
23
+ export type DeepPartialNullable<T> = T extends object ? {
24
24
  [P in keyof T]?: null | undefined | DeepPartialNullable<T[P]>;
25
- });
25
+ } : (T extends Array<infer U> ? Array<DeepPartialNullable<U>> : T);
26
26
  //# sourceMappingURL=deep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep.d.ts","sourceRoot":"","sources":["../../src/types/deep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep.d.ts","sourceRoot":"","sources":["../../src/types/deep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAChD,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/C,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GACvD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/C,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACvD,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACrC,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACvD,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC/C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAChD,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxC,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KAChD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAChD,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,SAAS,WAAW,GAClB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GACb;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC7C,CAAC,CACN,CACJ,CAAC;AAEN,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC/C;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAG,GAClE,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACrB,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,CACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;oBAOH,MAAM;uBACH,MAAM;iBACZ,MAAM;oBACH,MAAM;qBACL,MAAM;4BACC,MAAM;gCAKF,MAAM;yBAKb,MAAM;mBAEZ,MAAM;oBACL,MAAM;mBAEP,MAAM,WAAY,MAAM;CAC1C,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,UAAU;gCAES,CAAC;;;oBAKb,MAAM;uBACH,MAAM;iBACZ,MAAM;oBACH,MAAM;qBACL,MAAM;4BACC,MAAM;gCAKF,MAAM;yBAKb,MAAM;mBAEZ,MAAM;oBACL,MAAM;mBAEP,MAAM,WAAY,MAAM;CAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/validation/wrappers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5C,eAAO,MAAM,QAAQ;;;;CAoBpB,CAAC"}
1
+ {"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/validation/wrappers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5C,eAAO,MAAM,QAAQ;oCACe,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;;;CAmB9E,CAAC"}