@digital-alchemy/core 24.8.3 → 24.9.3
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 +4 -1
- package/dist/helpers/async.helper.d.ts +1 -1
- package/dist/helpers/async.helper.js +13 -14
- package/dist/helpers/async.helper.js.map +1 -1
- package/dist/helpers/config-environment-loader.helper.js +16 -20
- package/dist/helpers/config-environment-loader.helper.js.map +1 -1
- package/dist/helpers/config-file-loader.helper.js +39 -46
- package/dist/helpers/config-file-loader.helper.js.map +1 -1
- package/dist/helpers/config.helper.d.ts +23 -2
- package/dist/helpers/config.helper.js +28 -38
- package/dist/helpers/config.helper.js.map +1 -1
- package/dist/helpers/context.helper.js +1 -2
- package/dist/helpers/cron.helper.d.ts +27 -0
- package/dist/helpers/cron.helper.js +4 -7
- package/dist/helpers/cron.helper.js.map +1 -1
- package/dist/helpers/errors.helper.d.ts +0 -12
- package/dist/helpers/errors.helper.js +2 -23
- package/dist/helpers/errors.helper.js.map +1 -1
- package/dist/helpers/events.helper.js +4 -10
- package/dist/helpers/events.helper.js.map +1 -1
- package/dist/helpers/extend.helper.js +12 -17
- package/dist/helpers/extend.helper.js.map +1 -1
- package/dist/helpers/index.d.ts +2 -4
- package/dist/helpers/index.js +14 -19
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/lifecycle.helper.d.ts +1 -5
- package/dist/helpers/lifecycle.helper.js +1 -4
- package/dist/helpers/lifecycle.helper.js.map +1 -1
- package/dist/{extensions/logger.extension.d.ts → helpers/logger.helper.d.ts} +33 -40
- package/dist/helpers/logger.helper.js +10 -0
- package/dist/helpers/logger.helper.js.map +1 -0
- package/dist/helpers/module.helper.d.ts +74 -0
- package/dist/helpers/module.helper.js +131 -0
- package/dist/helpers/module.helper.js.map +1 -0
- package/dist/helpers/utilities.helper.d.ts +1 -0
- package/dist/helpers/utilities.helper.js +57 -58
- package/dist/helpers/utilities.helper.js.map +1 -1
- package/dist/helpers/wiring.helper.d.ts +77 -23
- package/dist/helpers/wiring.helper.js +45 -47
- package/dist/helpers/wiring.helper.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/services/als.extension.d.ts +2 -0
- package/dist/services/als.extension.js +17 -0
- package/dist/services/als.extension.js.map +1 -0
- package/dist/services/configuration.extension.d.ts +7 -0
- package/dist/services/configuration.extension.js +117 -0
- package/dist/services/configuration.extension.js.map +1 -0
- package/dist/{extensions → services}/index.d.ts +1 -3
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/{extensions → services}/internal.extension.d.ts +7 -23
- package/dist/{extensions → services}/internal.extension.js +43 -55
- package/dist/services/internal.extension.js.map +1 -0
- package/dist/{extensions → services}/is.extension.d.ts +5 -0
- package/dist/{extensions → services}/is.extension.js +20 -15
- package/dist/services/is.extension.js.map +1 -0
- package/dist/{extensions → services}/lifecycle.extension.js +17 -19
- package/dist/services/lifecycle.extension.js.map +1 -0
- package/dist/services/logger.extension.d.ts +2 -0
- package/dist/services/logger.extension.js +200 -0
- package/dist/services/logger.extension.js.map +1 -0
- package/dist/services/scheduler.extension.d.ts +2 -0
- package/dist/services/scheduler.extension.js +108 -0
- package/dist/services/scheduler.extension.js.map +1 -0
- package/dist/services/wiring.extension.d.ts +111 -0
- package/dist/services/wiring.extension.js +437 -0
- package/dist/services/wiring.extension.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-logger.d.ts +2 -0
- package/dist/testing/mock-logger.js +11 -0
- package/dist/testing/mock-logger.js.map +1 -0
- package/dist/testing/test-module.d.ts +112 -0
- package/dist/testing/test-module.js +138 -0
- package/dist/testing/test-module.js.map +1 -0
- package/package.json +57 -43
- package/dist/extensions/cache.extension.d.ts +0 -2
- package/dist/extensions/cache.extension.js +0 -90
- package/dist/extensions/cache.extension.js.map +0 -1
- package/dist/extensions/configuration.extension.d.ts +0 -52
- package/dist/extensions/configuration.extension.js +0 -131
- package/dist/extensions/configuration.extension.js.map +0 -1
- package/dist/extensions/fetch.extension.d.ts +0 -17
- package/dist/extensions/fetch.extension.js +0 -133
- package/dist/extensions/fetch.extension.js.map +0 -1
- package/dist/extensions/index.js +0 -13
- package/dist/extensions/index.js.map +0 -1
- package/dist/extensions/internal.extension.js.map +0 -1
- package/dist/extensions/is.extension.js.map +0 -1
- package/dist/extensions/lifecycle.extension.js.map +0 -1
- package/dist/extensions/logger.extension.js +0 -186
- package/dist/extensions/logger.extension.js.map +0 -1
- package/dist/extensions/metrics.extension.d.ts +0 -18
- package/dist/extensions/metrics.extension.js +0 -156
- package/dist/extensions/metrics.extension.js.map +0 -1
- package/dist/extensions/scheduler.extension.d.ts +0 -21
- package/dist/extensions/scheduler.extension.js +0 -133
- package/dist/extensions/scheduler.extension.js.map +0 -1
- package/dist/extensions/wiring.extension.d.ts +0 -50
- package/dist/extensions/wiring.extension.js +0 -374
- package/dist/extensions/wiring.extension.js.map +0 -1
- package/dist/helpers/cache-memory.helper.d.ts +0 -6
- package/dist/helpers/cache-memory.helper.js +0 -68
- package/dist/helpers/cache-memory.helper.js.map +0 -1
- package/dist/helpers/cache-redis.helper.d.ts +0 -6
- package/dist/helpers/cache-redis.helper.js +0 -73
- package/dist/helpers/cache-redis.helper.js.map +0 -1
- package/dist/helpers/cache.helper.d.ts +0 -19
- package/dist/helpers/cache.helper.js +0 -9
- package/dist/helpers/cache.helper.js.map +0 -1
- package/dist/helpers/fetch.helper.d.ts +0 -165
- package/dist/helpers/fetch.helper.js +0 -173
- package/dist/helpers/fetch.helper.js.map +0 -1
- /package/dist/{extensions → services}/lifecycle.extension.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-memory.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-memory.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { createClient } from "redis";
|
|
2
|
-
import { CacheDriverOptions, ICacheDriver } from "..";
|
|
3
|
-
/**
|
|
4
|
-
* url & name properties automatically generated from config
|
|
5
|
-
*/
|
|
6
|
-
export declare function createRedisDriver({ logger, config, lifecycle, internal }: CacheDriverOptions, options?: Parameters<typeof createClient>[0]): Promise<ICacheDriver>;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createRedisDriver = createRedisDriver;
|
|
4
|
-
/* eslint-disable sonarjs/no-duplicate-string */
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
|
6
|
-
const redis_1 = require("redis");
|
|
7
|
-
const __1 = require("..");
|
|
8
|
-
/**
|
|
9
|
-
* url & name properties automatically generated from config
|
|
10
|
-
*/
|
|
11
|
-
async function createRedisDriver({ logger, config, lifecycle, internal }, options) {
|
|
12
|
-
let client = (0, redis_1.createClient)({
|
|
13
|
-
url: config.boilerplate.REDIS_URL,
|
|
14
|
-
...options,
|
|
15
|
-
});
|
|
16
|
-
await client.connect();
|
|
17
|
-
lifecycle.onShutdownStart(async () => {
|
|
18
|
-
logger.info({ name: "onShutdownStart" }, `disconnecting`);
|
|
19
|
-
await client.disconnect();
|
|
20
|
-
client = undefined;
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
async del(key) {
|
|
24
|
-
try {
|
|
25
|
-
await client.del(key);
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
logger.error({ err: error, name: "del" }, "redis cache error");
|
|
29
|
-
internal.boilerplate.metrics.REDIS_ERROR_COUNT.inc();
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
async get(key, defaultValue) {
|
|
33
|
-
try {
|
|
34
|
-
const start = process.hrtime();
|
|
35
|
-
const out = await client.get(key);
|
|
36
|
-
const diff = process.hrtime(start);
|
|
37
|
-
const durationInMilliseconds = diff[0] * __1.SECOND + diff[1] / 1e6;
|
|
38
|
-
internal.boilerplate.metrics.REDIS_OPERATION_LATENCY_MS.observe(durationInMilliseconds);
|
|
39
|
-
if (out !== null && __1.is.string(out)) {
|
|
40
|
-
return JSON.parse(out);
|
|
41
|
-
}
|
|
42
|
-
return defaultValue;
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
logger.error({ err: error, name: "get" }, "redis cache error");
|
|
46
|
-
internal.boilerplate.metrics.REDIS_ERROR_COUNT.inc();
|
|
47
|
-
return defaultValue;
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
async keys(pattern) {
|
|
51
|
-
try {
|
|
52
|
-
return await client.keys(pattern || "*");
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
logger.error({ err: error, name: "keys" }, "redis cache error");
|
|
56
|
-
internal.boilerplate.metrics.REDIS_ERROR_COUNT.inc();
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
async set(key, value, ttl) {
|
|
61
|
-
try {
|
|
62
|
-
await client.set(key, JSON.stringify(value), {
|
|
63
|
-
EX: ttl,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
logger.error({ err: error, name: "set" }, "redis cache error");
|
|
68
|
-
internal.boilerplate.metrics.REDIS_ERROR_COUNT.inc();
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=cache-redis.helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-redis.helper.js","sourceRoot":"","sources":["../../src/helpers/cache-redis.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { TServiceParams } from ".";
|
|
2
|
-
export type CacheDriverOptions = Pick<TServiceParams, "logger" | "config" | "lifecycle" | "internal">;
|
|
3
|
-
export interface ICacheDriver {
|
|
4
|
-
get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
|
|
5
|
-
set<T>(key: string, value: T, ttl: number): Promise<void>;
|
|
6
|
-
del(key: string): Promise<void>;
|
|
7
|
-
keys(pattern?: string): Promise<string[]>;
|
|
8
|
-
}
|
|
9
|
-
export type TCache = {
|
|
10
|
-
del: (key: string) => Promise<void>;
|
|
11
|
-
get: <T>(key: string, defaultValue?: T) => Promise<T>;
|
|
12
|
-
set: <T>(key: string, value: T, ttl?: number) => Promise<void>;
|
|
13
|
-
keys: (pattern?: string) => Promise<string[]>;
|
|
14
|
-
setClient: (client: ICacheDriver) => void;
|
|
15
|
-
};
|
|
16
|
-
export declare enum CacheProviders {
|
|
17
|
-
redis = "redis",
|
|
18
|
-
memory = "memory"
|
|
19
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CacheProviders = void 0;
|
|
4
|
-
var CacheProviders;
|
|
5
|
-
(function (CacheProviders) {
|
|
6
|
-
CacheProviders["redis"] = "redis";
|
|
7
|
-
CacheProviders["memory"] = "memory";
|
|
8
|
-
})(CacheProviders || (exports.CacheProviders = CacheProviders = {}));
|
|
9
|
-
//# sourceMappingURL=cache.helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache.helper.js","sourceRoot":"","sources":["../../src/helpers/cache.helper.ts"],"names":[],"mappings":";;;AAsBA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { MergeExclusive } from "type-fest";
|
|
2
|
-
import { TContext } from "..";
|
|
3
|
-
/**
|
|
4
|
-
* Defines the types of parameters that can be used in fetch requests.
|
|
5
|
-
*/
|
|
6
|
-
export type FetchParameterTypes = string | boolean | Date | number | Array<string | Date | number>;
|
|
7
|
-
/**
|
|
8
|
-
* Enumerates HTTP methods used in fetch requests.
|
|
9
|
-
*/
|
|
10
|
-
export declare enum HTTP_METHODS {
|
|
11
|
-
get = "get",
|
|
12
|
-
delete = "delete",
|
|
13
|
-
put = "put",
|
|
14
|
-
patch = "patch",
|
|
15
|
-
post = "post"
|
|
16
|
-
}
|
|
17
|
-
type NoBodyMethods = "get" | "delete";
|
|
18
|
-
type BodyMethods = "put" | "patch" | "post";
|
|
19
|
-
/**
|
|
20
|
-
* Represents a fetch request with additional properties and body content.
|
|
21
|
-
*/
|
|
22
|
-
export type FetchWith<EXTRA extends Record<never, string> = Record<never, string>, BODY extends TFetchBody = undefined> = Partial<FetchArguments<BODY>> & EXTRA;
|
|
23
|
-
export type FetchProcessTypes = boolean | "text" | "json" | "raw" | undefined;
|
|
24
|
-
type BaseFetchArguments = {
|
|
25
|
-
/**
|
|
26
|
-
* Headers to append
|
|
27
|
-
*/
|
|
28
|
-
headers?: Record<string, string>;
|
|
29
|
-
/**
|
|
30
|
-
* Query params to send
|
|
31
|
-
*/
|
|
32
|
-
params?: Record<string, FetchParameterTypes>;
|
|
33
|
-
/**
|
|
34
|
-
* Built in post-processing
|
|
35
|
-
*
|
|
36
|
-
* - true / "json" = attempt to decode as json
|
|
37
|
-
* - false / "raw" = return the node-fetch response object without processing
|
|
38
|
-
* - "text" = return result as text, no additional processing
|
|
39
|
-
*
|
|
40
|
-
* ? boolean values are deprecated
|
|
41
|
-
*/
|
|
42
|
-
process?: FetchProcessTypes;
|
|
43
|
-
/**
|
|
44
|
-
* If provided, metrics will be kept for this request, and associated with labels
|
|
45
|
-
*/
|
|
46
|
-
label?: string;
|
|
47
|
-
/**
|
|
48
|
-
* Defaults to global fetch context
|
|
49
|
-
*/
|
|
50
|
-
context?: TContext;
|
|
51
|
-
};
|
|
52
|
-
type BaseFetchUrl = {
|
|
53
|
-
/**
|
|
54
|
-
* URL to send request to
|
|
55
|
-
*/
|
|
56
|
-
url: string;
|
|
57
|
-
} & MergeExclusive<{
|
|
58
|
-
/**
|
|
59
|
-
* Frequently filled in by wrapper services
|
|
60
|
-
*/
|
|
61
|
-
baseUrl?: string;
|
|
62
|
-
}, {
|
|
63
|
-
/**
|
|
64
|
-
* URL is the full path (includes http://...)
|
|
65
|
-
*
|
|
66
|
-
* Ignores baseUrl if set
|
|
67
|
-
*/
|
|
68
|
-
rawUrl?: boolean;
|
|
69
|
-
}>;
|
|
70
|
-
type BaseFetchBody<BODY extends TFetchBody = undefined> = MergeExclusive<{
|
|
71
|
-
/**
|
|
72
|
-
* POSTDATA
|
|
73
|
-
*/
|
|
74
|
-
body?: BODY;
|
|
75
|
-
/**
|
|
76
|
-
* HTTP method
|
|
77
|
-
*/
|
|
78
|
-
method: BodyMethods;
|
|
79
|
-
}, {
|
|
80
|
-
/**
|
|
81
|
-
* HTTP method
|
|
82
|
-
*/
|
|
83
|
-
method?: NoBodyMethods;
|
|
84
|
-
}>;
|
|
85
|
-
/**
|
|
86
|
-
* Defines the structure and types for arguments passed to fetch requests.
|
|
87
|
-
*/
|
|
88
|
-
export type FetchArguments<BODY extends TFetchBody = undefined> = BaseFetchUrl & BaseFetchArguments & BaseFetchBody<BODY>;
|
|
89
|
-
/**
|
|
90
|
-
* Represents a subset of FetchArguments for specific use cases.
|
|
91
|
-
*/
|
|
92
|
-
export type FilteredFetchArguments<BODY extends TFetchBody = undefined> = BaseFetchBody<BODY> & Pick<BaseFetchUrl, "url"> & Pick<BaseFetchArguments, "process" | "params">;
|
|
93
|
-
/**
|
|
94
|
-
* Same thing as FetchWith, but the function doesn't need any args
|
|
95
|
-
*
|
|
96
|
-
* This is a work around, for some reason the default value approach isn't work as I had hoped
|
|
97
|
-
*/
|
|
98
|
-
export type BaseFetch = Partial<FetchArguments>;
|
|
99
|
-
/**
|
|
100
|
-
* Defines the types of values that can be used in filter operations.
|
|
101
|
-
*/
|
|
102
|
-
export type FilterValueType = string | boolean | number | Date | RegExp | unknown | Record<string, string>;
|
|
103
|
-
/**
|
|
104
|
-
* Enumerates the types of operations available for data filtering.
|
|
105
|
-
*/
|
|
106
|
-
export declare enum FILTER_OPERATIONS {
|
|
107
|
-
elem = "elem",
|
|
108
|
-
regex = "regex",
|
|
109
|
-
in = "in",
|
|
110
|
-
nin = "nin",
|
|
111
|
-
lt = "lt",
|
|
112
|
-
lte = "lte",
|
|
113
|
-
gt = "gt",
|
|
114
|
-
gte = "gte",
|
|
115
|
-
exists = "exists",
|
|
116
|
-
empty = "empty",
|
|
117
|
-
ne = "ne",
|
|
118
|
-
eq = "eq"
|
|
119
|
-
}
|
|
120
|
-
export interface ComparisonDTO {
|
|
121
|
-
operation?: FILTER_OPERATIONS | `${FILTER_OPERATIONS}`;
|
|
122
|
-
value?: FilterValueType | FilterValueType[];
|
|
123
|
-
}
|
|
124
|
-
export interface Filter<FIELDS = string> extends ComparisonDTO {
|
|
125
|
-
empty?: boolean;
|
|
126
|
-
exists?: boolean;
|
|
127
|
-
field?: FIELDS;
|
|
128
|
-
}
|
|
129
|
-
export interface ResultControl {
|
|
130
|
-
filters?: Set<Filter>;
|
|
131
|
-
limit?: number;
|
|
132
|
-
select?: string[];
|
|
133
|
-
skip?: number;
|
|
134
|
-
sort?: string[];
|
|
135
|
-
}
|
|
136
|
-
export declare function controlToQuery(value: Readonly<ResultControl>): Record<string, string>;
|
|
137
|
-
export declare function buildFilter(key: string, value: FilterValueType | FilterValueType[]): Filter;
|
|
138
|
-
export declare function queryToControl(value: Readonly<Record<string, string>>): ResultControl;
|
|
139
|
-
/**
|
|
140
|
-
* Properties that alter the way that fetcher works.
|
|
141
|
-
*/
|
|
142
|
-
export type FetcherOptions = {
|
|
143
|
-
/**
|
|
144
|
-
* typically domain names with scheme, added to the front of urls if the individual request doesn't override
|
|
145
|
-
*/
|
|
146
|
-
baseUrl?: string;
|
|
147
|
-
/**
|
|
148
|
-
* merged into every request
|
|
149
|
-
*/
|
|
150
|
-
headers?: Record<string, string>;
|
|
151
|
-
/**
|
|
152
|
-
* Alter the context attached to the log statements emitted from the fetcher
|
|
153
|
-
*/
|
|
154
|
-
context?: TContext;
|
|
155
|
-
};
|
|
156
|
-
export type DownloadOptions<BODY extends TFetchBody = undefined> = Partial<FetchArguments<BODY>> & {
|
|
157
|
-
destination: string;
|
|
158
|
-
};
|
|
159
|
-
export declare function fetchCast(item: FetchParameterTypes): string;
|
|
160
|
-
export type TFetchBody = object | undefined;
|
|
161
|
-
export declare function buildFilterString(fetchWith: FetchWith<{
|
|
162
|
-
filters?: Readonly<ResultControl>;
|
|
163
|
-
params?: Record<string, FetchParameterTypes>;
|
|
164
|
-
}>): string;
|
|
165
|
-
export {};
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FILTER_OPERATIONS = exports.HTTP_METHODS = void 0;
|
|
4
|
-
exports.controlToQuery = controlToQuery;
|
|
5
|
-
exports.buildFilter = buildFilter;
|
|
6
|
-
exports.queryToControl = queryToControl;
|
|
7
|
-
exports.fetchCast = fetchCast;
|
|
8
|
-
exports.buildFilterString = buildFilterString;
|
|
9
|
-
const __1 = require("..");
|
|
10
|
-
/**
|
|
11
|
-
* Enumerates HTTP methods used in fetch requests.
|
|
12
|
-
*/
|
|
13
|
-
var HTTP_METHODS;
|
|
14
|
-
(function (HTTP_METHODS) {
|
|
15
|
-
HTTP_METHODS["get"] = "get";
|
|
16
|
-
HTTP_METHODS["delete"] = "delete";
|
|
17
|
-
HTTP_METHODS["put"] = "put";
|
|
18
|
-
HTTP_METHODS["patch"] = "patch";
|
|
19
|
-
HTTP_METHODS["post"] = "post";
|
|
20
|
-
})(HTTP_METHODS || (exports.HTTP_METHODS = HTTP_METHODS = {}));
|
|
21
|
-
/**
|
|
22
|
-
* Enumerates the types of operations available for data filtering.
|
|
23
|
-
*/
|
|
24
|
-
var FILTER_OPERATIONS;
|
|
25
|
-
(function (FILTER_OPERATIONS) {
|
|
26
|
-
// "elemMatch" functionality in mongo
|
|
27
|
-
// eslint-disable-next-line unicorn/prevent-abbreviations
|
|
28
|
-
FILTER_OPERATIONS["elem"] = "elem";
|
|
29
|
-
FILTER_OPERATIONS["regex"] = "regex";
|
|
30
|
-
FILTER_OPERATIONS["in"] = "in";
|
|
31
|
-
FILTER_OPERATIONS["nin"] = "nin";
|
|
32
|
-
FILTER_OPERATIONS["lt"] = "lt";
|
|
33
|
-
FILTER_OPERATIONS["lte"] = "lte";
|
|
34
|
-
FILTER_OPERATIONS["gt"] = "gt";
|
|
35
|
-
FILTER_OPERATIONS["gte"] = "gte";
|
|
36
|
-
FILTER_OPERATIONS["exists"] = "exists";
|
|
37
|
-
FILTER_OPERATIONS["empty"] = "empty";
|
|
38
|
-
FILTER_OPERATIONS["ne"] = "ne";
|
|
39
|
-
FILTER_OPERATIONS["eq"] = "eq";
|
|
40
|
-
})(FILTER_OPERATIONS || (exports.FILTER_OPERATIONS = FILTER_OPERATIONS = {}));
|
|
41
|
-
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
42
|
-
function controlToQuery(value) {
|
|
43
|
-
const out = new Map();
|
|
44
|
-
if (value?.limit) {
|
|
45
|
-
out.set("limit", value.limit.toString());
|
|
46
|
-
}
|
|
47
|
-
if (value?.skip) {
|
|
48
|
-
out.set("skip", value.skip.toString());
|
|
49
|
-
}
|
|
50
|
-
if (value?.sort) {
|
|
51
|
-
out.set("sort", value.sort.join(","));
|
|
52
|
-
}
|
|
53
|
-
if (value?.select) {
|
|
54
|
-
out.set("select", value.select.join(","));
|
|
55
|
-
}
|
|
56
|
-
value?.filters?.forEach((f) => {
|
|
57
|
-
let field = f.field;
|
|
58
|
-
if (f.operation && f.operation !== FILTER_OPERATIONS.eq) {
|
|
59
|
-
field = `${field}__${f.operation}`;
|
|
60
|
-
}
|
|
61
|
-
let value = f.value;
|
|
62
|
-
if (__1.is.array(value)) {
|
|
63
|
-
value = value.join(",");
|
|
64
|
-
}
|
|
65
|
-
if (value instanceof Date) {
|
|
66
|
-
value = value.toISOString();
|
|
67
|
-
}
|
|
68
|
-
if (value === null) {
|
|
69
|
-
value = "null";
|
|
70
|
-
}
|
|
71
|
-
if (field) {
|
|
72
|
-
out.set(field, (value ?? "").toString());
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
return Object.fromEntries(out.entries());
|
|
76
|
-
}
|
|
77
|
-
function buildFilter(key, value) {
|
|
78
|
-
const [name, operation] = key.split("__");
|
|
79
|
-
switch (operation) {
|
|
80
|
-
case "in":
|
|
81
|
-
case "nin":
|
|
82
|
-
if (!__1.is.array(value)) {
|
|
83
|
-
value = __1.is.string(value) ? value.split(",") : [value];
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
field: name,
|
|
87
|
-
operation,
|
|
88
|
-
value: value,
|
|
89
|
-
};
|
|
90
|
-
case "elem":
|
|
91
|
-
return {
|
|
92
|
-
field: name,
|
|
93
|
-
operation,
|
|
94
|
-
value: __1.is.string(value) ? JSON.parse(value) : value,
|
|
95
|
-
};
|
|
96
|
-
default:
|
|
97
|
-
return {
|
|
98
|
-
field: name,
|
|
99
|
-
operation,
|
|
100
|
-
value,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
function queryToControl(value) {
|
|
105
|
-
const filters = new Set();
|
|
106
|
-
const out = { filters };
|
|
107
|
-
const parameters = new Map(Object.entries(value));
|
|
108
|
-
parameters.forEach((value, key) => {
|
|
109
|
-
const [name, operation] = key.split("__");
|
|
110
|
-
switch (key) {
|
|
111
|
-
case "select":
|
|
112
|
-
out.select = value.split(",");
|
|
113
|
-
return;
|
|
114
|
-
case "sort":
|
|
115
|
-
out.sort = value.split(",");
|
|
116
|
-
return;
|
|
117
|
-
case "limit":
|
|
118
|
-
out.limit = Number(value);
|
|
119
|
-
return;
|
|
120
|
-
case "skip":
|
|
121
|
-
out.skip = Number(value);
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
switch (operation) {
|
|
125
|
-
case "in":
|
|
126
|
-
case "nin":
|
|
127
|
-
filters.add({
|
|
128
|
-
field: name,
|
|
129
|
-
operation,
|
|
130
|
-
value: value.split(","),
|
|
131
|
-
});
|
|
132
|
-
return;
|
|
133
|
-
case "elem":
|
|
134
|
-
filters.add({
|
|
135
|
-
field: name,
|
|
136
|
-
operation,
|
|
137
|
-
value: JSON.parse(value),
|
|
138
|
-
});
|
|
139
|
-
return;
|
|
140
|
-
default:
|
|
141
|
-
filters.add({
|
|
142
|
-
field: name,
|
|
143
|
-
operation,
|
|
144
|
-
value,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return out;
|
|
149
|
-
}
|
|
150
|
-
function fetchCast(item) {
|
|
151
|
-
if (__1.is.array(item)) {
|
|
152
|
-
return item.map((i) => fetchCast(i)).join(",");
|
|
153
|
-
}
|
|
154
|
-
if (item instanceof Date) {
|
|
155
|
-
return item.toISOString();
|
|
156
|
-
}
|
|
157
|
-
if (__1.is.number(item)) {
|
|
158
|
-
return item.toString();
|
|
159
|
-
}
|
|
160
|
-
if (__1.is.boolean(item)) {
|
|
161
|
-
return item ? "true" : "false";
|
|
162
|
-
}
|
|
163
|
-
return item;
|
|
164
|
-
}
|
|
165
|
-
function buildFilterString(fetchWith) {
|
|
166
|
-
return new URLSearchParams({
|
|
167
|
-
...Object.fromEntries(Object.entries(fetchWith.params ?? {}).map(([label, value]) => [
|
|
168
|
-
label,
|
|
169
|
-
fetchCast(value),
|
|
170
|
-
])),
|
|
171
|
-
}).toString();
|
|
172
|
-
}
|
|
173
|
-
//# sourceMappingURL=fetch.helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.helper.js","sourceRoot":"","sources":["../../src/helpers/fetch.helper.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|