@hotmeshio/hotmesh 0.0.1
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/LICENSE +214 -0
- package/README.md +241 -0
- package/build/index.d.ts +4 -0
- package/build/index.js +7 -0
- package/build/modules/errors.d.ts +28 -0
- package/build/modules/errors.js +50 -0
- package/build/modules/key.d.ts +75 -0
- package/build/modules/key.js +116 -0
- package/build/modules/utils.d.ts +34 -0
- package/build/modules/utils.js +173 -0
- package/build/package.json +73 -0
- package/build/services/activities/activity.d.ts +59 -0
- package/build/services/activities/activity.js +396 -0
- package/build/services/activities/await.d.ts +16 -0
- package/build/services/activities/await.js +143 -0
- package/build/services/activities/emit.d.ts +9 -0
- package/build/services/activities/emit.js +13 -0
- package/build/services/activities/index.d.ts +15 -0
- package/build/services/activities/index.js +16 -0
- package/build/services/activities/iterate.d.ts +9 -0
- package/build/services/activities/iterate.js +13 -0
- package/build/services/activities/trigger.d.ts +22 -0
- package/build/services/activities/trigger.js +161 -0
- package/build/services/activities/worker.d.ts +17 -0
- package/build/services/activities/worker.js +164 -0
- package/build/services/collator/index.d.ts +54 -0
- package/build/services/collator/index.js +171 -0
- package/build/services/compiler/deployer.d.ts +35 -0
- package/build/services/compiler/deployer.js +412 -0
- package/build/services/compiler/index.d.ts +30 -0
- package/build/services/compiler/index.js +111 -0
- package/build/services/compiler/validator.d.ts +32 -0
- package/build/services/compiler/validator.js +134 -0
- package/build/services/connector/clients/ioredis.d.ts +13 -0
- package/build/services/connector/clients/ioredis.js +50 -0
- package/build/services/connector/clients/redis.d.ts +13 -0
- package/build/services/connector/clients/redis.js +62 -0
- package/build/services/connector/index.d.ts +5 -0
- package/build/services/connector/index.js +31 -0
- package/build/services/dimension/index.d.ts +29 -0
- package/build/services/dimension/index.js +35 -0
- package/build/services/durable/asyncLocalStorage.d.ts +3 -0
- package/build/services/durable/asyncLocalStorage.js +5 -0
- package/build/services/durable/client.d.ts +15 -0
- package/build/services/durable/client.js +108 -0
- package/build/services/durable/connection.d.ts +4 -0
- package/build/services/durable/connection.js +51 -0
- package/build/services/durable/factory.d.ts +3 -0
- package/build/services/durable/factory.js +123 -0
- package/build/services/durable/handle.d.ts +8 -0
- package/build/services/durable/handle.js +38 -0
- package/build/services/durable/index.d.ts +57 -0
- package/build/services/durable/index.js +58 -0
- package/build/services/durable/native.d.ts +4 -0
- package/build/services/durable/native.js +47 -0
- package/build/services/durable/worker.d.ts +36 -0
- package/build/services/durable/worker.js +266 -0
- package/build/services/durable/workflow.d.ts +6 -0
- package/build/services/durable/workflow.js +135 -0
- package/build/services/engine/index.d.ts +82 -0
- package/build/services/engine/index.js +511 -0
- package/build/services/hotmesh/index.d.ts +45 -0
- package/build/services/hotmesh/index.js +134 -0
- package/build/services/logger/index.d.ts +17 -0
- package/build/services/logger/index.js +73 -0
- package/build/services/mapper/index.d.ts +24 -0
- package/build/services/mapper/index.js +72 -0
- package/build/services/pipe/functions/array.d.ts +24 -0
- package/build/services/pipe/functions/array.js +69 -0
- package/build/services/pipe/functions/bitwise.d.ts +9 -0
- package/build/services/pipe/functions/bitwise.js +24 -0
- package/build/services/pipe/functions/conditional.d.ts +10 -0
- package/build/services/pipe/functions/conditional.js +27 -0
- package/build/services/pipe/functions/date.d.ts +57 -0
- package/build/services/pipe/functions/date.js +167 -0
- package/build/services/pipe/functions/index.d.ts +25 -0
- package/build/services/pipe/functions/index.js +26 -0
- package/build/services/pipe/functions/json.d.ts +5 -0
- package/build/services/pipe/functions/json.js +12 -0
- package/build/services/pipe/functions/math.d.ts +38 -0
- package/build/services/pipe/functions/math.js +111 -0
- package/build/services/pipe/functions/number.d.ts +25 -0
- package/build/services/pipe/functions/number.js +133 -0
- package/build/services/pipe/functions/object.d.ts +22 -0
- package/build/services/pipe/functions/object.js +63 -0
- package/build/services/pipe/functions/string.d.ts +23 -0
- package/build/services/pipe/functions/string.js +69 -0
- package/build/services/pipe/functions/symbol.d.ts +12 -0
- package/build/services/pipe/functions/symbol.js +33 -0
- package/build/services/pipe/functions/unary.d.ts +7 -0
- package/build/services/pipe/functions/unary.js +18 -0
- package/build/services/pipe/index.d.ts +30 -0
- package/build/services/pipe/index.js +128 -0
- package/build/services/quorum/index.d.ts +34 -0
- package/build/services/quorum/index.js +147 -0
- package/build/services/reporter/index.d.ts +47 -0
- package/build/services/reporter/index.js +330 -0
- package/build/services/serializer/index.d.ts +36 -0
- package/build/services/serializer/index.js +222 -0
- package/build/services/signaler/store.d.ts +15 -0
- package/build/services/signaler/store.js +53 -0
- package/build/services/signaler/stream.d.ts +43 -0
- package/build/services/signaler/stream.js +317 -0
- package/build/services/store/cache.d.ts +66 -0
- package/build/services/store/cache.js +127 -0
- package/build/services/store/clients/ioredis.d.ts +27 -0
- package/build/services/store/clients/ioredis.js +96 -0
- package/build/services/store/clients/redis.d.ts +29 -0
- package/build/services/store/clients/redis.js +143 -0
- package/build/services/store/index.d.ts +88 -0
- package/build/services/store/index.js +657 -0
- package/build/services/stream/clients/ioredis.d.ts +23 -0
- package/build/services/stream/clients/ioredis.js +115 -0
- package/build/services/stream/clients/redis.d.ts +23 -0
- package/build/services/stream/clients/redis.js +119 -0
- package/build/services/stream/index.d.ts +21 -0
- package/build/services/stream/index.js +9 -0
- package/build/services/sub/clients/ioredis.d.ts +20 -0
- package/build/services/sub/clients/ioredis.js +72 -0
- package/build/services/sub/clients/redis.d.ts +20 -0
- package/build/services/sub/clients/redis.js +63 -0
- package/build/services/sub/index.d.ts +18 -0
- package/build/services/sub/index.js +9 -0
- package/build/services/task/index.d.ts +18 -0
- package/build/services/task/index.js +73 -0
- package/build/services/telemetry/index.d.ts +49 -0
- package/build/services/telemetry/index.js +223 -0
- package/build/services/worker/index.d.ts +30 -0
- package/build/services/worker/index.js +105 -0
- package/build/types/activity.d.ts +86 -0
- package/build/types/activity.js +2 -0
- package/build/types/app.d.ts +16 -0
- package/build/types/app.js +2 -0
- package/build/types/async.d.ts +5 -0
- package/build/types/async.js +2 -0
- package/build/types/cache.d.ts +1 -0
- package/build/types/cache.js +2 -0
- package/build/types/collator.d.ts +8 -0
- package/build/types/collator.js +11 -0
- package/build/types/durable.d.ts +59 -0
- package/build/types/durable.js +2 -0
- package/build/types/hook.d.ts +31 -0
- package/build/types/hook.js +9 -0
- package/build/types/hotmesh.d.ts +82 -0
- package/build/types/hotmesh.js +2 -0
- package/build/types/index.d.ts +20 -0
- package/build/types/index.js +21 -0
- package/build/types/ioredisclient.d.ts +5 -0
- package/build/types/ioredisclient.js +5 -0
- package/build/types/job.d.ts +50 -0
- package/build/types/job.js +2 -0
- package/build/types/logger.d.ts +6 -0
- package/build/types/logger.js +2 -0
- package/build/types/map.d.ts +4 -0
- package/build/types/map.js +2 -0
- package/build/types/pipe.d.ts +4 -0
- package/build/types/pipe.js +2 -0
- package/build/types/quorum.d.ts +46 -0
- package/build/types/quorum.js +2 -0
- package/build/types/redis.d.ts +8 -0
- package/build/types/redis.js +2 -0
- package/build/types/redisclient.d.ts +25 -0
- package/build/types/redisclient.js +2 -0
- package/build/types/serializer.d.ts +33 -0
- package/build/types/serializer.js +2 -0
- package/build/types/stats.d.ts +83 -0
- package/build/types/stats.js +2 -0
- package/build/types/stream.d.ts +67 -0
- package/build/types/stream.js +25 -0
- package/build/types/telemetry.d.ts +1 -0
- package/build/types/telemetry.js +11 -0
- package/build/types/transition.d.ts +17 -0
- package/build/types/transition.js +2 -0
- package/index.ts +5 -0
- package/modules/errors.ts +55 -0
- package/modules/key.ts +129 -0
- package/modules/utils.ts +170 -0
- package/package.json +73 -0
- package/services/activities/activity.ts +473 -0
- package/services/activities/await.ts +172 -0
- package/services/activities/emit.ts +25 -0
- package/services/activities/index.ts +15 -0
- package/services/activities/iterate.ts +26 -0
- package/services/activities/trigger.ts +196 -0
- package/services/activities/worker.ts +190 -0
- package/services/collator/README.md +102 -0
- package/services/collator/index.ts +182 -0
- package/services/compiler/deployer.ts +432 -0
- package/services/compiler/index.ts +98 -0
- package/services/compiler/validator.ts +154 -0
- package/services/connector/clients/ioredis.ts +57 -0
- package/services/connector/clients/redis.ts +72 -0
- package/services/connector/index.ts +44 -0
- package/services/dimension/README.md +73 -0
- package/services/dimension/index.ts +39 -0
- package/services/durable/asyncLocalStorage.ts +3 -0
- package/services/durable/client.ts +116 -0
- package/services/durable/connection.ts +50 -0
- package/services/durable/factory.ts +124 -0
- package/services/durable/handle.ts +43 -0
- package/services/durable/index.ts +60 -0
- package/services/durable/native.ts +46 -0
- package/services/durable/worker.ts +254 -0
- package/services/durable/workflow.ts +136 -0
- package/services/engine/index.ts +615 -0
- package/services/hotmesh/index.ts +182 -0
- package/services/logger/index.ts +79 -0
- package/services/mapper/index.ts +84 -0
- package/services/pipe/functions/array.ts +87 -0
- package/services/pipe/functions/bitwise.ts +27 -0
- package/services/pipe/functions/conditional.ts +31 -0
- package/services/pipe/functions/date.ts +214 -0
- package/services/pipe/functions/index.ts +25 -0
- package/services/pipe/functions/json.ts +11 -0
- package/services/pipe/functions/math.ts +143 -0
- package/services/pipe/functions/number.ts +150 -0
- package/services/pipe/functions/object.ts +79 -0
- package/services/pipe/functions/string.ts +86 -0
- package/services/pipe/functions/symbol.ts +39 -0
- package/services/pipe/functions/unary.ts +19 -0
- package/services/pipe/index.ts +138 -0
- package/services/quorum/index.ts +200 -0
- package/services/reporter/index.ts +379 -0
- package/services/serializer/README.md +10 -0
- package/services/serializer/index.ts +243 -0
- package/services/signaler/store.ts +61 -0
- package/services/signaler/stream.ts +354 -0
- package/services/store/cache.ts +172 -0
- package/services/store/clients/ioredis.ts +123 -0
- package/services/store/clients/redis.ts +169 -0
- package/services/store/index.ts +757 -0
- package/services/stream/clients/ioredis.ts +148 -0
- package/services/stream/clients/redis.ts +144 -0
- package/services/stream/index.ts +57 -0
- package/services/sub/clients/ioredis.ts +83 -0
- package/services/sub/clients/redis.ts +74 -0
- package/services/sub/index.ts +25 -0
- package/services/task/index.ts +86 -0
- package/services/telemetry/index.ts +267 -0
- package/services/worker/index.ts +165 -0
- package/types/activity.ts +115 -0
- package/types/app.ts +20 -0
- package/types/async.ts +7 -0
- package/types/cache.ts +1 -0
- package/types/collator.ts +9 -0
- package/types/durable.ts +81 -0
- package/types/hook.ts +32 -0
- package/types/hotmesh.ts +102 -0
- package/types/index.ts +138 -0
- package/types/ioredisclient.ts +10 -0
- package/types/job.ts +59 -0
- package/types/logger.ts +6 -0
- package/types/map.ts +5 -0
- package/types/ms.d.ts +7 -0
- package/types/pipe.ts +7 -0
- package/types/quorum.ts +59 -0
- package/types/redis.ts +27 -0
- package/types/redisclient.ts +29 -0
- package/types/serializer.ts +38 -0
- package/types/stats.ts +100 -0
- package/types/stream.ts +75 -0
- package/types/telemetry.ts +15 -0
- package/types/transition.ts +20 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Logger } from 'winston';
|
|
2
|
+
import { ILogger } from '../../types/logger';
|
|
3
|
+
declare class LoggerService implements ILogger {
|
|
4
|
+
private appId;
|
|
5
|
+
private instanceId;
|
|
6
|
+
private name;
|
|
7
|
+
private logLevel;
|
|
8
|
+
private logger;
|
|
9
|
+
constructor(appId?: string, instanceId?: string, name?: string, logLevel?: string, customLogger?: Logger);
|
|
10
|
+
private createDefaultLogger;
|
|
11
|
+
info(message: string, ...meta: any[]): void;
|
|
12
|
+
error(message: string, ...meta: any[]): void;
|
|
13
|
+
warn(message: string, ...meta: any[]): void;
|
|
14
|
+
debug(message: string, ...meta: any[]): void;
|
|
15
|
+
tagify(obj: Record<string, unknown>): string;
|
|
16
|
+
}
|
|
17
|
+
export { LoggerService, ILogger };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoggerService = void 0;
|
|
4
|
+
const winston_1 = require("winston");
|
|
5
|
+
class LoggerService {
|
|
6
|
+
constructor(appId = 'appId', instanceId = 'instanceId', name = 'name', logLevel = 'info', customLogger) {
|
|
7
|
+
this.appId = appId;
|
|
8
|
+
this.instanceId = instanceId;
|
|
9
|
+
this.name = name;
|
|
10
|
+
this.logLevel = logLevel;
|
|
11
|
+
this.logger = customLogger || this.createDefaultLogger();
|
|
12
|
+
}
|
|
13
|
+
createDefaultLogger() {
|
|
14
|
+
return (0, winston_1.createLogger)({
|
|
15
|
+
level: this.logLevel,
|
|
16
|
+
format: winston_1.format.combine(winston_1.format.colorize(), winston_1.format.timestamp(), winston_1.format.printf((info) => {
|
|
17
|
+
const { timestamp, level, message } = info;
|
|
18
|
+
// Extract the object from the `info` object's `Symbol(splat)` field
|
|
19
|
+
const symbols = Object.getOwnPropertySymbols(info);
|
|
20
|
+
const splatSymbol = symbols.find(symbol => symbol.toString() === 'Symbol(splat)');
|
|
21
|
+
let splatData = {};
|
|
22
|
+
if (splatSymbol) {
|
|
23
|
+
splatData = info[splatSymbol][0] || {};
|
|
24
|
+
}
|
|
25
|
+
// Pass it to the `tagify` method
|
|
26
|
+
const tags = this.tagify(splatData);
|
|
27
|
+
return `${timestamp} [${level}] [${this.name || this.appId}:${this.instanceId}] ${message} ${tags}`;
|
|
28
|
+
})),
|
|
29
|
+
transports: [new winston_1.transports.Console()],
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
info(message, ...meta) {
|
|
33
|
+
this.logger.info(message, ...meta);
|
|
34
|
+
}
|
|
35
|
+
error(message, ...meta) {
|
|
36
|
+
this.logger.error(message, ...meta);
|
|
37
|
+
}
|
|
38
|
+
warn(message, ...meta) {
|
|
39
|
+
this.logger.warn(message, ...meta);
|
|
40
|
+
}
|
|
41
|
+
debug(message, ...meta) {
|
|
42
|
+
this.logger.debug(message, ...meta);
|
|
43
|
+
}
|
|
44
|
+
tagify(obj) {
|
|
45
|
+
if (!obj) {
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
const tags = [];
|
|
49
|
+
try {
|
|
50
|
+
Object.entries(obj).forEach(([key, val]) => {
|
|
51
|
+
let value = val;
|
|
52
|
+
if (typeof val === 'function') {
|
|
53
|
+
val = val();
|
|
54
|
+
}
|
|
55
|
+
if (val instanceof Date) {
|
|
56
|
+
value = val.toISOString();
|
|
57
|
+
}
|
|
58
|
+
else if (typeof val === 'object' && val !== null) {
|
|
59
|
+
value = JSON.stringify(val);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
value = value ? value.toString() : value;
|
|
63
|
+
}
|
|
64
|
+
tags.push(`${key}:${value}`);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
this.error('tagify-error', err);
|
|
69
|
+
}
|
|
70
|
+
return tags.join(' ');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.LoggerService = LoggerService;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { JobState } from "../../types/job";
|
|
2
|
+
import { TransitionRule } from "../../types/transition";
|
|
3
|
+
import { StreamCode } from "../../types";
|
|
4
|
+
declare class MapperService {
|
|
5
|
+
private rules;
|
|
6
|
+
private data;
|
|
7
|
+
constructor(rules: Record<string, unknown>, data: JobState);
|
|
8
|
+
mapRules(): Record<string, unknown>;
|
|
9
|
+
private traverseRules;
|
|
10
|
+
/**
|
|
11
|
+
* resolve a pipe expression of the form: { @pipe: [["{data.foo.bar}", 2, false, "hello world"]] }
|
|
12
|
+
* @param value
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
private pipe;
|
|
16
|
+
/**
|
|
17
|
+
* resolve a simple mapping expression in the form: "{data.foo.bar}" or 2 or false or "hello world"
|
|
18
|
+
* @param value
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
private resolve;
|
|
22
|
+
static evaluate(transitionRule: TransitionRule | boolean, context: JobState, code: StreamCode): boolean;
|
|
23
|
+
}
|
|
24
|
+
export { MapperService };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MapperService = void 0;
|
|
4
|
+
const pipe_1 = require("../pipe");
|
|
5
|
+
class MapperService {
|
|
6
|
+
constructor(rules, data) {
|
|
7
|
+
this.rules = rules;
|
|
8
|
+
this.data = data;
|
|
9
|
+
}
|
|
10
|
+
mapRules() {
|
|
11
|
+
return this.traverseRules(this.rules);
|
|
12
|
+
}
|
|
13
|
+
traverseRules(rules) {
|
|
14
|
+
if (typeof rules === 'object' && '@pipe' in rules) {
|
|
15
|
+
return this.pipe(rules['@pipe']);
|
|
16
|
+
}
|
|
17
|
+
if (typeof rules === 'object' && rules !== null) {
|
|
18
|
+
const mappedRules = {};
|
|
19
|
+
for (const key in rules) {
|
|
20
|
+
if (Object.prototype.hasOwnProperty.call(rules, key)) {
|
|
21
|
+
mappedRules[key] = this.traverseRules(rules[key]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return mappedRules;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return this.resolve(rules);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* resolve a pipe expression of the form: { @pipe: [["{data.foo.bar}", 2, false, "hello world"]] }
|
|
32
|
+
* @param value
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
pipe(value) {
|
|
36
|
+
const pipe = new pipe_1.Pipe(value, this.data);
|
|
37
|
+
return pipe.process();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* resolve a simple mapping expression in the form: "{data.foo.bar}" or 2 or false or "hello world"
|
|
41
|
+
* @param value
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
resolve(value) {
|
|
45
|
+
const pipe = new pipe_1.Pipe([[value]], this.data);
|
|
46
|
+
return pipe.process();
|
|
47
|
+
}
|
|
48
|
+
static evaluate(transitionRule, context, code) {
|
|
49
|
+
if (typeof transitionRule === 'boolean') {
|
|
50
|
+
return transitionRule;
|
|
51
|
+
}
|
|
52
|
+
if (code.toString() === (transitionRule.code || 200).toString()) {
|
|
53
|
+
const orGate = transitionRule.gate === 'or';
|
|
54
|
+
let allAreTrue = true;
|
|
55
|
+
let someAreTrue = false;
|
|
56
|
+
transitionRule.match.forEach(({ expected, actual }) => {
|
|
57
|
+
if ((orGate && !someAreTrue) || (!orGate && allAreTrue)) {
|
|
58
|
+
const result = pipe_1.Pipe.resolve(actual, context) === expected;
|
|
59
|
+
if (orGate && result) {
|
|
60
|
+
someAreTrue = true;
|
|
61
|
+
}
|
|
62
|
+
else if (!orGate && !result) {
|
|
63
|
+
allAreTrue = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return orGate ? someAreTrue : allAreTrue;
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.MapperService = MapperService;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare class ArrayHandler {
|
|
2
|
+
get(array: any[], index: number): any;
|
|
3
|
+
concat(array1: any[], array2: any[]): any[];
|
|
4
|
+
every(array: any[], callback: (value: any, index: number, array: any[]) => boolean): boolean;
|
|
5
|
+
filter(array: any[], callback: (value: any, index: number, array: any[]) => boolean): any[];
|
|
6
|
+
find(array: any[], callback: (value: any, index: number, array: any[]) => boolean): any;
|
|
7
|
+
findIndex(array: any[], callback: (value: any, index: number, array: any[]) => boolean): number;
|
|
8
|
+
forEach(array: any[], callback: (value: any, index: number, array: any[]) => void): void;
|
|
9
|
+
indexOf(array: any[], searchElement: any, fromIndex?: number): number;
|
|
10
|
+
join(array: any[], separator: string): string;
|
|
11
|
+
lastIndexOf(array: any[], searchElement: any, fromIndex?: number): number;
|
|
12
|
+
map(array: any[], callback: (value: any, index: number, array: any[]) => any): any[];
|
|
13
|
+
pop(array: any[]): any;
|
|
14
|
+
push(array: any[], ...items: any[]): number;
|
|
15
|
+
reduce(array: any[], callback: (accumulator: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any;
|
|
16
|
+
reverse(array: any[]): any[];
|
|
17
|
+
shift(array: any[]): any;
|
|
18
|
+
slice(array: any[], start?: number, end?: number): any[];
|
|
19
|
+
some(array: any[], callback: (value: any, index: number, array: any[]) => boolean): boolean;
|
|
20
|
+
sort(array: any[], compareFunction?: (a: any, b: any) => number): any[];
|
|
21
|
+
splice(array: any[], start: number, deleteCount?: number, ...items: any[]): any[];
|
|
22
|
+
unshift(array: any[], ...items: any[]): number;
|
|
23
|
+
}
|
|
24
|
+
export { ArrayHandler };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArrayHandler = void 0;
|
|
4
|
+
class ArrayHandler {
|
|
5
|
+
get(array, index) {
|
|
6
|
+
return array[index];
|
|
7
|
+
}
|
|
8
|
+
concat(array1, array2) {
|
|
9
|
+
return array1.concat(array2);
|
|
10
|
+
}
|
|
11
|
+
every(array, callback) {
|
|
12
|
+
return array.every(callback);
|
|
13
|
+
}
|
|
14
|
+
filter(array, callback) {
|
|
15
|
+
return array.filter(callback);
|
|
16
|
+
}
|
|
17
|
+
find(array, callback) {
|
|
18
|
+
return array.find(callback);
|
|
19
|
+
}
|
|
20
|
+
findIndex(array, callback) {
|
|
21
|
+
return array.findIndex(callback);
|
|
22
|
+
}
|
|
23
|
+
forEach(array, callback) {
|
|
24
|
+
array.forEach(callback);
|
|
25
|
+
}
|
|
26
|
+
indexOf(array, searchElement, fromIndex) {
|
|
27
|
+
return array.indexOf(searchElement, fromIndex);
|
|
28
|
+
}
|
|
29
|
+
join(array, separator) {
|
|
30
|
+
return array.join(separator);
|
|
31
|
+
}
|
|
32
|
+
lastIndexOf(array, searchElement, fromIndex) {
|
|
33
|
+
return array.lastIndexOf(searchElement, fromIndex);
|
|
34
|
+
}
|
|
35
|
+
map(array, callback) {
|
|
36
|
+
return array.map(callback);
|
|
37
|
+
}
|
|
38
|
+
pop(array) {
|
|
39
|
+
return array.pop();
|
|
40
|
+
}
|
|
41
|
+
push(array, ...items) {
|
|
42
|
+
return array.push(...items);
|
|
43
|
+
}
|
|
44
|
+
reduce(array, callback, initialValue) {
|
|
45
|
+
return array.reduce(callback, initialValue);
|
|
46
|
+
}
|
|
47
|
+
reverse(array) {
|
|
48
|
+
return array.reverse();
|
|
49
|
+
}
|
|
50
|
+
shift(array) {
|
|
51
|
+
return array.shift();
|
|
52
|
+
}
|
|
53
|
+
slice(array, start, end) {
|
|
54
|
+
return array.slice(start, end);
|
|
55
|
+
}
|
|
56
|
+
some(array, callback) {
|
|
57
|
+
return array.some(callback);
|
|
58
|
+
}
|
|
59
|
+
sort(array, compareFunction) {
|
|
60
|
+
return array.sort(compareFunction);
|
|
61
|
+
}
|
|
62
|
+
splice(array, start, deleteCount, ...items) {
|
|
63
|
+
return array.splice(start, deleteCount, ...items);
|
|
64
|
+
}
|
|
65
|
+
unshift(array, ...items) {
|
|
66
|
+
return array.unshift(...items);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.ArrayHandler = ArrayHandler;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare class BitwiseHandler {
|
|
2
|
+
and(a: number, b: number): number;
|
|
3
|
+
or(a: number, b: number): number;
|
|
4
|
+
xor(a: number, b: number): number;
|
|
5
|
+
leftShift(a: number, b: number): number;
|
|
6
|
+
rightShift(a: number, b: number): number;
|
|
7
|
+
unsignedRightShift(a: number, b: number): number;
|
|
8
|
+
}
|
|
9
|
+
export { BitwiseHandler };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BitwiseHandler = void 0;
|
|
4
|
+
class BitwiseHandler {
|
|
5
|
+
and(a, b) {
|
|
6
|
+
return a & b;
|
|
7
|
+
}
|
|
8
|
+
or(a, b) {
|
|
9
|
+
return a | b;
|
|
10
|
+
}
|
|
11
|
+
xor(a, b) {
|
|
12
|
+
return a ^ b;
|
|
13
|
+
}
|
|
14
|
+
leftShift(a, b) {
|
|
15
|
+
return a << b;
|
|
16
|
+
}
|
|
17
|
+
rightShift(a, b) {
|
|
18
|
+
return a >> b;
|
|
19
|
+
}
|
|
20
|
+
unsignedRightShift(a, b) {
|
|
21
|
+
return a >>> b;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.BitwiseHandler = BitwiseHandler;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare class ConditionalHandler {
|
|
2
|
+
ternary(condition: boolean, valueIfTrue: any, valueIfFalse: any): any;
|
|
3
|
+
equality(value1: any, value2: any): boolean;
|
|
4
|
+
strict_equality(value1: any, value2: any): boolean;
|
|
5
|
+
greater_than(value1: number, value2: number): boolean;
|
|
6
|
+
less_than(value1: number, value2: number): boolean;
|
|
7
|
+
greater_than_or_equal(value1: number, value2: number): boolean;
|
|
8
|
+
less_than_or_equal(value1: number, value2: number): boolean;
|
|
9
|
+
}
|
|
10
|
+
export { ConditionalHandler };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConditionalHandler = void 0;
|
|
4
|
+
class ConditionalHandler {
|
|
5
|
+
ternary(condition, valueIfTrue, valueIfFalse) {
|
|
6
|
+
return condition ? valueIfTrue : valueIfFalse;
|
|
7
|
+
}
|
|
8
|
+
equality(value1, value2) {
|
|
9
|
+
return value1 == value2;
|
|
10
|
+
}
|
|
11
|
+
strict_equality(value1, value2) {
|
|
12
|
+
return value1 === value2;
|
|
13
|
+
}
|
|
14
|
+
greater_than(value1, value2) {
|
|
15
|
+
return value1 > value2;
|
|
16
|
+
}
|
|
17
|
+
less_than(value1, value2) {
|
|
18
|
+
return value1 < value2;
|
|
19
|
+
}
|
|
20
|
+
greater_than_or_equal(value1, value2) {
|
|
21
|
+
return value1 >= value2;
|
|
22
|
+
}
|
|
23
|
+
less_than_or_equal(value1, value2) {
|
|
24
|
+
return value1 <= value2;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ConditionalHandler = ConditionalHandler;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
type DateInput = Date | string | number;
|
|
2
|
+
declare class DateHandler {
|
|
3
|
+
/**
|
|
4
|
+
* It is so common in mapping operations to use a string (ISO) date as input. This helper
|
|
5
|
+
* method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
|
|
6
|
+
* code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
|
|
7
|
+
* @param input
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
static getDateInstance(input: DateInput): Date;
|
|
11
|
+
fromISOString(isoString: string): Date;
|
|
12
|
+
now(): number;
|
|
13
|
+
parse(dateString: string): number;
|
|
14
|
+
getDate(date: DateInput): number;
|
|
15
|
+
getDay(date: DateInput): number;
|
|
16
|
+
getFullYear(date: DateInput): number;
|
|
17
|
+
getHours(date: DateInput): number;
|
|
18
|
+
getMilliseconds(date: DateInput): number;
|
|
19
|
+
getMinutes(date: DateInput): number;
|
|
20
|
+
getMonth(date: DateInput): number;
|
|
21
|
+
getSeconds(date: DateInput): number;
|
|
22
|
+
getTime(date: DateInput): number;
|
|
23
|
+
getTimezoneOffset(date: DateInput): number;
|
|
24
|
+
getUTCDate(date: DateInput): number;
|
|
25
|
+
getUTCDay(date: DateInput): number;
|
|
26
|
+
getUTCFullYear(date: DateInput): number;
|
|
27
|
+
getUTCHours(date: DateInput): number;
|
|
28
|
+
getUTCMilliseconds(date: DateInput): number;
|
|
29
|
+
getUTCMinutes(date: DateInput): number;
|
|
30
|
+
getUTCMonth(date: DateInput): number;
|
|
31
|
+
getUTCSeconds(date: DateInput): number;
|
|
32
|
+
setMilliseconds(date: DateInput, ms: number): number;
|
|
33
|
+
setMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number;
|
|
34
|
+
setMonth(date: DateInput, month: number, day?: number): number;
|
|
35
|
+
setSeconds(date: DateInput, seconds: number, ms?: number): number;
|
|
36
|
+
setTime(date: DateInput, time: number): number;
|
|
37
|
+
setUTCDate(date: DateInput, day: number): number;
|
|
38
|
+
setUTCFullYear(date: DateInput, year: number, month?: number, day?: number): number;
|
|
39
|
+
setUTCHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number;
|
|
40
|
+
setUTCMilliseconds(date: DateInput, ms: number): number;
|
|
41
|
+
setUTCMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number;
|
|
42
|
+
setUTCMonth(date: DateInput, month: number, day?: number): number;
|
|
43
|
+
setUTCSeconds(date: DateInput, seconds: number, ms?: number): number;
|
|
44
|
+
setDate(date: DateInput, day: number): number;
|
|
45
|
+
setFullYear(date: DateInput, year: number, month?: number, day?: number): number;
|
|
46
|
+
setHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number;
|
|
47
|
+
toDateString(date: DateInput): string;
|
|
48
|
+
toISOString(date: DateInput): string;
|
|
49
|
+
toJSON(date: DateInput): string;
|
|
50
|
+
toLocaleDateString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
51
|
+
toLocaleString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
52
|
+
toLocaleTimeString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
|
|
53
|
+
toString(date: DateInput): string;
|
|
54
|
+
UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
|
|
55
|
+
valueOf(date: DateInput): number;
|
|
56
|
+
}
|
|
57
|
+
export { DateHandler };
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateHandler = void 0;
|
|
4
|
+
class DateHandler {
|
|
5
|
+
/**
|
|
6
|
+
* It is so common in mapping operations to use a string (ISO) date as input. This helper
|
|
7
|
+
* method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
|
|
8
|
+
* code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
|
|
9
|
+
* @param input
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
static getDateInstance(input) {
|
|
13
|
+
const ISO_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?$/;
|
|
14
|
+
if (typeof input === 'string') {
|
|
15
|
+
if (ISO_REGEX.test(input)) {
|
|
16
|
+
return new Date(input);
|
|
17
|
+
}
|
|
18
|
+
const milliseconds = parseInt(input, 10);
|
|
19
|
+
if (!isNaN(milliseconds)) {
|
|
20
|
+
return new Date(milliseconds);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (input instanceof Date) {
|
|
24
|
+
return input;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof input === 'number') {
|
|
27
|
+
return new Date(input);
|
|
28
|
+
}
|
|
29
|
+
throw new Error("Invalid date format");
|
|
30
|
+
}
|
|
31
|
+
fromISOString(isoString) {
|
|
32
|
+
return new Date(isoString);
|
|
33
|
+
}
|
|
34
|
+
now() {
|
|
35
|
+
return Date.now();
|
|
36
|
+
}
|
|
37
|
+
parse(dateString) {
|
|
38
|
+
return Date.parse(dateString);
|
|
39
|
+
}
|
|
40
|
+
getDate(date) {
|
|
41
|
+
return DateHandler.getDateInstance(date).getDate();
|
|
42
|
+
}
|
|
43
|
+
getDay(date) {
|
|
44
|
+
return DateHandler.getDateInstance(date).getDay();
|
|
45
|
+
}
|
|
46
|
+
getFullYear(date) {
|
|
47
|
+
return DateHandler.getDateInstance(date).getFullYear();
|
|
48
|
+
}
|
|
49
|
+
getHours(date) {
|
|
50
|
+
return DateHandler.getDateInstance(date).getHours();
|
|
51
|
+
}
|
|
52
|
+
getMilliseconds(date) {
|
|
53
|
+
return DateHandler.getDateInstance(date).getMilliseconds();
|
|
54
|
+
}
|
|
55
|
+
getMinutes(date) {
|
|
56
|
+
return DateHandler.getDateInstance(date).getMinutes();
|
|
57
|
+
}
|
|
58
|
+
getMonth(date) {
|
|
59
|
+
return DateHandler.getDateInstance(date).getMonth();
|
|
60
|
+
}
|
|
61
|
+
getSeconds(date) {
|
|
62
|
+
return DateHandler.getDateInstance(date).getSeconds();
|
|
63
|
+
}
|
|
64
|
+
getTime(date) {
|
|
65
|
+
return DateHandler.getDateInstance(date).getTime();
|
|
66
|
+
}
|
|
67
|
+
getTimezoneOffset(date) {
|
|
68
|
+
return DateHandler.getDateInstance(date).getTimezoneOffset();
|
|
69
|
+
}
|
|
70
|
+
getUTCDate(date) {
|
|
71
|
+
return DateHandler.getDateInstance(date).getUTCDate();
|
|
72
|
+
}
|
|
73
|
+
getUTCDay(date) {
|
|
74
|
+
return DateHandler.getDateInstance(date).getUTCDay();
|
|
75
|
+
}
|
|
76
|
+
getUTCFullYear(date) {
|
|
77
|
+
return DateHandler.getDateInstance(date).getUTCFullYear();
|
|
78
|
+
}
|
|
79
|
+
getUTCHours(date) {
|
|
80
|
+
return DateHandler.getDateInstance(date).getUTCHours();
|
|
81
|
+
}
|
|
82
|
+
getUTCMilliseconds(date) {
|
|
83
|
+
return DateHandler.getDateInstance(date).getUTCMilliseconds();
|
|
84
|
+
}
|
|
85
|
+
getUTCMinutes(date) {
|
|
86
|
+
return DateHandler.getDateInstance(date).getUTCMinutes();
|
|
87
|
+
}
|
|
88
|
+
getUTCMonth(date) {
|
|
89
|
+
return DateHandler.getDateInstance(date).getUTCMonth();
|
|
90
|
+
}
|
|
91
|
+
getUTCSeconds(date) {
|
|
92
|
+
return DateHandler.getDateInstance(date).getUTCSeconds();
|
|
93
|
+
}
|
|
94
|
+
setMilliseconds(date, ms) {
|
|
95
|
+
return DateHandler.getDateInstance(date).setMilliseconds(ms);
|
|
96
|
+
}
|
|
97
|
+
setMinutes(date, minutes, seconds, ms) {
|
|
98
|
+
return DateHandler.getDateInstance(date).setMinutes(minutes, seconds, ms);
|
|
99
|
+
}
|
|
100
|
+
setMonth(date, month, day) {
|
|
101
|
+
return DateHandler.getDateInstance(date).setMonth(month, day);
|
|
102
|
+
}
|
|
103
|
+
setSeconds(date, seconds, ms) {
|
|
104
|
+
return DateHandler.getDateInstance(date).setSeconds(seconds, ms);
|
|
105
|
+
}
|
|
106
|
+
setTime(date, time) {
|
|
107
|
+
return DateHandler.getDateInstance(date).setTime(time);
|
|
108
|
+
}
|
|
109
|
+
setUTCDate(date, day) {
|
|
110
|
+
return DateHandler.getDateInstance(date).setUTCDate(day);
|
|
111
|
+
}
|
|
112
|
+
setUTCFullYear(date, year, month, day) {
|
|
113
|
+
return DateHandler.getDateInstance(date).setUTCFullYear(year, month, day);
|
|
114
|
+
}
|
|
115
|
+
setUTCHours(date, hours, minutes, seconds, ms) {
|
|
116
|
+
return DateHandler.getDateInstance(date).setUTCHours(hours, minutes, seconds, ms);
|
|
117
|
+
}
|
|
118
|
+
setUTCMilliseconds(date, ms) {
|
|
119
|
+
return DateHandler.getDateInstance(date).setUTCMilliseconds(ms);
|
|
120
|
+
}
|
|
121
|
+
setUTCMinutes(date, minutes, seconds, ms) {
|
|
122
|
+
return DateHandler.getDateInstance(date).setUTCMinutes(minutes, seconds, ms);
|
|
123
|
+
}
|
|
124
|
+
setUTCMonth(date, month, day) {
|
|
125
|
+
return DateHandler.getDateInstance(date).setUTCMonth(month, day);
|
|
126
|
+
}
|
|
127
|
+
setUTCSeconds(date, seconds, ms) {
|
|
128
|
+
return DateHandler.getDateInstance(date).setUTCSeconds(seconds, ms);
|
|
129
|
+
}
|
|
130
|
+
setDate(date, day) {
|
|
131
|
+
return DateHandler.getDateInstance(date).setDate(day);
|
|
132
|
+
}
|
|
133
|
+
setFullYear(date, year, month, day) {
|
|
134
|
+
return DateHandler.getDateInstance(date).setFullYear(year, month, day);
|
|
135
|
+
}
|
|
136
|
+
setHours(date, hours, minutes, seconds, ms) {
|
|
137
|
+
return DateHandler.getDateInstance(date).setHours(hours, minutes, seconds, ms);
|
|
138
|
+
}
|
|
139
|
+
toDateString(date) {
|
|
140
|
+
return DateHandler.getDateInstance(date).toDateString();
|
|
141
|
+
}
|
|
142
|
+
toISOString(date) {
|
|
143
|
+
return DateHandler.getDateInstance(date).toISOString();
|
|
144
|
+
}
|
|
145
|
+
toJSON(date) {
|
|
146
|
+
return DateHandler.getDateInstance(date).toJSON();
|
|
147
|
+
}
|
|
148
|
+
toLocaleDateString(date, locales, options) {
|
|
149
|
+
return DateHandler.getDateInstance(date).toLocaleDateString(locales, options);
|
|
150
|
+
}
|
|
151
|
+
toLocaleString(date, locales, options) {
|
|
152
|
+
return DateHandler.getDateInstance(date).toLocaleString(locales, options);
|
|
153
|
+
}
|
|
154
|
+
toLocaleTimeString(date, locales, options) {
|
|
155
|
+
return DateHandler.getDateInstance(date).toLocaleTimeString(locales, options);
|
|
156
|
+
}
|
|
157
|
+
toString(date) {
|
|
158
|
+
return DateHandler.getDateInstance(date).toString();
|
|
159
|
+
}
|
|
160
|
+
UTC(year, month, date, hours, minutes, seconds, ms) {
|
|
161
|
+
return Date.UTC(year, month, date, hours, minutes, seconds, ms);
|
|
162
|
+
}
|
|
163
|
+
valueOf(date) {
|
|
164
|
+
return DateHandler.getDateInstance(date).valueOf();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.DateHandler = DateHandler;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ArrayHandler } from './array';
|
|
2
|
+
import { BitwiseHandler } from './bitwise';
|
|
3
|
+
import { ConditionalHandler } from './conditional';
|
|
4
|
+
import { DateHandler } from './date';
|
|
5
|
+
import { JsonHandler } from './json';
|
|
6
|
+
import { MathHandler } from './math';
|
|
7
|
+
import { NumberHandler } from './number';
|
|
8
|
+
import { ObjectHandler } from './object';
|
|
9
|
+
import { StringHandler } from './string';
|
|
10
|
+
import { SymbolHandler } from './symbol';
|
|
11
|
+
import { UnaryHandler } from './unary';
|
|
12
|
+
declare const _default: {
|
|
13
|
+
array: ArrayHandler;
|
|
14
|
+
bitwise: BitwiseHandler;
|
|
15
|
+
conditional: ConditionalHandler;
|
|
16
|
+
date: DateHandler;
|
|
17
|
+
json: JsonHandler;
|
|
18
|
+
math: MathHandler;
|
|
19
|
+
number: NumberHandler;
|
|
20
|
+
object: ObjectHandler;
|
|
21
|
+
string: StringHandler;
|
|
22
|
+
symbol: SymbolHandler;
|
|
23
|
+
unary: UnaryHandler;
|
|
24
|
+
};
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const array_1 = require("./array");
|
|
4
|
+
const bitwise_1 = require("./bitwise");
|
|
5
|
+
const conditional_1 = require("./conditional");
|
|
6
|
+
const date_1 = require("./date");
|
|
7
|
+
const json_1 = require("./json");
|
|
8
|
+
const math_1 = require("./math");
|
|
9
|
+
const number_1 = require("./number");
|
|
10
|
+
const object_1 = require("./object");
|
|
11
|
+
const string_1 = require("./string");
|
|
12
|
+
const symbol_1 = require("./symbol");
|
|
13
|
+
const unary_1 = require("./unary");
|
|
14
|
+
exports.default = {
|
|
15
|
+
array: new array_1.ArrayHandler(),
|
|
16
|
+
bitwise: new bitwise_1.BitwiseHandler(),
|
|
17
|
+
conditional: new conditional_1.ConditionalHandler(),
|
|
18
|
+
date: new date_1.DateHandler(),
|
|
19
|
+
json: new json_1.JsonHandler(),
|
|
20
|
+
math: new math_1.MathHandler(),
|
|
21
|
+
number: new number_1.NumberHandler(),
|
|
22
|
+
object: new object_1.ObjectHandler(),
|
|
23
|
+
string: new string_1.StringHandler(),
|
|
24
|
+
symbol: new symbol_1.SymbolHandler(),
|
|
25
|
+
unary: new unary_1.UnaryHandler(),
|
|
26
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare class JsonHandler {
|
|
2
|
+
stringify(value: any, replacer?: (this: any, key: string, value: any) => any | (number | string)[] | null, space?: string | number): string;
|
|
3
|
+
parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;
|
|
4
|
+
}
|
|
5
|
+
export { JsonHandler };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonHandler = void 0;
|
|
4
|
+
class JsonHandler {
|
|
5
|
+
stringify(value, replacer, space) {
|
|
6
|
+
return JSON.stringify(value, replacer, space);
|
|
7
|
+
}
|
|
8
|
+
parse(text, reviver) {
|
|
9
|
+
return JSON.parse(text, reviver);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.JsonHandler = JsonHandler;
|