@venizia/ardor-kernel 0.1.4-4 → 0.1.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/README.md +2 -2
- package/dist/base/applications/abstract.d.ts.map +1 -1
- package/dist/base/applications/abstract.js +8 -1
- package/dist/base/applications/abstract.js.map +1 -1
- package/dist/base/decorators/api.d.ts +1 -1
- package/dist/base/decorators/api.d.ts.map +1 -1
- package/dist/base/decorators/api.js +3 -3
- package/dist/base/decorators/api.js.map +1 -1
- package/dist/base/services/auth.d.ts.map +1 -1
- package/dist/base/services/auth.js +6 -2
- package/dist/base/services/auth.js.map +1 -1
- package/dist/base/services/base.d.ts +2 -6
- package/dist/base/services/base.d.ts.map +1 -1
- package/dist/base/services/base.js +2 -5
- package/dist/base/services/base.js.map +1 -1
- package/dist/base/services/network-request.d.ts +75 -29
- package/dist/base/services/network-request.d.ts.map +1 -1
- package/dist/base/services/network-request.js +208 -210
- package/dist/base/services/network-request.js.map +1 -1
- package/dist/common/constants.d.ts +11 -5
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/common/constants.js +26 -9
- package/dist/common/constants.js.map +1 -1
- package/dist/common/keys.d.ts +2 -0
- package/dist/common/keys.d.ts.map +1 -1
- package/dist/common/keys.js +8 -0
- package/dist/common/keys.js.map +1 -1
- package/dist/common/types.d.ts +25 -48
- package/dist/common/types.d.ts.map +1 -1
- package/dist/helpers/logger.d.ts +21 -15
- package/dist/helpers/logger.d.ts.map +1 -1
- package/dist/helpers/logger.js +20 -15
- package/dist/helpers/logger.js.map +1 -1
- package/dist/helpers/networks/base-request.d.ts +7 -7
- package/dist/helpers/networks/base-request.d.ts.map +1 -1
- package/dist/helpers/networks/base-request.js.map +1 -1
- package/dist/helpers/networks/fetchers/abstract.d.ts +25 -21
- package/dist/helpers/networks/fetchers/abstract.d.ts.map +1 -1
- package/dist/helpers/networks/fetchers/abstract.js +16 -18
- package/dist/helpers/networks/fetchers/abstract.js.map +1 -1
- package/dist/helpers/networks/fetchers/node-fetch.d.ts +1 -2
- package/dist/helpers/networks/fetchers/node-fetch.d.ts.map +1 -1
- package/dist/helpers/networks/fetchers/node-fetch.js +6 -8
- package/dist/helpers/networks/fetchers/node-fetch.js.map +1 -1
- package/dist/helpers/networks/headers.d.ts +16 -0
- package/dist/helpers/networks/headers.d.ts.map +1 -0
- package/dist/helpers/networks/headers.js +32 -0
- package/dist/helpers/networks/headers.js.map +1 -0
- package/dist/helpers/networks/index.d.ts +1 -0
- package/dist/helpers/networks/index.d.ts.map +1 -1
- package/dist/helpers/networks/index.js +1 -0
- package/dist/helpers/networks/index.js.map +1 -1
- package/dist/helpers/socket-io-client.d.ts +6 -3
- package/dist/helpers/socket-io-client.d.ts.map +1 -1
- package/dist/helpers/socket-io-client.js +30 -3
- package/dist/helpers/socket-io-client.js.map +1 -1
- package/dist/utilities/boolean.d.ts +16 -5
- package/dist/utilities/boolean.d.ts.map +1 -1
- package/dist/utilities/boolean.js +13 -10
- package/dist/utilities/boolean.js.map +1 -1
- package/dist/utilities/file.d.ts +4 -1
- package/dist/utilities/file.d.ts.map +1 -1
- package/dist/utilities/file.js +8 -7
- package/dist/utilities/file.js.map +1 -1
- package/dist/utilities/parse.d.ts +46 -14
- package/dist/utilities/parse.d.ts.map +1 -1
- package/dist/utilities/parse.js +69 -83
- package/dist/utilities/parse.js.map +1 -1
- package/dist/utilities/url.d.ts +7 -4
- package/dist/utilities/url.d.ts.map +1 -1
- package/dist/utilities/url.js +13 -19
- package/dist/utilities/url.js.map +1 -1
- package/package.json +13 -13
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseHelper } from '../../base-helper.js';
|
|
1
2
|
import type { TFetcherResponse, TFetcherVariant, TFetcherWorker } from '../common/types.js';
|
|
2
3
|
export interface IRequestOptions {
|
|
3
4
|
url: string;
|
|
@@ -6,31 +7,34 @@ export interface IRequestOptions {
|
|
|
6
7
|
timeout?: number;
|
|
7
8
|
[extra: symbol | string]: any;
|
|
8
9
|
}
|
|
9
|
-
export interface IFetchable<
|
|
10
|
-
send(opts:
|
|
11
|
-
get(opts:
|
|
12
|
-
post(opts:
|
|
13
|
-
put(opts:
|
|
14
|
-
patch(opts:
|
|
15
|
-
delete(opts:
|
|
16
|
-
getWorker(): TFetcherWorker<
|
|
10
|
+
export interface IFetchable<TVariant extends TFetcherVariant, TRequest extends IRequestOptions, TResponse extends TFetcherResponse<TVariant>> {
|
|
11
|
+
send(opts: TRequest): Promise<TResponse>;
|
|
12
|
+
get(opts: TRequest): Promise<TResponse>;
|
|
13
|
+
post(opts: TRequest): Promise<TResponse>;
|
|
14
|
+
put(opts: TRequest): Promise<TResponse>;
|
|
15
|
+
patch(opts: TRequest): Promise<TResponse>;
|
|
16
|
+
delete(opts: TRequest): Promise<TResponse>;
|
|
17
|
+
getWorker(): TFetcherWorker<TVariant>;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
/** The helper owns its logger (`this.logger`, scoped by `name`): a call carries none. */
|
|
20
|
+
export declare abstract class AbstractNetworkFetchableHelper<TVariant extends TFetcherVariant, TRequest extends IRequestOptions, TResponse extends TFetcherResponse<TVariant>> extends BaseHelper implements IFetchable<TVariant, TRequest, TResponse> {
|
|
19
21
|
protected name: string;
|
|
20
|
-
protected variant:
|
|
21
|
-
protected worker: TFetcherWorker<
|
|
22
|
+
protected variant: TVariant;
|
|
23
|
+
protected worker: TFetcherWorker<TVariant>;
|
|
22
24
|
constructor(opts: {
|
|
23
25
|
name: string;
|
|
24
|
-
variant:
|
|
25
|
-
worker: TFetcherWorker<
|
|
26
|
+
variant: TVariant;
|
|
27
|
+
worker: TFetcherWorker<TVariant>;
|
|
26
28
|
});
|
|
27
|
-
abstract send(opts:
|
|
28
|
-
getProtocol(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
abstract send(opts: TRequest): Promise<TResponse>;
|
|
30
|
+
getProtocol(opts: {
|
|
31
|
+
url: string;
|
|
32
|
+
}): "http" | "https";
|
|
33
|
+
getWorker(): TFetcherWorker<TVariant>;
|
|
34
|
+
get(opts: TRequest): Promise<TResponse>;
|
|
35
|
+
post(opts: TRequest): Promise<TResponse>;
|
|
36
|
+
put(opts: TRequest): Promise<TResponse>;
|
|
37
|
+
patch(opts: TRequest): Promise<TResponse>;
|
|
38
|
+
delete(opts: TRequest): Promise<TResponse>;
|
|
35
39
|
}
|
|
36
40
|
//# sourceMappingURL=abstract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/abstract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKzF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU,CACzB,
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKzF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU,CACzB,QAAQ,SAAS,eAAe,EAChC,QAAQ,SAAS,eAAe,EAChC,SAAS,SAAS,gBAAgB,CAAC,QAAQ,CAAC;IAE5C,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE3C,SAAS,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,yFAAyF;AACzF,8BAAsB,8BAA8B,CAClD,QAAQ,SAAS,eAAe,EAChC,QAAQ,SAAS,eAAe,EAChC,SAAS,SAAS,gBAAgB,CAAC,QAAQ,CAAC,CAE5C,SAAQ,UACR,YAAW,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IAEpD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC5B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAE/B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;KAAE;IAOvF,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAEjD,WAAW,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAIjC,SAAS;IAIT,GAAG,CAAC,IAAI,EAAE,QAAQ;IAIlB,IAAI,CAAC,IAAI,EAAE,QAAQ;IAInB,GAAG,CAAC,IAAI,EAAE,QAAQ;IAIlB,KAAK,CAAC,IAAI,EAAE,QAAQ;IAIpB,MAAM,CAAC,IAAI,EAAE,QAAQ;CAGtB"}
|
|
@@ -1,37 +1,35 @@
|
|
|
1
1
|
import { RequestMethods } from '../../../common/constants.js';
|
|
2
|
+
import { BaseHelper } from '../../base-helper.js';
|
|
2
3
|
const HTTP = 'http';
|
|
3
4
|
const HTTPS = 'https';
|
|
4
|
-
|
|
5
|
+
/** The helper owns its logger (`this.logger`, scoped by `name`): a call carries none. */
|
|
6
|
+
export class AbstractNetworkFetchableHelper extends BaseHelper {
|
|
5
7
|
constructor(opts) {
|
|
8
|
+
super({ scope: opts.name });
|
|
6
9
|
this.name = opts.name;
|
|
7
10
|
this.variant = opts.variant;
|
|
8
11
|
this.worker = opts.worker;
|
|
9
12
|
}
|
|
10
|
-
getProtocol(
|
|
11
|
-
return url.startsWith('http:') ? HTTP : HTTPS;
|
|
13
|
+
getProtocol(opts) {
|
|
14
|
+
return opts.url.startsWith('http:') ? HTTP : HTTPS;
|
|
12
15
|
}
|
|
13
16
|
getWorker() {
|
|
14
17
|
return this.worker;
|
|
15
18
|
}
|
|
16
|
-
get(opts
|
|
17
|
-
|
|
18
|
-
return this.send({ ...rest, method: RequestMethods.GET }, logger);
|
|
19
|
+
get(opts) {
|
|
20
|
+
return this.send({ ...opts, method: RequestMethods.GET });
|
|
19
21
|
}
|
|
20
|
-
post(opts
|
|
21
|
-
|
|
22
|
-
return this.send({ ...rest, method: RequestMethods.POST }, logger);
|
|
22
|
+
post(opts) {
|
|
23
|
+
return this.send({ ...opts, method: RequestMethods.POST });
|
|
23
24
|
}
|
|
24
|
-
put(opts
|
|
25
|
-
|
|
26
|
-
return this.send({ ...rest, method: RequestMethods.PUT }, logger);
|
|
25
|
+
put(opts) {
|
|
26
|
+
return this.send({ ...opts, method: RequestMethods.PUT });
|
|
27
27
|
}
|
|
28
|
-
patch(opts
|
|
29
|
-
|
|
30
|
-
return this.send({ ...rest, method: RequestMethods.PATCH }, logger);
|
|
28
|
+
patch(opts) {
|
|
29
|
+
return this.send({ ...opts, method: RequestMethods.PATCH });
|
|
31
30
|
}
|
|
32
|
-
delete(opts
|
|
33
|
-
|
|
34
|
-
return this.send({ ...rest, method: RequestMethods.DELETE }, logger);
|
|
31
|
+
delete(opts) {
|
|
32
|
+
return this.send({ ...opts, method: RequestMethods.DELETE });
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
//# sourceMappingURL=abstract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,KAAK,GAAG,OAAO,CAAC;AAyBtB,yFAAyF;AACzF,MAAM,OAAgB,8BAKpB,SAAQ,UAAU;IAOlB,YAAY,IAA2E;QACrF,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAID,WAAW,CAAC,IAAqB;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,IAAc;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAc;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -8,8 +8,7 @@ export declare class NodeFetcher extends AbstractNetworkFetchableHelper<'node-fe
|
|
|
8
8
|
constructor(opts: {
|
|
9
9
|
name: string;
|
|
10
10
|
defaultConfigs: RequestInit;
|
|
11
|
-
logger?: any;
|
|
12
11
|
});
|
|
13
|
-
send(opts: INodeFetchRequestOptions
|
|
12
|
+
send(opts: INodeFetchRequestOptions): Promise<Response>;
|
|
14
13
|
}
|
|
15
14
|
//# sourceMappingURL=node-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fetch.d.ts","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/node-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAED,qBAAa,WAAY,SAAQ,8BAA8B,CAC7D,YAAY,EACZ,wBAAwB,EACxB,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAClC;IACC,OAAO,CAAC,cAAc,CAAc;gBAExB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"node-fetch.d.ts","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/node-fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAED,qBAAa,WAAY,SAAQ,8BAA8B,CAC7D,YAAY,EACZ,wBAAwB,EACxB,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAClC;IACC,OAAO,CAAC,cAAc,CAAc;gBAExB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,WAAW,CAAA;KAAE;IAOhD,IAAI,CAAC,IAAI,EAAE,wBAAwB;CAuCnD"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toQueryString } from '../../../utilities/url.js';
|
|
2
2
|
import { AbstractNetworkFetchableHelper } from './abstract.js';
|
|
3
3
|
export class NodeFetcher extends AbstractNetworkFetchableHelper {
|
|
4
4
|
constructor(opts) {
|
|
5
5
|
super({ name: opts.name, variant: 'node-fetch', worker: fetch });
|
|
6
|
-
|
|
7
|
-
this.
|
|
8
|
-
opts?.logger?.info('Creating new network request worker instance! Name: %s', this.name);
|
|
9
|
-
this.defaultConfigs = defaultConfigs;
|
|
6
|
+
this.logger.debug('Creating new network request worker instance! Name: %s', this.name);
|
|
7
|
+
this.defaultConfigs = opts.defaultConfigs;
|
|
10
8
|
}
|
|
11
|
-
async send(opts
|
|
9
|
+
async send(opts) {
|
|
12
10
|
const { url, method = 'get', params, body, headers, timeout, signal, ...rest } = opts;
|
|
13
11
|
let timeoutId;
|
|
14
12
|
let abortController;
|
|
@@ -28,9 +26,9 @@ export class NodeFetcher extends AbstractNetworkFetchableHelper {
|
|
|
28
26
|
};
|
|
29
27
|
let requestUrl = url;
|
|
30
28
|
if (params) {
|
|
31
|
-
requestUrl = `${url}?${
|
|
29
|
+
requestUrl = `${url}?${toQueryString({ params })}`;
|
|
32
30
|
}
|
|
33
|
-
logger
|
|
31
|
+
this.logger.info('[send] URL: %s | Props: %o | Timeout: %s', url, requestConfigs, timeout);
|
|
34
32
|
try {
|
|
35
33
|
const rs = await fetch(requestUrl, requestConfigs);
|
|
36
34
|
return rs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fetch.js","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/node-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"node-fetch.js","sourceRoot":"","sources":["../../../../src/helpers/networks/fetchers/node-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAwB,MAAM,YAAY,CAAC;AAOlF,MAAM,OAAO,WAAY,SAAQ,8BAIhC;IAGC,YAAY,IAAmD;QAC7D,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,IAA8B;QAChD,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtF,IAAI,SAAoD,CAAC;QACzD,IAAI,eAA4C,CAAC;QAEjD,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,eAAe,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAgB;YAClC,GAAG,IAAI,CAAC,cAAc;YACtB,GAAG,IAAI;YACP,MAAM;YACN,IAAI,EACF,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3F,OAAO;YACP,MAAM,EAAE,eAAe,EAAE,MAAM,IAAI,MAAM;SAC1C,CAAC;QAEF,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,GAAG,GAAG,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE3F,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** The one reading of `HeadersInit` the network layer uses. */
|
|
2
|
+
export declare class NetworkHeaders {
|
|
3
|
+
/**
|
|
4
|
+
* `HeadersInit` (or a record with number values) as a plain record, keys lowercased: header names
|
|
5
|
+
* are case-insensitive but object keys are not, and two spellings of one name would reach the wire
|
|
6
|
+
* joined as `"1, 0"`.
|
|
7
|
+
*/
|
|
8
|
+
static toRecord(opts: {
|
|
9
|
+
headers?: HeadersInit | Record<string, string | number>;
|
|
10
|
+
}): Record<string, string>;
|
|
11
|
+
/** Merge header sources so a later source REPLACES an earlier one, whatever case either used. */
|
|
12
|
+
static merge(opts: {
|
|
13
|
+
sources: Array<HeadersInit | Record<string, string | number> | undefined>;
|
|
14
|
+
}): Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/helpers/networks/headers.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qBAAa,cAAc;IACzB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;KACzD,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAsB1B,iGAAiG;IACjG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QACjB,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;KAC3E,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK3B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** The one reading of `HeadersInit` the network layer uses. */
|
|
2
|
+
export class NetworkHeaders {
|
|
3
|
+
/**
|
|
4
|
+
* `HeadersInit` (or a record with number values) as a plain record, keys lowercased: header names
|
|
5
|
+
* are case-insensitive but object keys are not, and two spellings of one name would reach the wire
|
|
6
|
+
* joined as `"1, 0"`.
|
|
7
|
+
*/
|
|
8
|
+
static toRecord(opts) {
|
|
9
|
+
const { headers } = opts;
|
|
10
|
+
if (!headers) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
const entries = (() => {
|
|
14
|
+
if (headers instanceof Headers) {
|
|
15
|
+
return [...headers.entries()];
|
|
16
|
+
}
|
|
17
|
+
return Array.isArray(headers) ? headers : Object.entries(headers);
|
|
18
|
+
})();
|
|
19
|
+
const rs = {};
|
|
20
|
+
for (const [key, value] of entries) {
|
|
21
|
+
rs[key.toLowerCase()] = String(value);
|
|
22
|
+
}
|
|
23
|
+
return rs;
|
|
24
|
+
}
|
|
25
|
+
/** Merge header sources so a later source REPLACES an earlier one, whatever case either used. */
|
|
26
|
+
static merge(opts) {
|
|
27
|
+
return opts.sources.reduce((acc, headers) => {
|
|
28
|
+
return Object.assign(acc, NetworkHeaders.toRecord({ headers }));
|
|
29
|
+
}, {});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/helpers/networks/headers.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,OAAO,cAAc;IACzB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAEf;QACC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAqC,CAAC,GAAG,EAAE;YACtD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,EAAE,GAA2B,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,iGAAiG;IACjG,MAAM,CAAC,KAAK,CAAC,IAEZ;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YAClE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/networks/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/networks/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/networks/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/networks/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
import { type Socket, type SocketOptions } from 'socket.io-client';
|
|
2
2
|
import { type AnyType } from '../common/types.js';
|
|
3
3
|
import { BaseHelper } from './base-helper.js';
|
|
4
|
-
|
|
4
|
+
export type TSocketIOEventHandler = (client: Socket, ...props: AnyType[]) => void;
|
|
5
|
+
interface ISocketIOConnectionOptions extends SocketOptions {
|
|
5
6
|
path: string;
|
|
6
7
|
extraHeaders: Record<string | symbol | number, AnyType>;
|
|
7
8
|
}
|
|
8
9
|
export interface ISocketIOClientOptions {
|
|
9
10
|
identifier: string;
|
|
10
11
|
host: string;
|
|
11
|
-
options:
|
|
12
|
+
options: ISocketIOConnectionOptions;
|
|
12
13
|
}
|
|
13
14
|
export declare class SocketIOClientHelper extends BaseHelper {
|
|
14
15
|
private identifier;
|
|
15
16
|
private host;
|
|
16
17
|
private options;
|
|
17
18
|
private client;
|
|
19
|
+
private wrappedHandlers;
|
|
18
20
|
constructor(opts: ISocketIOClientOptions);
|
|
19
21
|
configure(): void;
|
|
20
22
|
getSocketClient(): Socket;
|
|
21
23
|
subscribe(opts: {
|
|
22
|
-
events: Record<string,
|
|
24
|
+
events: Record<string, TSocketIOEventHandler>;
|
|
23
25
|
ignoreDuplicate?: boolean;
|
|
24
26
|
}): void;
|
|
25
27
|
unsubscribe(opts: {
|
|
26
28
|
events: Array<string>;
|
|
29
|
+
handler?: TSocketIOEventHandler;
|
|
27
30
|
}): void;
|
|
28
31
|
connect(): void;
|
|
29
32
|
disconnect(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-io-client.d.ts","sourceRoot":"","sources":["../../src/helpers/socket-io-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,UAAU,
|
|
1
|
+
{"version":3,"file":"socket-io-client.d.ts","sourceRoot":"","sources":["../../src/helpers/socket-io-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAElF,UAAU,0BAA2B,SAAQ,aAAa;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAS;IAIvB,OAAO,CAAC,eAAe,CAGnB;gBACQ,IAAI,EAAE,sBAAsB;IAUxC,SAAS;IAaT,eAAe,IAAI,MAAM;IAIzB,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IA4C5F,WAAW,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,qBAAqB,CAAA;KAAE;IA4B5E,OAAO;IASP,UAAU;IASV,IAAI,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAiB/D"}
|
|
@@ -4,6 +4,9 @@ import { BaseHelper } from './base-helper.js';
|
|
|
4
4
|
export class SocketIOClientHelper extends BaseHelper {
|
|
5
5
|
constructor(opts) {
|
|
6
6
|
super({ scope: SocketIOClientHelper.name });
|
|
7
|
+
// subscribe() registers a wrapper that passes `this.client`, never the caller handler directly:
|
|
8
|
+
// without this map, unsubscribe() cannot unbind one handler or deduplicate repeat subscriptions.
|
|
9
|
+
this.wrappedHandlers = new Map();
|
|
7
10
|
this.identifier = opts.identifier;
|
|
8
11
|
this.host = opts.host;
|
|
9
12
|
this.options = opts.options;
|
|
@@ -33,19 +36,43 @@ export class SocketIOClientHelper extends BaseHelper {
|
|
|
33
36
|
this.logger.info('[subscribe][%s] Ignore handling event %s because of duplicate handler!', this.identifier, eventName);
|
|
34
37
|
continue;
|
|
35
38
|
}
|
|
36
|
-
this.
|
|
39
|
+
let handlersForEvent = this.wrappedHandlers.get(eventName);
|
|
40
|
+
if (!handlersForEvent) {
|
|
41
|
+
handlersForEvent = new Map();
|
|
42
|
+
this.wrappedHandlers.set(eventName, handlersForEvent);
|
|
43
|
+
}
|
|
44
|
+
if (handlersForEvent.has(handler)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const wrappedHandler = (...props) => {
|
|
37
48
|
handler(this.client, ...props);
|
|
38
|
-
}
|
|
49
|
+
};
|
|
50
|
+
handlersForEvent.set(handler, wrappedHandler);
|
|
51
|
+
this.client.on(eventName, wrappedHandler);
|
|
39
52
|
}
|
|
40
53
|
}
|
|
41
54
|
unsubscribe(opts) {
|
|
42
|
-
const { events: eventNames } = opts;
|
|
55
|
+
const { events: eventNames, handler } = opts;
|
|
43
56
|
this.logger.info('[unsubscribe][%s] Handling events: %j', this.identifier, eventNames);
|
|
44
57
|
for (const eventName of eventNames) {
|
|
45
58
|
if (!this.client?.hasListeners(eventName)) {
|
|
46
59
|
continue;
|
|
47
60
|
}
|
|
61
|
+
const handlersForEvent = this.wrappedHandlers.get(eventName);
|
|
62
|
+
if (handler) {
|
|
63
|
+
const wrappedHandler = handlersForEvent?.get(handler);
|
|
64
|
+
if (!wrappedHandler) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
this.client.off(eventName, wrappedHandler);
|
|
68
|
+
handlersForEvent?.delete(handler);
|
|
69
|
+
if (handlersForEvent?.size === 0) {
|
|
70
|
+
this.wrappedHandlers.delete(eventName);
|
|
71
|
+
}
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
48
74
|
this.client.off(eventName);
|
|
75
|
+
this.wrappedHandlers.delete(eventName);
|
|
49
76
|
}
|
|
50
77
|
}
|
|
51
78
|
connect() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-io-client.js","sourceRoot":"","sources":["../../src/helpers/socket-io-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAmC,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-io-client.js","sourceRoot":"","sources":["../../src/helpers/socket-io-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
/** Positional on purpose: a type predicate narrows its own parameter. */
|
|
2
|
+
export declare const isDefined: <TValue>(value: TValue | null | undefined) => value is TValue;
|
|
3
|
+
/** Positional on purpose: a type predicate narrows its own parameter. */
|
|
2
4
|
export declare const isString: (value: unknown) => value is string;
|
|
3
|
-
|
|
4
|
-
export declare const
|
|
5
|
+
/** A number, or a string that reads as a finite number. */
|
|
6
|
+
export declare const isNumber: (opts: {
|
|
7
|
+
value: unknown;
|
|
8
|
+
}) => boolean;
|
|
9
|
+
export declare const isObject: (opts: {
|
|
10
|
+
value: unknown;
|
|
11
|
+
}) => boolean;
|
|
5
12
|
export declare const isBrowser: () => boolean;
|
|
6
|
-
export declare const isValidDate: (
|
|
7
|
-
|
|
13
|
+
export declare const isValidDate: (opts: {
|
|
14
|
+
value: string | number | Date;
|
|
15
|
+
}) => boolean;
|
|
16
|
+
export declare const isEditableTarget: (opts: {
|
|
17
|
+
target: EventTarget | null;
|
|
18
|
+
}) => boolean;
|
|
8
19
|
//# sourceMappingURL=boolean.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/utilities/boolean.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,
|
|
1
|
+
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/utilities/boolean.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,MAAM,EAAE,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,KAAK,IAAI,MAE7E,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAElD,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAQnD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAGnD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,OAE5B,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,KAAG,OAGrE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,KAAG,OAavE,CAAC"}
|
|
@@ -1,29 +1,32 @@
|
|
|
1
|
+
/** Positional on purpose: a type predicate narrows its own parameter. */
|
|
1
2
|
export const isDefined = (value) => {
|
|
2
3
|
return value !== undefined && value !== null;
|
|
3
4
|
};
|
|
5
|
+
/** Positional on purpose: a type predicate narrows its own parameter. */
|
|
4
6
|
export const isString = (value) => {
|
|
5
7
|
return typeof value === 'string';
|
|
6
8
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
9
|
+
/** A number, or a string that reads as a finite number. */
|
|
10
|
+
export const isNumber = (opts) => {
|
|
11
|
+
const { value } = opts;
|
|
11
12
|
if (typeof value !== 'string' && typeof value !== 'number') {
|
|
12
13
|
return false;
|
|
13
14
|
}
|
|
14
|
-
return !isNaN(parseFloat(String(value))) && isFinite(Number(value));
|
|
15
|
+
return !Number.isNaN(Number.parseFloat(String(value))) && Number.isFinite(Number(value));
|
|
15
16
|
};
|
|
16
|
-
export const isObject = (
|
|
17
|
+
export const isObject = (opts) => {
|
|
18
|
+
const { value } = opts;
|
|
17
19
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
18
20
|
};
|
|
19
21
|
export const isBrowser = () => {
|
|
20
22
|
return typeof window !== 'undefined';
|
|
21
23
|
};
|
|
22
|
-
export const isValidDate = (
|
|
23
|
-
const date = new Date(value);
|
|
24
|
-
return
|
|
24
|
+
export const isValidDate = (opts) => {
|
|
25
|
+
const date = new Date(opts.value);
|
|
26
|
+
return !Number.isNaN(date.valueOf());
|
|
25
27
|
};
|
|
26
|
-
export const isEditableTarget = (
|
|
28
|
+
export const isEditableTarget = (opts) => {
|
|
29
|
+
const { target } = opts;
|
|
27
30
|
if (!(target instanceof HTMLElement)) {
|
|
28
31
|
return false;
|
|
29
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../src/utilities/boolean.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../src/utilities/boolean.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAS,KAAgC,EAAmB,EAAE;IACrF,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C,CAAC,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAW,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAW,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAuC,EAAW,EAAE;IAC9E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAoC,EAAW,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,OAAO,KAAK,OAAO;QAC1B,MAAM,CAAC,OAAO,KAAK,UAAU;QAC7B,MAAM,CAAC,OAAO,KAAK,QAAQ,CAC5B,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/utilities/file.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utilities/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utilities/file.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAS9D,CAAC"}
|
package/dist/utilities/file.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/** The blob as a `data:` URL. */
|
|
2
|
+
export const toDataUrl = (opts) => {
|
|
3
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
4
|
+
const reader = new FileReader();
|
|
5
|
+
reader.onloadend = () => resolve(String(reader.result));
|
|
6
|
+
reader.onerror = reject;
|
|
7
|
+
reader.readAsDataURL(opts.blob);
|
|
8
|
+
return promise;
|
|
8
9
|
};
|
|
9
10
|
//# sourceMappingURL=file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utilities/file.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utilities/file.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAoB,EAAmB,EAAE;IACjE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAU,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAEhC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -1,15 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { type AnyType, type TConstValue } from '../common/index.js';
|
|
2
|
+
export declare class NumberParseMethods {
|
|
3
|
+
static readonly INT = "int";
|
|
4
|
+
static readonly FLOAT = "float";
|
|
5
|
+
static readonly SCHEME_SET: Set<string>;
|
|
6
|
+
static isValid(value: string): boolean;
|
|
7
|
+
}
|
|
8
|
+
export type TNumberParseMethod = TConstValue<typeof NumberParseMethods>;
|
|
9
|
+
export declare const INTL_0_DIGITS_FORMATTER: Intl.NumberFormat;
|
|
10
|
+
export declare const INTL_2_DIGITS_FORMATTER: Intl.NumberFormat;
|
|
11
|
+
export declare const generateUniqueId: () => string;
|
|
12
|
+
export declare const toCamelCase: (opts: {
|
|
13
|
+
value: string;
|
|
14
|
+
}) => string;
|
|
15
|
+
/** Nested objects are converted; an array is kept as it is. */
|
|
16
|
+
export declare const keysToCamelCase: (opts: {
|
|
17
|
+
value: object;
|
|
18
|
+
}) => Record<string, AnyType>;
|
|
19
|
+
export declare const isInteger: (opts: {
|
|
20
|
+
value: unknown;
|
|
21
|
+
}) => boolean;
|
|
22
|
+
export declare const isFloat: (opts: {
|
|
23
|
+
value: unknown;
|
|
24
|
+
}) => boolean;
|
|
25
|
+
/** Thousands separators are stripped; anything that is not a number reads as `0`. */
|
|
26
|
+
export declare const toInteger: (opts: {
|
|
27
|
+
value: unknown;
|
|
28
|
+
}) => number;
|
|
29
|
+
/** Thousands separators are stripped; anything that is not a number reads as `0`. */
|
|
30
|
+
export declare const toFloat: (opts: {
|
|
31
|
+
value: unknown;
|
|
32
|
+
digits?: number;
|
|
33
|
+
}) => number;
|
|
34
|
+
export declare const toBoolean: (opts: {
|
|
35
|
+
value: unknown;
|
|
36
|
+
}) => boolean;
|
|
37
|
+
export declare const toStringDecimal: (opts: {
|
|
38
|
+
value: unknown;
|
|
39
|
+
digits?: number;
|
|
40
|
+
localeFormat?: boolean;
|
|
41
|
+
}) => string | number;
|
|
42
|
+
/** Thousands separators and dots are stripped before parsing, so `'1.234'` reads as `1234`. */
|
|
43
|
+
export declare const getNumberValue: (opts: {
|
|
44
|
+
input: string;
|
|
45
|
+
method?: TNumberParseMethod;
|
|
46
|
+
}) => number;
|
|
15
47
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/utilities/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/utilities/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAEhC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAmC;IAE7D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB,mBAGlC,CAAC;AAEH,eAAO,MAAM,uBAAuB,mBAGlC,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAAO,MAA2D,CAAC;AAEhG,eAAO,MAAM,WAAW,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MAIrD,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,eAAe,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAY/E,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAQpD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAQlD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,MAQpD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,OAAO,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,MAQnE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAWpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,KAAG,MAAM,GAAG,MAyBZ,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,KAAG,MAiBrF,CAAC"}
|