@hotmeshio/hotmesh 0.0.54 → 0.0.56
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 +0 -3
- package/build/modules/enums.js +1 -10
- package/build/modules/key.d.ts +0 -38
- package/build/modules/key.js +4 -46
- package/build/modules/utils.d.ts +0 -8
- package/build/modules/utils.js +0 -14
- package/build/package.json +11 -4
- package/build/services/activities/activity.d.ts +0 -28
- package/build/services/activities/activity.js +1 -46
- package/build/services/activities/await.js +0 -4
- package/build/services/activities/cycle.d.ts +0 -7
- package/build/services/activities/cycle.js +1 -16
- package/build/services/activities/hook.d.ts +0 -6
- package/build/services/activities/hook.js +2 -12
- package/build/services/activities/interrupt.js +0 -8
- package/build/services/activities/signal.d.ts +0 -6
- package/build/services/activities/signal.js +0 -15
- package/build/services/activities/trigger.d.ts +0 -4
- package/build/services/activities/trigger.js +1 -7
- package/build/services/activities/worker.js +0 -4
- package/build/services/collator/index.d.ts +0 -70
- package/build/services/collator/index.js +1 -91
- package/build/services/compiler/deployer.js +6 -38
- package/build/services/compiler/index.d.ts +0 -15
- package/build/services/compiler/index.js +0 -20
- package/build/services/compiler/validator.d.ts +0 -3
- package/build/services/compiler/validator.js +0 -25
- package/build/services/connector/clients/ioredis.d.ts +2 -2
- package/build/services/connector/clients/ioredis.js +0 -2
- package/build/services/connector/clients/redis.d.ts +4 -4
- package/build/services/connector/clients/redis.js +1 -3
- package/build/services/connector/index.d.ts +1 -1
- package/build/services/connector/index.js +0 -2
- package/build/services/durable/client.d.ts +1 -26
- package/build/services/durable/client.js +0 -56
- package/build/services/durable/exporter.d.ts +0 -22
- package/build/services/durable/exporter.js +1 -30
- package/build/services/durable/handle.d.ts +0 -36
- package/build/services/durable/handle.js +0 -46
- package/build/services/durable/index.d.ts +0 -4
- package/build/services/durable/index.js +0 -4
- package/build/services/durable/schemas/factory.d.ts +0 -29
- package/build/services/durable/schemas/factory.js +0 -29
- package/build/services/durable/search.d.ts +1 -36
- package/build/services/durable/search.js +57 -56
- package/build/services/durable/worker.js +2 -22
- package/build/services/durable/workflow.d.ts +0 -114
- package/build/services/durable/workflow.js +4 -144
- package/build/services/engine/index.d.ts +1 -6
- package/build/services/engine/index.js +1 -43
- package/build/services/exporter/index.d.ts +0 -27
- package/build/services/exporter/index.js +0 -33
- package/build/services/hotmesh/index.d.ts +2 -2
- package/build/services/hotmesh/index.js +1 -9
- package/build/services/logger/index.js +0 -2
- package/build/services/mapper/index.d.ts +0 -14
- package/build/services/mapper/index.js +0 -14
- package/build/services/pipe/functions/date.d.ts +0 -7
- package/build/services/pipe/functions/date.js +0 -7
- package/build/services/pipe/functions/math.js +0 -2
- package/build/services/pipe/index.d.ts +0 -15
- package/build/services/pipe/index.js +2 -23
- package/build/services/quorum/index.d.ts +0 -7
- package/build/services/quorum/index.js +0 -21
- package/build/services/reporter/index.d.ts +0 -5
- package/build/services/reporter/index.js +0 -9
- package/build/services/router/index.d.ts +0 -9
- package/build/services/router/index.js +2 -38
- package/build/services/serializer/index.js +7 -26
- package/build/services/store/cache.d.ts +0 -18
- package/build/services/store/cache.js +0 -18
- package/build/services/store/clients/ioredis.d.ts +1 -1
- package/build/services/store/clients/ioredis.js +0 -1
- package/build/services/store/clients/redis.d.ts +1 -1
- package/build/services/store/index.d.ts +0 -55
- package/build/services/store/index.js +5 -81
- package/build/services/stream/clients/ioredis.d.ts +1 -1
- package/build/services/stream/clients/ioredis.js +1 -4
- package/build/services/stream/clients/redis.d.ts +1 -1
- package/build/services/sub/clients/ioredis.d.ts +1 -1
- package/build/services/sub/clients/redis.d.ts +1 -1
- package/build/services/task/index.d.ts +0 -9
- package/build/services/task/index.js +0 -31
- package/build/services/telemetry/index.d.ts +0 -7
- package/build/services/telemetry/index.js +1 -13
- package/build/services/worker/index.d.ts +0 -4
- package/build/services/worker/index.js +2 -6
- package/build/types/activity.d.ts +0 -81
- package/build/types/durable.d.ts +25 -177
- package/build/types/exporter.d.ts +0 -13
- package/build/types/hotmesh.d.ts +4 -16
- package/build/types/hotmesh.js +0 -3
- package/build/types/index.d.ts +4 -6
- package/build/types/index.js +4 -3
- package/build/types/job.d.ts +1 -86
- package/build/types/pipe.d.ts +0 -65
- package/build/types/quorum.d.ts +15 -10
- package/build/types/redis.d.ts +225 -7
- package/build/types/redis.js +9 -0
- package/build/types/stream.d.ts +0 -58
- package/build/types/stream.js +0 -4
- package/package.json +11 -4
- package/types/durable.ts +121 -3
- package/types/hotmesh.ts +3 -6
- package/types/index.ts +23 -10
- package/types/job.ts +1 -1
- package/types/quorum.ts +22 -0
- package/types/redis.ts +267 -18
- package/build/types/ioredisclient.d.ts +0 -5
- package/build/types/ioredisclient.js +0 -5
- package/build/types/redisclient.d.ts +0 -26
- package/build/types/redisclient.js +0 -2
- package/modules/enums.ts +0 -62
- package/modules/errors.ts +0 -280
- package/modules/key.ts +0 -101
- package/modules/storage.ts +0 -3
- package/modules/utils.ts +0 -242
- package/services/activities/activity.ts +0 -589
- package/services/activities/await.ts +0 -113
- package/services/activities/cycle.ts +0 -115
- package/services/activities/hook.ts +0 -197
- package/services/activities/index.ts +0 -19
- package/services/activities/interrupt.ts +0 -172
- package/services/activities/signal.ts +0 -148
- package/services/activities/trigger.ts +0 -295
- package/services/activities/worker.ts +0 -107
- package/services/collator/README.md +0 -102
- package/services/collator/index.ts +0 -291
- package/services/compiler/deployer.ts +0 -504
- package/services/compiler/index.ts +0 -98
- package/services/compiler/validator.ts +0 -158
- package/services/connector/clients/ioredis.ts +0 -57
- package/services/connector/clients/redis.ts +0 -72
- package/services/connector/index.ts +0 -42
- package/services/durable/client.ts +0 -266
- package/services/durable/connection.ts +0 -10
- package/services/durable/exporter.ts +0 -232
- package/services/durable/handle.ts +0 -160
- package/services/durable/index.ts +0 -27
- package/services/durable/schemas/factory.ts +0 -2358
- package/services/durable/search.ts +0 -196
- package/services/durable/worker.ts +0 -401
- package/services/durable/workflow.ts +0 -557
- package/services/engine/index.ts +0 -761
- package/services/exporter/index.ts +0 -146
- package/services/hotmesh/index.ts +0 -237
- package/services/logger/index.ts +0 -79
- package/services/mapper/index.ts +0 -89
- package/services/pipe/functions/array.ts +0 -78
- package/services/pipe/functions/bitwise.ts +0 -27
- package/services/pipe/functions/conditional.ts +0 -35
- package/services/pipe/functions/date.ts +0 -220
- package/services/pipe/functions/index.ts +0 -27
- package/services/pipe/functions/json.ts +0 -11
- package/services/pipe/functions/logical.ts +0 -11
- package/services/pipe/functions/math.ts +0 -217
- package/services/pipe/functions/number.ts +0 -75
- package/services/pipe/functions/object.ts +0 -98
- package/services/pipe/functions/string.ts +0 -86
- package/services/pipe/functions/symbol.ts +0 -39
- package/services/pipe/functions/unary.ts +0 -19
- package/services/pipe/index.ts +0 -216
- package/services/quorum/index.ts +0 -319
- package/services/reporter/index.ts +0 -387
- package/services/router/index.ts +0 -426
- package/services/serializer/README.md +0 -10
- package/services/serializer/index.ts +0 -285
- package/services/store/cache.ts +0 -172
- package/services/store/clients/ioredis.ts +0 -145
- package/services/store/clients/redis.ts +0 -191
- package/services/store/index.ts +0 -1091
- package/services/stream/clients/ioredis.ts +0 -157
- package/services/stream/clients/redis.ts +0 -158
- package/services/stream/index.ts +0 -58
- package/services/sub/clients/ioredis.ts +0 -83
- package/services/sub/clients/redis.ts +0 -74
- package/services/sub/index.ts +0 -25
- package/services/task/index.ts +0 -250
- package/services/telemetry/index.ts +0 -273
- package/services/worker/index.ts +0 -248
- package/types/ioredisclient.ts +0 -10
- package/types/redisclient.ts +0 -30
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { formatISODate } from "../../../modules/utils";
|
|
2
|
-
|
|
3
|
-
type DateInput = Date | string | number;
|
|
4
|
-
|
|
5
|
-
class DateHandler {
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* It is so common in mapping operations to use a string (ISO) date as input. This helper
|
|
9
|
-
* method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
|
|
10
|
-
* code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
|
|
11
|
-
* @param input
|
|
12
|
-
* @returns
|
|
13
|
-
*/
|
|
14
|
-
static getDateInstance(input: DateInput): Date {
|
|
15
|
-
const ISO_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?$/;
|
|
16
|
-
|
|
17
|
-
if (typeof input === 'string') {
|
|
18
|
-
if (ISO_REGEX.test(input)) {
|
|
19
|
-
return new Date(input);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const milliseconds = parseInt(input, 10);
|
|
23
|
-
if (!isNaN(milliseconds)) {
|
|
24
|
-
return new Date(milliseconds);
|
|
25
|
-
}
|
|
26
|
-
} else if (input instanceof Date) {
|
|
27
|
-
return input;
|
|
28
|
-
} else if (typeof input === 'number') {
|
|
29
|
-
return new Date(input);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
throw new Error("Invalid date format");
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
fromISOString(isoString: string): Date {
|
|
36
|
-
return new Date(isoString);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
now(): number {
|
|
40
|
-
return Date.now();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
parse(dateString: string): number {
|
|
44
|
-
return Date.parse(dateString);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
getDate(date: DateInput): number {
|
|
48
|
-
return DateHandler.getDateInstance(date).getDate();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getDay(date: DateInput): number {
|
|
52
|
-
return DateHandler.getDateInstance(date).getDay();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
getFullYear(date: DateInput): number {
|
|
56
|
-
return DateHandler.getDateInstance(date).getFullYear();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
getHours(date: DateInput): number {
|
|
60
|
-
return DateHandler.getDateInstance(date).getHours();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
getMilliseconds(date: DateInput): number {
|
|
64
|
-
return DateHandler.getDateInstance(date).getMilliseconds();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
getMinutes(date: DateInput): number {
|
|
68
|
-
return DateHandler.getDateInstance(date).getMinutes();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
getMonth(date: DateInput): number {
|
|
72
|
-
return DateHandler.getDateInstance(date).getMonth();
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
getSeconds(date: DateInput): number {
|
|
76
|
-
return DateHandler.getDateInstance(date).getSeconds();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
getTime(date: DateInput): number {
|
|
80
|
-
return DateHandler.getDateInstance(date).getTime();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getTimezoneOffset(date: DateInput): number {
|
|
84
|
-
return DateHandler.getDateInstance(date).getTimezoneOffset();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
getUTCDate(date: DateInput): number {
|
|
88
|
-
return DateHandler.getDateInstance(date).getUTCDate();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
getUTCDay(date: DateInput): number {
|
|
92
|
-
return DateHandler.getDateInstance(date).getUTCDay();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
getUTCFullYear(date: DateInput): number {
|
|
96
|
-
return DateHandler.getDateInstance(date).getUTCFullYear();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
getUTCHours(date: DateInput): number {
|
|
100
|
-
return DateHandler.getDateInstance(date).getUTCHours();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getUTCMilliseconds(date: DateInput): number {
|
|
104
|
-
return DateHandler.getDateInstance(date).getUTCMilliseconds();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
getUTCMinutes(date: DateInput): number {
|
|
108
|
-
return DateHandler.getDateInstance(date).getUTCMinutes();
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
getUTCMonth(date: DateInput): number {
|
|
112
|
-
return DateHandler.getDateInstance(date).getUTCMonth();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
getUTCSeconds(date: DateInput): number {
|
|
116
|
-
return DateHandler.getDateInstance(date).getUTCSeconds();
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
setMilliseconds(date: DateInput, ms: number): number {
|
|
120
|
-
return DateHandler.getDateInstance(date).setMilliseconds(ms);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
setMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number {
|
|
124
|
-
return DateHandler.getDateInstance(date).setMinutes(minutes, seconds, ms);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
setMonth(date: DateInput, month: number, day?: number): number {
|
|
128
|
-
return DateHandler.getDateInstance(date).setMonth(month, day);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
setSeconds(date: DateInput, seconds: number, ms?: number): number {
|
|
132
|
-
return DateHandler.getDateInstance(date).setSeconds(seconds, ms);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
setTime(date: DateInput, time: number): number {
|
|
136
|
-
return DateHandler.getDateInstance(date).setTime(time);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
setUTCDate(date: DateInput, day: number): number {
|
|
140
|
-
return DateHandler.getDateInstance(date).setUTCDate(day);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
setUTCFullYear(date: DateInput, year: number, month?: number, day?: number): number {
|
|
144
|
-
return DateHandler.getDateInstance(date).setUTCFullYear(year, month, day);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
setUTCHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number {
|
|
148
|
-
return DateHandler.getDateInstance(date).setUTCHours(hours, minutes, seconds, ms);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
setUTCMilliseconds(date: DateInput, ms: number): number {
|
|
152
|
-
return DateHandler.getDateInstance(date).setUTCMilliseconds(ms);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
setUTCMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number {
|
|
156
|
-
return DateHandler.getDateInstance(date).setUTCMinutes(minutes, seconds, ms);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
setUTCMonth(date: DateInput, month: number, day?: number): number {
|
|
160
|
-
return DateHandler.getDateInstance(date).setUTCMonth(month, day);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
setUTCSeconds(date: DateInput, seconds: number, ms?: number): number {
|
|
164
|
-
return DateHandler.getDateInstance(date).setUTCSeconds(seconds, ms);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
setDate(date: DateInput, day: number): number {
|
|
168
|
-
return DateHandler.getDateInstance(date).setDate(day);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
setFullYear(date: DateInput, year: number, month?: number, day?: number): number {
|
|
172
|
-
return DateHandler.getDateInstance(date).setFullYear(year, month, day);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
setHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number {
|
|
176
|
-
return DateHandler.getDateInstance(date).setHours(hours, minutes, seconds, ms);
|
|
177
|
-
}
|
|
178
|
-
toDateString(date: DateInput): string {
|
|
179
|
-
return DateHandler.getDateInstance(date).toDateString();
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
toISOString(date: DateInput): string {
|
|
183
|
-
return DateHandler.getDateInstance(date).toISOString();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
toISOXString(date?: DateInput): string {
|
|
187
|
-
return formatISODate(date ? DateHandler.getDateInstance(date) : new Date());
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
toJSON(date: DateInput): string {
|
|
191
|
-
return DateHandler.getDateInstance(date).toJSON();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
toLocaleDateString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string {
|
|
195
|
-
return DateHandler.getDateInstance(date).toLocaleDateString(locales, options);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
toLocaleString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string {
|
|
199
|
-
return DateHandler.getDateInstance(date).toLocaleString(locales, options);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
toLocaleTimeString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string {
|
|
203
|
-
return DateHandler.getDateInstance(date).toLocaleTimeString(locales, options);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
toString(date: DateInput): string {
|
|
207
|
-
return DateHandler.getDateInstance(date).toString();
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number {
|
|
211
|
-
return Date.UTC(year, month, date, hours, minutes, seconds, ms);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
valueOf(date: DateInput): number {
|
|
215
|
-
return DateHandler.getDateInstance(date).valueOf();
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export { DateHandler };
|
|
@@ -1,27 +0,0 @@
|
|
|
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 { LogicalHandler } from './logical';
|
|
7
|
-
import { MathHandler } from './math';
|
|
8
|
-
import { NumberHandler } from './number';
|
|
9
|
-
import { ObjectHandler } from './object';
|
|
10
|
-
import { StringHandler } from './string';
|
|
11
|
-
import { SymbolHandler } from './symbol';
|
|
12
|
-
import { UnaryHandler } from './unary';
|
|
13
|
-
|
|
14
|
-
export default {
|
|
15
|
-
array: new ArrayHandler(),
|
|
16
|
-
bitwise: new BitwiseHandler(),
|
|
17
|
-
conditional: new ConditionalHandler(),
|
|
18
|
-
date: new DateHandler(),
|
|
19
|
-
json: new JsonHandler(),
|
|
20
|
-
logical: new LogicalHandler(),
|
|
21
|
-
math: new MathHandler(),
|
|
22
|
-
number: new NumberHandler(),
|
|
23
|
-
object: new ObjectHandler(),
|
|
24
|
-
string: new StringHandler(),
|
|
25
|
-
symbol: new SymbolHandler(),
|
|
26
|
-
unary: new UnaryHandler(),
|
|
27
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
class JsonHandler {
|
|
2
|
-
stringify(value: any, replacer?: (this: any, key: string, value: any) => any | (number | string)[] | null, space?: string | number): string {
|
|
3
|
-
return JSON.stringify(value, replacer, space);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
parse(text: string, reviver?: (this: any, key: string, value: any) => any): any {
|
|
7
|
-
return JSON.parse(text, reviver);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export { JsonHandler };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
class LogicalHandler {
|
|
2
|
-
and(firstValue: boolean, secondValue: boolean): boolean {
|
|
3
|
-
return firstValue && secondValue;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
or(firstValue: boolean, secondValue: boolean): boolean {
|
|
7
|
-
return firstValue || secondValue;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export { LogicalHandler };
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
class MathHandler {
|
|
2
|
-
add(...operands: (number | number[])[]): number {
|
|
3
|
-
// @ts-ignore
|
|
4
|
-
return operands.reduce((a: number, b: number | number[]) => {
|
|
5
|
-
if (Array.isArray(b)) {
|
|
6
|
-
return a + this.add(...b);
|
|
7
|
-
} else {
|
|
8
|
-
return a + b;
|
|
9
|
-
}
|
|
10
|
-
}, 0);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
subtract(...operands: (number | number[])[]): number {
|
|
14
|
-
if (operands.length === 0) {
|
|
15
|
-
throw new Error('At least one operand is required.');
|
|
16
|
-
}
|
|
17
|
-
let flatOperands: number[] = [];
|
|
18
|
-
operands.forEach((op: number | number[]) => {
|
|
19
|
-
if (Array.isArray(op)) {
|
|
20
|
-
flatOperands = [...flatOperands, ...op];
|
|
21
|
-
} else {
|
|
22
|
-
flatOperands.push(op);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
if (flatOperands.length === 0) {
|
|
26
|
-
throw new Error('At least one operand is required after flattening.');
|
|
27
|
-
}
|
|
28
|
-
const result = flatOperands.reduce((a: number, b: number, i: number) => {
|
|
29
|
-
return i === 0 ? a : a - b;
|
|
30
|
-
});
|
|
31
|
-
return result;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
multiply(...operands: (number | number[])[]): number {
|
|
35
|
-
if (operands.length === 0) {
|
|
36
|
-
throw new Error('At least one operand is required.');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// @ts-ignore
|
|
40
|
-
return operands.reduce((a: number, b: number | number[]) => {
|
|
41
|
-
if (Array.isArray(b)) {
|
|
42
|
-
return a * this.multiply(...b);
|
|
43
|
-
} else {
|
|
44
|
-
return a * b;
|
|
45
|
-
}
|
|
46
|
-
}, 1);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
divide(...operands: (number | number[])[]): number {
|
|
50
|
-
if (operands.length === 0) {
|
|
51
|
-
throw new Error('At least one operand is required.');
|
|
52
|
-
}
|
|
53
|
-
let flatOperands: number[] = [];
|
|
54
|
-
operands.forEach((op: number | number[]) => {
|
|
55
|
-
if (Array.isArray(op)) {
|
|
56
|
-
flatOperands = [...flatOperands, ...op];
|
|
57
|
-
} else {
|
|
58
|
-
flatOperands.push(op);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
if (flatOperands.length === 0) {
|
|
62
|
-
throw new Error('At least one operand is required after flattening.');
|
|
63
|
-
}
|
|
64
|
-
const result = flatOperands.reduce((a: number, b: number, i: number) => {
|
|
65
|
-
if (b === 0) {
|
|
66
|
-
return NaN;
|
|
67
|
-
}
|
|
68
|
-
return i === 0 ? a : a / b;
|
|
69
|
-
});
|
|
70
|
-
if (isNaN(result)) {
|
|
71
|
-
return NaN;
|
|
72
|
-
}
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
abs(x: number): number {
|
|
77
|
-
return Math.abs(x);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
acos(x: number): number {
|
|
81
|
-
return Math.acos(x);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
acosh(x: number): number {
|
|
85
|
-
return Math.acosh(x);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
asin(x: number): number {
|
|
89
|
-
return Math.asin(x);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
asinh(x: number): number {
|
|
93
|
-
return Math.asinh(x);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
atan(x: number): number {
|
|
97
|
-
return Math.atan(x);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
atan2(y: number, x: number): number {
|
|
101
|
-
return Math.atan2(y, x);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
atanh(x: number): number {
|
|
105
|
-
return Math.atanh(x);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
cbrt(x: number): number {
|
|
109
|
-
return Math.cbrt(x);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
ceil(x: number): number {
|
|
113
|
-
return Math.ceil(x);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
clz32(x: number): number {
|
|
117
|
-
return Math.clz32(x);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
cos(x: number): number {
|
|
121
|
-
return Math.cos(x);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
cosh(x: number): number {
|
|
125
|
-
return Math.cosh(x);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
exp(x: number): number {
|
|
129
|
-
return Math.exp(x);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
expm1(x: number): number {
|
|
133
|
-
return Math.expm1(x);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
floor(x: number): number {
|
|
137
|
-
return Math.floor(x);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
fround(x: number): number {
|
|
141
|
-
return Math.fround(x);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
hypot(...values: number[]): number {
|
|
145
|
-
return Math.hypot(...values);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
imul(x: number, y: number): number {
|
|
149
|
-
return Math.imul(x, y);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
log(x: number): number {
|
|
153
|
-
return Math.log(x);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
log10(x: number): number {
|
|
157
|
-
return Math.log10(x);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
log1p(x: number): number {
|
|
161
|
-
return Math.log1p(x);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
log2(x: number): number {
|
|
165
|
-
return Math.log2(x);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
max(...values: number[]): number {
|
|
169
|
-
return Math.max(...values);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
min(...values: number[]): number {
|
|
173
|
-
return Math.min(...values);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
pow(x: number, y: number): number {
|
|
177
|
-
return Math.pow(x, y);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
random(): number {
|
|
181
|
-
return Math.random();
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
round(x: number): number {
|
|
185
|
-
return Math.round(x);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
sign(x: number): number {
|
|
189
|
-
return Math.sign(x);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
sin(x: number): number {
|
|
193
|
-
return Math.sin(x);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
sinh(x: number): number {
|
|
197
|
-
return Math.sinh(x);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
sqrt(x: number): number {
|
|
201
|
-
return Math.sqrt(x);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
tan(x: number): number {
|
|
205
|
-
return Math.tan(x);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
tanh(x: number): number {
|
|
209
|
-
return Math.tanh(x);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
trunc(x: number): number {
|
|
213
|
-
return Math.trunc(x);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export { MathHandler };
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
class NumberHandler {
|
|
2
|
-
isFinite(input: number): boolean {
|
|
3
|
-
return Number.isFinite(input);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
isEven(input: number): boolean {
|
|
7
|
-
return !isNaN(input) && input % 2 === 0;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
isOdd(input: number): boolean {
|
|
11
|
-
return !isNaN(input) && input % 2 !== 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
isInteger(input: number): boolean {
|
|
15
|
-
return Number.isInteger(input);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
isNaN(input: number): boolean {
|
|
19
|
-
return Number.isNaN(input);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
parseFloat(input: string): number {
|
|
23
|
-
return parseFloat(input);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
parseInt(input: string, radix?: number): number {
|
|
27
|
-
return parseInt(input, radix);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
toFixed(input: number, digits?: number): string {
|
|
31
|
-
return input.toFixed(digits);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
toExponential(input: number, fractionalDigits?: number): string {
|
|
35
|
-
return input.toExponential(fractionalDigits);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
toPrecision(input: number, precision?: number): string {
|
|
39
|
-
return input.toPrecision(precision);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
gte(input: number, compareValue: number): boolean {
|
|
43
|
-
return input >= compareValue;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
lte(input: number, compareValue: number): boolean {
|
|
47
|
-
return input <= compareValue;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
gt(input: number, compareValue: number): boolean {
|
|
51
|
-
return input > compareValue;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
lt(input: number, compareValue: number): boolean {
|
|
55
|
-
return input < compareValue;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
max(...values: number[]): number {
|
|
59
|
-
return Math.max(...values);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
min(...values: number[]): number {
|
|
63
|
-
return Math.min(...values);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
pow(base: number, exponent: number): number {
|
|
67
|
-
return Math.pow(base, exponent);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
round(input: number): number {
|
|
71
|
-
return Math.round(input);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export { NumberHandler };
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
class ObjectHandler {
|
|
2
|
-
get(obj: object, prop: string | symbol): any {
|
|
3
|
-
return obj?.[prop];
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
set(obj: object, prop: string | symbol, value: any): any {
|
|
7
|
-
if (!obj) obj = {};
|
|
8
|
-
obj[prop] = value;
|
|
9
|
-
return obj;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
create(...args: any[]): object {
|
|
13
|
-
const obj = {};
|
|
14
|
-
if (args.length === 0) return obj;
|
|
15
|
-
for (let i = 0; i < args.length; i += 2) {
|
|
16
|
-
obj[args[i]] = args[i + 1];
|
|
17
|
-
}
|
|
18
|
-
return obj;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
keys(obj: object): string[] {
|
|
22
|
-
return obj && Object.keys(obj) || [];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
values(obj: object): any[] {
|
|
26
|
-
return obj && Object.values(obj) || [];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
entries(obj: object): [string, any][] {
|
|
30
|
-
return obj && Object.entries(obj) || [];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
fromEntries(iterable: Iterable<[string, any]>): object {
|
|
34
|
-
return Object.fromEntries(iterable);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
assign(target: object, ...sources: object[]): object {
|
|
38
|
-
return Object.assign(target || {}, ...sources);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
getOwnPropertyNames(obj: object): string[] {
|
|
42
|
-
return Object.getOwnPropertyNames(obj || {});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
getOwnPropertySymbols(obj: object): symbol[] {
|
|
46
|
-
return Object.getOwnPropertySymbols(obj || {});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
getOwnPropertyDescriptor(obj: object, prop: string | symbol): PropertyDescriptor | undefined {
|
|
50
|
-
return Object.getOwnPropertyDescriptor(obj || {}, prop);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
defineProperty(obj: object, prop: string | symbol, descriptor: PropertyDescriptor): object {
|
|
54
|
-
return Object.defineProperty(obj, prop, descriptor);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
defineProperties(obj: object, props: PropertyDescriptorMap): object {
|
|
58
|
-
return Object.defineProperties(obj, props);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
freeze(obj: object): object {
|
|
62
|
-
return Object.freeze(obj);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
isFrozen(obj: object): boolean {
|
|
66
|
-
return Object.isFrozen(obj);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
seal(obj: object): object {
|
|
70
|
-
return Object.seal(obj);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
isSealed(obj: object): boolean {
|
|
74
|
-
return Object.isSealed(obj);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
preventExtensions(obj: object): object {
|
|
78
|
-
return Object.preventExtensions(obj);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
isExtensible(obj: object): boolean {
|
|
82
|
-
return Object.isExtensible(obj);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
hasOwnProperty(obj: object, prop: string | symbol): boolean {
|
|
86
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
isPrototypeOf(obj: object, prototypeObj: object): boolean {
|
|
90
|
-
return Object.prototype.isPrototypeOf.call(obj, prototypeObj);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
propertyIsEnumerable(obj: object, prop: string | symbol): boolean {
|
|
94
|
-
return Object.prototype.propertyIsEnumerable.call(obj, prop);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export { ObjectHandler };
|