@zajno/common 2.2.14 → 2.3.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/api/call.d.ts +29 -0
- package/api/call.d.ts.map +1 -0
- package/api/call.js +57 -0
- package/api/call.js.map +1 -0
- package/api/endpoint.d.ts +44 -0
- package/api/endpoint.d.ts.map +1 -0
- package/api/endpoint.js +55 -0
- package/api/endpoint.js.map +1 -0
- package/api/error.d.ts +18 -0
- package/api/error.d.ts.map +1 -0
- package/api/error.js +35 -0
- package/api/error.js.map +1 -0
- package/api/helpers.d.ts +9 -0
- package/api/helpers.d.ts.map +1 -0
- package/api/helpers.js +23 -0
- package/api/helpers.js.map +1 -0
- package/api/index.d.ts +8 -0
- package/api/index.d.ts.map +1 -0
- package/api/index.js +15 -0
- package/api/index.js.map +1 -0
- package/api/methods.d.ts +7 -0
- package/api/methods.d.ts.map +1 -0
- package/api/methods.js +11 -0
- package/api/methods.js.map +1 -0
- package/api/processor.d.ts +8 -0
- package/api/processor.d.ts.map +1 -0
- package/api/processor.js +51 -0
- package/api/processor.js.map +1 -0
- package/api/register.d.ts +8 -0
- package/api/register.d.ts.map +1 -0
- package/api/register.js +25 -0
- package/api/register.js.map +1 -0
- package/api/statusCodes.d.ts +17 -0
- package/api/statusCodes.d.ts.map +1 -0
- package/api/statusCodes.js +21 -0
- package/api/statusCodes.js.map +1 -0
- package/dates/convert.d.ts +1 -5
- package/dates/convert.d.ts.map +1 -1
- package/dates/convert.js +2 -46
- package/dates/convert.js.map +1 -1
- package/dates/datex.d.ts +10 -1
- package/dates/datex.d.ts.map +1 -1
- package/dates/datex.js +32 -10
- package/dates/datex.js.map +1 -1
- package/dates/decompose.d.ts +5 -0
- package/dates/decompose.d.ts.map +1 -0
- package/dates/decompose.js +44 -0
- package/dates/decompose.js.map +1 -0
- package/dates/format.d.ts.map +1 -1
- package/dates/format.js +2 -1
- package/dates/format.js.map +1 -1
- package/dates/index.d.ts +1 -0
- package/dates/index.d.ts.map +1 -1
- package/dates/index.js +1 -0
- package/dates/index.js.map +1 -1
- package/dates/shift.d.ts +0 -9
- package/dates/shift.d.ts.map +1 -1
- package/dates/shift.js +3 -26
- package/dates/shift.js.map +1 -1
- package/dates/types.d.ts +8 -4
- package/dates/types.d.ts.map +1 -1
- package/dates/types.js +45 -27
- package/dates/types.js.map +1 -1
- package/fields/update.js +2 -2
- package/fields/update.js.map +1 -1
- package/functions/throttle.d.ts.map +1 -1
- package/functions/throttle.js.map +1 -1
- package/logger/named.d.ts.map +1 -1
- package/logger/named.js +3 -3
- package/logger/named.js.map +1 -1
- package/math/arrays.d.ts +3 -3
- package/math/arrays.d.ts.map +1 -1
- package/math/arrays.js +1 -1
- package/math/arrays.js.map +1 -1
- package/math/object/math.d.ts.map +1 -1
- package/math/object/math.js +6 -3
- package/math/object/math.js.map +1 -1
- package/math/object/ops.d.ts +1 -1
- package/math/object/ops.d.ts.map +1 -1
- package/math/object/ops.js.map +1 -1
- package/observing/event.d.ts.map +1 -1
- package/observing/event.js +9 -1
- package/observing/event.js.map +1 -1
- package/package.json +1 -1
- package/structures/path/builder.d.ts +14 -0
- package/structures/path/builder.d.ts.map +1 -0
- package/structures/path/builder.js +111 -0
- package/structures/path/builder.js.map +1 -0
- package/structures/path/index.d.ts +3 -0
- package/structures/path/index.d.ts.map +1 -0
- package/structures/path/index.js +7 -0
- package/structures/path/index.js.map +1 -0
- package/structures/path/types.d.ts +55 -0
- package/structures/path/types.d.ts.map +1 -0
- package/structures/path/types.js +3 -0
- package/structures/path/types.js.map +1 -0
- package/structures/path/utils.d.ts +12 -0
- package/structures/path/utils.d.ts.map +1 -0
- package/structures/path/utils.js +54 -0
- package/structures/path/utils.js.map +1 -0
- package/structures/promiseExtended.d.ts +63 -0
- package/structures/promiseExtended.d.ts.map +1 -0
- package/structures/promiseExtended.js +128 -0
- package/structures/promiseExtended.js.map +1 -0
- package/structures/promiseProxy.d.ts.map +1 -1
- package/structures/promiseProxy.js +3 -2
- package/structures/promiseProxy.js.map +1 -1
- package/types/misc.d.ts +8 -1
- package/types/misc.d.ts.map +1 -1
- package/validation/throwers.js.map +1 -1
- package/async/arrays.extend.d.ts +0 -10
- package/async/arrays.extend.d.ts.map +0 -1
- package/async/arrays.extend.js +0 -8
- package/async/arrays.extend.js.map +0 -1
package/api/call.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AnyObject } from '../types';
|
|
2
|
+
import { ApiEndpoint, IEndpointInfo } from './endpoint';
|
|
3
|
+
import { EndpointMethods } from './methods';
|
|
4
|
+
type LogTypes = boolean | 'full' | 'req' | 'res';
|
|
5
|
+
type Extra<T> = {
|
|
6
|
+
headers?: ApiEndpoint.ExtractHeaders<T>;
|
|
7
|
+
log?: LogTypes;
|
|
8
|
+
noLoader?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type RequestConfig<TIn> = {
|
|
11
|
+
method: EndpointMethods | string & Record<never, never>;
|
|
12
|
+
url: string;
|
|
13
|
+
data: TIn | null | undefined;
|
|
14
|
+
headers: AnyObject;
|
|
15
|
+
};
|
|
16
|
+
export type RequestConfigDetails<T extends IEndpointInfo = IEndpointInfo, TIn = ApiEndpoint.ExtractIn<T>> = RequestConfig<TIn> & {
|
|
17
|
+
_api: T;
|
|
18
|
+
_noLoader?: boolean;
|
|
19
|
+
_log?: LogTypes;
|
|
20
|
+
};
|
|
21
|
+
type CallerOptions = {
|
|
22
|
+
bodyValidation?: (api: IEndpointInfo, input: any) => Promise<void>;
|
|
23
|
+
request: <TIn, TOut>(config: RequestConfigDetails<IEndpointInfo, TIn>) => Promise<{
|
|
24
|
+
data: TOut;
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
27
|
+
export declare function buildApiCaller(options: CallerOptions): <T extends IEndpointInfo>(api: T, data: ApiEndpoint.ExtractIn<T> | ApiEndpoint.ExtractPath<T> | ApiEndpoint.ExtractQuery<T>, extra?: Extra<T> | undefined) => Promise<ApiEndpoint.ExtractOut<T>>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=call.d.ts.map
|
|
@@ -0,0 +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,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAEjD,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,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,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG;IAC7H,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,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,oMAmEpD"}
|
package/api/call.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildApiCaller = void 0;
|
|
4
|
+
const register_1 = require("./register");
|
|
5
|
+
function buildApiCaller(options) {
|
|
6
|
+
const { bodyValidation, request } = options;
|
|
7
|
+
return async function callApi(api, data, extra) {
|
|
8
|
+
const { headers, log = 'res' } = extra || {};
|
|
9
|
+
const resultInput = data && { ...data };
|
|
10
|
+
const pathInputs = {};
|
|
11
|
+
let queryStr = '';
|
|
12
|
+
const pathKeys = api.pathBuilder.args;
|
|
13
|
+
if (resultInput && pathKeys?.length) {
|
|
14
|
+
for (const key of pathKeys) {
|
|
15
|
+
pathInputs[key] = resultInput[key];
|
|
16
|
+
delete resultInput[key];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const queryKeysExpected = api.queryKeys;
|
|
20
|
+
if (resultInput && queryKeysExpected?.length) {
|
|
21
|
+
const queryInputs = {};
|
|
22
|
+
let empty = true;
|
|
23
|
+
for (const key of queryKeysExpected) {
|
|
24
|
+
const v = resultInput[key];
|
|
25
|
+
if (v || v === 0) {
|
|
26
|
+
queryInputs[key] = v;
|
|
27
|
+
empty = false;
|
|
28
|
+
}
|
|
29
|
+
delete resultInput[key];
|
|
30
|
+
}
|
|
31
|
+
if (!empty) {
|
|
32
|
+
const params = new URLSearchParams(queryInputs);
|
|
33
|
+
queryStr = '?' + params.toString();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (resultInput && bodyValidation) {
|
|
37
|
+
await bodyValidation(api, resultInput);
|
|
38
|
+
}
|
|
39
|
+
const method = api.method || 'GET';
|
|
40
|
+
const config = {
|
|
41
|
+
method,
|
|
42
|
+
url: api.pathBuilder.build(pathInputs) + queryStr,
|
|
43
|
+
data: register_1.PreProcessors.process(api, resultInput) || undefined,
|
|
44
|
+
headers: headers || {},
|
|
45
|
+
_api: api,
|
|
46
|
+
_noLoader: extra?.noLoader == null ? method === 'GET' : extra.noLoader,
|
|
47
|
+
_log: log,
|
|
48
|
+
};
|
|
49
|
+
if (api.isForm) {
|
|
50
|
+
config.headers['Content-Type'] = 'multipart/form-data';
|
|
51
|
+
}
|
|
52
|
+
const response = await request(config);
|
|
53
|
+
return register_1.PostProcessors.process(api, response.data);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
exports.buildApiCaller = buildApiCaller;
|
|
57
|
+
//# sourceMappingURL=call.js.map
|
package/api/call.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":";;;AAAA,yCAA2D;AA+B3D,SAAgB,cAAc,CAAC,OAAsB;IAEjD,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5C,OAAO,KAAK,UAAU,OAAO,CACzB,GAAM,EACN,IAAyF,EACzF,KAAgB;QAKhB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAA8B,CAAC;QACpE,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,CAAC,KAAK,CAAC,EAAE,CAAC;oBACf,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,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;AAnED,wCAmEC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AnyObject, EmptyObject } from '../types';
|
|
2
|
+
import { Path } from '../structures/path';
|
|
3
|
+
import { EndpointMethods } from './methods';
|
|
4
|
+
export interface IEndpointInfo {
|
|
5
|
+
readonly method: EndpointMethods;
|
|
6
|
+
readonly isForm?: boolean;
|
|
7
|
+
readonly pathBuilder: Path.IBuilder;
|
|
8
|
+
readonly displayName?: string;
|
|
9
|
+
readonly queryKeys?: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare class ApiEndpoint<TIn extends object | null, TOut, TPath extends readonly string[], TQuery extends object, TErrors, THeaders> implements IEndpointInfo {
|
|
12
|
+
method: EndpointMethods;
|
|
13
|
+
path: Path.SwitchBuilder<TPath>;
|
|
14
|
+
isForm?: boolean;
|
|
15
|
+
queryKeys?: (string & keyof TQuery)[];
|
|
16
|
+
headers?: THeaders;
|
|
17
|
+
displayName?: string;
|
|
18
|
+
in?: TIn;
|
|
19
|
+
out?: TOut;
|
|
20
|
+
errors?: TErrors;
|
|
21
|
+
get pathBuilder(): Path.IBuilder;
|
|
22
|
+
static construct<TIn extends object | null, TOut>(method?: EndpointMethods, displayName?: string): ApiEndpoint<TIn, TOut, readonly [], object, any, AnyObject>;
|
|
23
|
+
static get<TOut>(displayName?: string): ApiEndpoint<null, TOut, readonly [], object, any, AnyObject>;
|
|
24
|
+
static post<TIn extends object | null, TOut = void>(displayName?: string): ApiEndpoint<TIn, TOut, readonly [], object, any, AnyObject>;
|
|
25
|
+
static delete<TOut>(displayName?: string): ApiEndpoint<null, TOut, readonly [], object, any, AnyObject>;
|
|
26
|
+
withPath<P extends Path.BaseInput>(path: P): ApiEndpoint<TIn, TOut, Path.ExtractArgs<P>, TQuery, TErrors, THeaders>;
|
|
27
|
+
withQuery<TQ extends object>(...queryKeys: (string & keyof TQ)[]): ApiEndpoint<TIn, TOut, TPath, TQ, TErrors, THeaders>;
|
|
28
|
+
withErrors<TErr>(_errors?: TErr): ApiEndpoint<TIn, TOut, TPath, TQuery, TErr, THeaders>;
|
|
29
|
+
withHeaders<THeads>(_headersMarker?: THeads): ApiEndpoint<TIn, TOut, TPath, TQuery, TErrors, THeads>;
|
|
30
|
+
asForm(): this;
|
|
31
|
+
}
|
|
32
|
+
export declare namespace ApiEndpoint {
|
|
33
|
+
type Any = AnyObject;
|
|
34
|
+
type Empty = (EmptyObject | null | undefined);
|
|
35
|
+
type Coalesce<T> = [T] extends [never] | [null] | [undefined] ? Empty : T;
|
|
36
|
+
export type ExtractIn<T> = T extends ApiEndpoint<infer TIn, any, any, any, any, any> ? Coalesce<TIn> : Empty;
|
|
37
|
+
export type ExtractPath<T> = T extends ApiEndpoint<any, any, infer TPath extends string[], any, any, any> ? (readonly [] extends TPath ? Empty : Path.ObjectBuilderArgs<TPath[number]>) : Empty;
|
|
38
|
+
export type ExtractQuery<T> = T extends ApiEndpoint<any, any, any, infer TQuery, any, any> ? TQuery : Empty;
|
|
39
|
+
export type ExtractOut<T> = T extends ApiEndpoint<any, infer TOut, any, any, any, any> ? TOut : Empty;
|
|
40
|
+
export type ExtractErrors<T> = T extends ApiEndpoint<any, any, any, any, infer TErrors, any> ? TErrors : Any;
|
|
41
|
+
export type ExtractHeaders<T> = T extends ApiEndpoint<any, any, any, any, any, infer THeaders> ? THeaders : Any;
|
|
42
|
+
export {};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,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,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,YAAW,aAAa;IAEtB,MAAM,EAAE,eAAe,CAAuB;IAC9C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAA8C;IAE7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,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,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IASnH,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;AAED,yBAAiB,WAAW,CAAC;IAEzB,KAAK,GAAG,GAAG,SAAS,CAAC;IACrB,KAAK,KAAK,GAAG,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GACvD,KAAK,GACL,CAAC,CACN;IAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC9E,QAAQ,CAAC,GAAG,CAAC,GACb,KAAK,CAAC;IAEZ,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACnG,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,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GACpF,MAAM,GACN,KAAK,CAAC;IAEZ,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAChF,IAAI,GACJ,KAAK,CAAC;IAEZ,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC;IAC7G,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;;CACnH"}
|
package/api/endpoint.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiEndpoint = void 0;
|
|
4
|
+
const path_1 = require("../structures/path");
|
|
5
|
+
const methods_1 = require("./methods");
|
|
6
|
+
class ApiEndpoint {
|
|
7
|
+
method = methods_1.EndpointMethods.GET;
|
|
8
|
+
path = path_1.Path.Empty.as();
|
|
9
|
+
isForm;
|
|
10
|
+
queryKeys;
|
|
11
|
+
headers;
|
|
12
|
+
displayName;
|
|
13
|
+
in;
|
|
14
|
+
out;
|
|
15
|
+
errors;
|
|
16
|
+
get pathBuilder() { return this.path.as(); }
|
|
17
|
+
static construct(method = methods_1.EndpointMethods.GET, displayName) {
|
|
18
|
+
const res = new ApiEndpoint();
|
|
19
|
+
res.method = method;
|
|
20
|
+
res.displayName = displayName;
|
|
21
|
+
return res;
|
|
22
|
+
}
|
|
23
|
+
static get(displayName) {
|
|
24
|
+
return ApiEndpoint.construct(methods_1.EndpointMethods.GET, displayName);
|
|
25
|
+
}
|
|
26
|
+
static post(displayName) {
|
|
27
|
+
return ApiEndpoint.construct(methods_1.EndpointMethods.POST, displayName);
|
|
28
|
+
}
|
|
29
|
+
static delete(displayName) {
|
|
30
|
+
return ApiEndpoint.construct(methods_1.EndpointMethods.DELETE, displayName);
|
|
31
|
+
}
|
|
32
|
+
withPath(path) {
|
|
33
|
+
const res = this;
|
|
34
|
+
const p = path_1.Path.construct(path);
|
|
35
|
+
res.path = p;
|
|
36
|
+
return res;
|
|
37
|
+
}
|
|
38
|
+
withQuery(...queryKeys) {
|
|
39
|
+
const res = this;
|
|
40
|
+
res.queryKeys = queryKeys;
|
|
41
|
+
return res;
|
|
42
|
+
}
|
|
43
|
+
withErrors(_errors) {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
withHeaders(_headersMarker) {
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
asForm() {
|
|
50
|
+
this.isForm = true;
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.ApiEndpoint = ApiEndpoint;
|
|
55
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,uCAA4C;AAa5C,MAAa,WAAW;IASpB,MAAM,GAAoB,yBAAe,CAAC,GAAG,CAAC;IAC9C,IAAI,GAA8B,WAAI,CAAC,KAAK,CAAC,EAAE,EAA6B,CAAC;IAE7E,MAAM,CAAW;IACjB,SAAS,CAA6B;IACtC,OAAO,CAAY;IAEnB,WAAW,CAAU;IAErB,EAAE,CAAO;IACT,GAAG,CAAQ;IACX,MAAM,CAAW;IAEjB,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,CAA2B,IAAO;QAE7C,MAAM,GAAG,GAAG,IAA0E,CAAC;QAEvF,MAAM,CAAC,GAAG,WAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,GAAG,CAAC,IAAI,GAAG,CAAwB,CAAC;QACpC,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;AAtED,kCAsEC"}
|
package/api/error.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { StatusCodes } from './statusCodes';
|
|
2
|
+
export type ApiErrorResponse<TCause = never, TErrors = number | string> = {
|
|
3
|
+
code?: TErrors;
|
|
4
|
+
message?: string;
|
|
5
|
+
} & ([TCause] extends [never] ? object : {
|
|
6
|
+
cause?: TCause;
|
|
7
|
+
});
|
|
8
|
+
export declare namespace ApiErrorResponse {
|
|
9
|
+
function create<TCause = never, TErrors = number | string>(code: TErrors, message?: string, cause?: TCause): ApiErrorResponse<TCause, TErrors>;
|
|
10
|
+
}
|
|
11
|
+
export declare class ApiError<TCause = unknown, TCodes extends number = StatusCodes, TErrors extends number | string = number | string> extends Error {
|
|
12
|
+
readonly status: TCodes;
|
|
13
|
+
readonly code: TErrors;
|
|
14
|
+
readonly cause?: TCause;
|
|
15
|
+
constructor(status: TCodes, code: TErrors, message: string, cause?: TCause);
|
|
16
|
+
static fromResponse<TCodes extends number = StatusCodes, TErrors extends number | string = number | string>(status: TCodes, responseData: unknown): ApiError<unknown, TCodes, 0> | ApiError<unknown, TCodes, TErrors>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/api/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,IAAI;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7D,yBAAiB,gBAAgB,CAAC;IAC9B,SAAgB,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpJ;CACJ;AAGD,qBAAa,QAAQ,CACjB,MAAM,GAAG,OAAO,EAChB,MAAM,SAAS,MAAM,GAAG,WAAW,EACnC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CACnD,SAAQ,KAAK;aAKS,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,OAAO;IAJjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAGJ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EAC7B,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM;WASJ,YAAY,CAAC,MAAM,SAAS,MAAM,GAAG,WAAW,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO;CAoB3J"}
|
package/api/error.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiError = exports.ApiErrorResponse = void 0;
|
|
4
|
+
var ApiErrorResponse;
|
|
5
|
+
(function (ApiErrorResponse) {
|
|
6
|
+
function create(code, message, cause) {
|
|
7
|
+
return { code, message, cause };
|
|
8
|
+
}
|
|
9
|
+
ApiErrorResponse.create = create;
|
|
10
|
+
})(ApiErrorResponse || (exports.ApiErrorResponse = ApiErrorResponse = {}));
|
|
11
|
+
class ApiError extends Error {
|
|
12
|
+
status;
|
|
13
|
+
code;
|
|
14
|
+
cause;
|
|
15
|
+
constructor(status, code, message, cause) {
|
|
16
|
+
super(message, { cause });
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.cause = cause;
|
|
20
|
+
this.name = 'ApiError';
|
|
21
|
+
Object.setPrototypeOf(this, ApiError.prototype);
|
|
22
|
+
}
|
|
23
|
+
static fromResponse(status, responseData) {
|
|
24
|
+
const response = responseData;
|
|
25
|
+
if (!response || response.code == null) {
|
|
26
|
+
return new ApiError(status, 0, [
|
|
27
|
+
'An unknown error has occurred. Please try again later.',
|
|
28
|
+
response?.message && `Message: ${response.message}`,
|
|
29
|
+
].filter(Boolean).join('\n'));
|
|
30
|
+
}
|
|
31
|
+
return new ApiError(status, response.code, response.message || '<no message>', response.cause);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ApiError = ApiError;
|
|
35
|
+
//# sourceMappingURL=error.js.map
|
package/api/error.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/api/error.ts"],"names":[],"mappings":";;;AAOA,IAAiB,gBAAgB,CAIhC;AAJD,WAAiB,gBAAgB;IAC7B,SAAgB,MAAM,CAA4C,IAAa,EAAE,OAAgB,EAAE,KAAc;QAC7G,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;IAFe,uBAAM,SAErB,CAAA;AACL,CAAC,EAJgB,gBAAgB,gCAAhB,gBAAgB,QAIhC;AAGD,MAAa,QAIX,SAAQ,KAAK;IAKS;IACA;IAJX,KAAK,CAAU;IAExB,YACoB,MAAc,EACd,IAAa,EAC7B,OAAe,EACf,KAAc;QAEd,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QALV,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;QAK7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,YAAY,CAAyF,MAAc,EAAE,YAAqB;QACpJ,MAAM,QAAQ,GAAG,YAAkD,CAAC;QACpE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,QAAQ,CACf,MAAM,EACN,CAAC,EACD;gBACI,wDAAwD;gBACxD,QAAQ,EAAE,OAAO,IAAI,YAAY,QAAQ,CAAC,OAAO,EAAE;aACtD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACN,CAAC;QAED,OAAO,IAAI,QAAQ,CACf,MAAM,EACN,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,OAAO,IAAI,cAAc,EAClC,QAAQ,CAAC,KAAK,CACjB,CAAC;IACN,CAAC;CACJ;AAzCD,4BAyCC"}
|
package/api/helpers.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiEndpoint, IEndpointInfo } from './endpoint';
|
|
2
|
+
export declare const DefaultSettings: {
|
|
3
|
+
templateArgPrefix: string;
|
|
4
|
+
basePrefix: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function setDefaults(settings: Partial<typeof DefaultSettings>): void;
|
|
7
|
+
export declare function getPath<T extends IEndpointInfo>(endpoint: T, pathArgs?: ApiEndpoint.ExtractPath<T>): string;
|
|
8
|
+
export declare function getFormattedDisplayName(endpoint: IEndpointInfo): string;
|
|
9
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/api/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,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,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,UAKlG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,UAE9D"}
|
package/api/helpers.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFormattedDisplayName = exports.getPath = exports.setDefaults = exports.DefaultSettings = void 0;
|
|
4
|
+
exports.DefaultSettings = {
|
|
5
|
+
templateArgPrefix: ':',
|
|
6
|
+
basePrefix: '/',
|
|
7
|
+
};
|
|
8
|
+
function setDefaults(settings) {
|
|
9
|
+
Object.assign(exports.DefaultSettings, settings);
|
|
10
|
+
}
|
|
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 });
|
|
17
|
+
}
|
|
18
|
+
exports.getPath = getPath;
|
|
19
|
+
function getFormattedDisplayName(endpoint) {
|
|
20
|
+
return endpoint.displayName || endpoint.pathBuilder.template(exports.DefaultSettings.templateArgPrefix, { addStart: exports.DefaultSettings.basePrefix });
|
|
21
|
+
}
|
|
22
|
+
exports.getFormattedDisplayName = getFormattedDisplayName;
|
|
23
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +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,QAAqC;IAC/F,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,OAAO,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,uBAAe,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,uBAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9I,CAAC;AAFD,0DAEC"}
|
package/api/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { ProcessingFn } from './processor';
|
|
2
|
+
export { ApiEndpoint } from './endpoint';
|
|
3
|
+
export type { IEndpointInfo } from './endpoint';
|
|
4
|
+
export { EndpointMethods } from './methods';
|
|
5
|
+
export * from './helpers';
|
|
6
|
+
export { buildApiCaller } from './call';
|
|
7
|
+
export { registerPostProcessor, registerPreProcessor } from './register';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
package/api/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerPreProcessor = exports.registerPostProcessor = exports.buildApiCaller = exports.EndpointMethods = exports.ApiEndpoint = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
var endpoint_1 = require("./endpoint");
|
|
6
|
+
Object.defineProperty(exports, "ApiEndpoint", { enumerable: true, get: function () { return endpoint_1.ApiEndpoint; } });
|
|
7
|
+
var methods_1 = require("./methods");
|
|
8
|
+
Object.defineProperty(exports, "EndpointMethods", { enumerable: true, get: function () { return methods_1.EndpointMethods; } });
|
|
9
|
+
tslib_1.__exportStar(require("./helpers"), exports);
|
|
10
|
+
var call_1 = require("./call");
|
|
11
|
+
Object.defineProperty(exports, "buildApiCaller", { enumerable: true, get: function () { return call_1.buildApiCaller; } });
|
|
12
|
+
var register_1 = require("./register");
|
|
13
|
+
Object.defineProperty(exports, "registerPostProcessor", { enumerable: true, get: function () { return register_1.registerPostProcessor; } });
|
|
14
|
+
Object.defineProperty(exports, "registerPreProcessor", { enumerable: true, get: function () { return register_1.registerPreProcessor; } });
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
package/api/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;AAGA,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAEpB,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,oDAA0B;AAE1B,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,uCAAyE;AAAhE,iHAAA,qBAAqB,OAAA;AAAE,gHAAA,oBAAoB,OAAA"}
|
package/api/methods.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/api/methods.ts"],"names":[],"mappings":"AACA,oBAAY,eAAe;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;CACpB"}
|
package/api/methods.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EndpointMethods = void 0;
|
|
4
|
+
var EndpointMethods;
|
|
5
|
+
(function (EndpointMethods) {
|
|
6
|
+
EndpointMethods["GET"] = "GET";
|
|
7
|
+
EndpointMethods["POST"] = "POST";
|
|
8
|
+
EndpointMethods["PUT"] = "PUT";
|
|
9
|
+
EndpointMethods["DELETE"] = "DELETE";
|
|
10
|
+
})(EndpointMethods || (exports.EndpointMethods = EndpointMethods = {}));
|
|
11
|
+
//# sourceMappingURL=methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/api/methods.ts"],"names":[],"mappings":";;;AACA,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,oCAAiB,CAAA;AACrB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ProcessingFn<T = unknown> = (input: T) => T;
|
|
2
|
+
export declare class ProcessorsRegistry<K> {
|
|
3
|
+
private readonly _map;
|
|
4
|
+
cleanup(): void;
|
|
5
|
+
register<P>(key: K, processor: ProcessingFn<P>, name?: string): () => void;
|
|
6
|
+
process<T>(key: K, input: T): T;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/api/processor.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAExD,qBAAa,kBAAkB,CAAC,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAE9C,OAAO;IAIP,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM;IAgB7D,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CAIzC"}
|
package/api/processor.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessorsRegistry = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const logger_1 = tslib_1.__importDefault(require("../logger"));
|
|
6
|
+
class ProcessorsRegistry {
|
|
7
|
+
_map = new Map();
|
|
8
|
+
cleanup() {
|
|
9
|
+
this._map.clear();
|
|
10
|
+
}
|
|
11
|
+
register(key, processor, name) {
|
|
12
|
+
const _name = name || processor.name;
|
|
13
|
+
const wrapper = (input) => {
|
|
14
|
+
try {
|
|
15
|
+
return processor(input);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
logger_1.default.error(`Processor error: ${_name}`, err);
|
|
19
|
+
return input;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const arr = getArr(this._map, key);
|
|
23
|
+
arr.push(wrapper);
|
|
24
|
+
return () => removeFromArr(arr, wrapper);
|
|
25
|
+
}
|
|
26
|
+
process(key, input) {
|
|
27
|
+
const arr = this._map.get(key);
|
|
28
|
+
return chainProcessors(arr, input);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ProcessorsRegistry = ProcessorsRegistry;
|
|
32
|
+
function getArr(map, key) {
|
|
33
|
+
let arr = map.get(key);
|
|
34
|
+
if (!arr) {
|
|
35
|
+
arr = [];
|
|
36
|
+
map.set(key, arr);
|
|
37
|
+
}
|
|
38
|
+
return arr;
|
|
39
|
+
}
|
|
40
|
+
function removeFromArr(arr, item) {
|
|
41
|
+
const index = arr.indexOf(item);
|
|
42
|
+
if (index >= 0) {
|
|
43
|
+
arr.splice(index, 1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function chainProcessors(chain, input) {
|
|
47
|
+
return chain?.length
|
|
48
|
+
? chain.reduce((res, fn) => fn(res), input)
|
|
49
|
+
: input;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/api/processor.ts"],"names":[],"mappings":";;;;AAAA,+DAA+B;AAI/B,MAAa,kBAAkB;IACV,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAI,GAAM,EAAE,SAA0B,EAAE,IAAa;QAChE,MAAM,KAAK,GAAG,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,CAAC,KAAQ,EAAE,EAAE;YACzB,IAAI,CAAC;gBACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,gBAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,OAAgC,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAgC,CAAC,CAAC;IACtE,CAAC;IAEM,OAAO,CAAI,GAAM,EAAE,KAAQ;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAsB,CAAC;QACpD,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;CACJ;AA3BD,gDA2BC;AAGD,SAAS,MAAM,CAA8B,GAAc,EAAE,GAAM;IAC/D,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,GAAG,GAAG,EAAyB,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAGD,SAAS,aAAa,CAAI,GAAQ,EAAE,IAAO;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAI,KAAwB,EAAE,KAAQ;IAC1D,OAAO,KAAK,EAAE,MAAM;QAChB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ProcessingFn, ProcessorsRegistry } from './processor';
|
|
2
|
+
import { ApiEndpoint, IEndpointInfo } from './endpoint';
|
|
3
|
+
export declare const PreProcessors: ProcessorsRegistry<IEndpointInfo>;
|
|
4
|
+
export declare const PostProcessors: ProcessorsRegistry<IEndpointInfo>;
|
|
5
|
+
export declare function cleanupProcessors(): void;
|
|
6
|
+
export declare function registerPreProcessor<T extends IEndpointInfo>(api: T, processor: ProcessingFn<ApiEndpoint.ExtractIn<T>>, name?: string): () => void;
|
|
7
|
+
export declare function registerPostProcessor<T extends IEndpointInfo>(api: T, processor: ProcessingFn<ApiEndpoint.ExtractOut<T>>, name?: string): () => void;
|
|
8
|
+
//# sourceMappingURL=register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/api/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,aAAa,mCAA0C,CAAC;AACrE,eAAO,MAAM,cAAc,mCAA0C,CAAC;AAOtE,wBAAgB,iBAAiB,SAGhC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,cAErI;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,cAEvI"}
|
package/api/register.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerPostProcessor = exports.registerPreProcessor = exports.cleanupProcessors = exports.PostProcessors = exports.PreProcessors = void 0;
|
|
4
|
+
const processor_1 = require("./processor");
|
|
5
|
+
const helpers_1 = require("./helpers");
|
|
6
|
+
exports.PreProcessors = new processor_1.ProcessorsRegistry();
|
|
7
|
+
exports.PostProcessors = new processor_1.ProcessorsRegistry();
|
|
8
|
+
const formatEndpointName = (api, prefix, name) => {
|
|
9
|
+
const regName = name ? ` ||| ${name})` : '';
|
|
10
|
+
return `${(0, helpers_1.getFormattedDisplayName)(api)}${prefix}${regName}`;
|
|
11
|
+
};
|
|
12
|
+
function cleanupProcessors() {
|
|
13
|
+
exports.PreProcessors.cleanup();
|
|
14
|
+
exports.PostProcessors.cleanup();
|
|
15
|
+
}
|
|
16
|
+
exports.cleanupProcessors = cleanupProcessors;
|
|
17
|
+
function registerPreProcessor(api, processor, name) {
|
|
18
|
+
return exports.PreProcessors.register(api, processor, formatEndpointName(api, ' | <pre_proc>', name));
|
|
19
|
+
}
|
|
20
|
+
exports.registerPreProcessor = registerPreProcessor;
|
|
21
|
+
function registerPostProcessor(api, processor, name) {
|
|
22
|
+
return exports.PostProcessors.register(api, processor, formatEndpointName(api, ' | <post_proc>', name));
|
|
23
|
+
}
|
|
24
|
+
exports.registerPostProcessor = registerPostProcessor;
|
|
25
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/api/register.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAC/D,uCAAoD;AAGvC,QAAA,aAAa,GAAG,IAAI,8BAAkB,EAAiB,CAAC;AACxD,QAAA,cAAc,GAAG,IAAI,8BAAkB,EAAiB,CAAC;AAEtE,MAAM,kBAAkB,GAAG,CAAC,GAAkB,EAAE,MAAc,EAAE,IAAa,EAAE,EAAE;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,OAAO,GAAG,IAAA,iCAAuB,EAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;AAChE,CAAC,CAAC;AAEF,SAAgB,iBAAiB;IAC7B,qBAAa,CAAC,OAAO,EAAE,CAAC;IACxB,sBAAc,CAAC,OAAO,EAAE,CAAC;AAC7B,CAAC;AAHD,8CAGC;AAED,SAAgB,oBAAoB,CAA0B,GAAM,EAAE,SAAiD,EAAE,IAAa;IAClI,OAAO,qBAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG,CAAC;AAFD,oDAEC;AAED,SAAgB,qBAAqB,CAA0B,GAAM,EAAE,SAAkD,EAAE,IAAa;IACpI,OAAO,sBAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;AACpG,CAAC;AAFD,sDAEC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare enum StatusCodes {
|
|
2
|
+
OK = 200,
|
|
3
|
+
CREATED = 201,
|
|
4
|
+
FOUND = 302,
|
|
5
|
+
NOT_MODIFIED = 304,
|
|
6
|
+
BAD_REQUEST = 400,
|
|
7
|
+
UNAUTHORIZED = 401,
|
|
8
|
+
FORBIDDEN = 403,
|
|
9
|
+
NOT_FOUND = 404,
|
|
10
|
+
METHOD_NOT_ALLOWED = 405,
|
|
11
|
+
CONFLICT = 409,
|
|
12
|
+
PRECONDITION_FAILED = 412,
|
|
13
|
+
UPGRADE_REQUIRED = 426,
|
|
14
|
+
INTERNAL_SERVER_ERROR = 500,
|
|
15
|
+
SERVICE_UNAVAILABLE = 503
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=statusCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusCodes.d.ts","sourceRoot":"","sources":["../../src/api/statusCodes.ts"],"names":[],"mappings":"AACA,oBAAY,WAAW;IACnB,EAAE,MAAM;IACR,OAAO,MAAM;IAEb,KAAK,MAAM;IACX,YAAY,MAAM;IAElB,WAAW,MAAM;IACjB,YAAY,MAAM;IAClB,SAAS,MAAM;IAEf,SAAS,MAAM;IACf,kBAAkB,MAAM;IAExB,QAAQ,MAAM;IAEd,mBAAmB,MAAM;IACzB,gBAAgB,MAAM;IAEtB,qBAAqB,MAAM;IAC3B,mBAAmB,MAAM;CAC5B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatusCodes = void 0;
|
|
4
|
+
var StatusCodes;
|
|
5
|
+
(function (StatusCodes) {
|
|
6
|
+
StatusCodes[StatusCodes["OK"] = 200] = "OK";
|
|
7
|
+
StatusCodes[StatusCodes["CREATED"] = 201] = "CREATED";
|
|
8
|
+
StatusCodes[StatusCodes["FOUND"] = 302] = "FOUND";
|
|
9
|
+
StatusCodes[StatusCodes["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
|
|
10
|
+
StatusCodes[StatusCodes["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
11
|
+
StatusCodes[StatusCodes["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
12
|
+
StatusCodes[StatusCodes["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
13
|
+
StatusCodes[StatusCodes["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
14
|
+
StatusCodes[StatusCodes["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
|
|
15
|
+
StatusCodes[StatusCodes["CONFLICT"] = 409] = "CONFLICT";
|
|
16
|
+
StatusCodes[StatusCodes["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED";
|
|
17
|
+
StatusCodes[StatusCodes["UPGRADE_REQUIRED"] = 426] = "UPGRADE_REQUIRED";
|
|
18
|
+
StatusCodes[StatusCodes["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
|
|
19
|
+
StatusCodes[StatusCodes["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
|
|
20
|
+
})(StatusCodes || (exports.StatusCodes = StatusCodes = {}));
|
|
21
|
+
//# sourceMappingURL=statusCodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusCodes.js","sourceRoot":"","sources":["../../src/api/statusCodes.ts"],"names":[],"mappings":";;;AACA,IAAY,WAqBX;AArBD,WAAY,WAAW;IACnB,2CAAQ,CAAA;IACR,qDAAa,CAAA;IAEb,iDAAW,CAAA;IACX,+DAAkB,CAAA;IAElB,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,yDAAe,CAAA;IAEf,yDAAe,CAAA;IACf,2EAAwB,CAAA;IAExB,uDAAc,CAAA;IAEd,6EAAyB,CAAA;IACzB,uEAAsB,CAAA;IAEtB,iFAA2B,CAAA;IAC3B,6EAAyB,CAAA;AAC7B,CAAC,EArBW,WAAW,2BAAX,WAAW,QAqBtB"}
|
package/dates/convert.d.ts
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Granularity } from './types';
|
|
2
2
|
type DateFields<T> = {
|
|
3
3
|
[P in keyof T]: T[P] extends Date ? P : never;
|
|
4
4
|
}[keyof T];
|
|
5
5
|
export declare function ensureDates<T>(obj: T, ...fields: DateFields<T>[]): void;
|
|
6
6
|
export declare function isNetworkDay(n: number): boolean;
|
|
7
7
|
export declare function isNetworkDate(d: Date): boolean;
|
|
8
|
-
export declare function convert(amount: number, g: ConstantGranularity, to: ConstantGranularity): number;
|
|
9
8
|
export declare function unix(d: Date | number): number;
|
|
10
9
|
export declare function unixDayIndex(d: Date | number): number;
|
|
11
10
|
export declare function dateFromUnixDayIndex(d: number): Date;
|
|
12
|
-
export declare function decompose(date: number | Date, local: boolean, ...grans: (Granularity & DecomposeGranularity)[]): Partial<Record<DecomposeGranularity, number>>;
|
|
13
|
-
type DecomposeGranularity = 'week' | 'day' | 'hour' | 'minute' | 'second';
|
|
14
|
-
export declare function decomposeMs<K extends Granularity & DecomposeGranularity>(ms: number, ...grans: K[]): Record<K, number>;
|
|
15
11
|
export declare function decomposeDate<K extends Granularity>(d: Date, local: boolean, ...grans: K[]): Record<K, number>;
|
|
16
12
|
export declare function splitDatesByDay(dates: number[]): number[][];
|
|
17
13
|
export declare function getDiscreteDiff(d1: number | Date, d2: number | Date, granularity: Granularity, local?: boolean, absolute?: boolean): number;
|
package/dates/convert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/dates/convert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,KAAK,UAAU,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CAChD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAShE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,WAA8B;AACpE,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,WAAyC;AAE9E,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,UAEpC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,UAE5C;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,QAE7C;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAO9G;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAiC3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,UAAQ,EAAE,QAAQ,UAAO,UAkC7H;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CA2B5E"}
|