@nemigo/helpers 0.13.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregator.d.ts +33 -0
- package/dist/aggregator.js +44 -0
- package/dist/array.d.ts +33 -0
- package/dist/array.js +24 -0
- package/dist/async/context.d.ts +73 -0
- package/dist/async/context.js +90 -0
- package/dist/async/future.d.ts +54 -0
- package/dist/async/future.js +71 -0
- package/dist/async/index.d.ts +56 -27
- package/dist/async/index.js +63 -58
- package/dist/async/loader.d.ts +67 -0
- package/dist/async/loader.js +101 -0
- package/dist/async/queue.d.ts +51 -0
- package/dist/async/queue.js +84 -0
- package/dist/cases.d.ts +31 -21
- package/dist/cases.js +41 -37
- package/dist/clean.d.ts +44 -26
- package/dist/clean.js +67 -42
- package/dist/color/types.d.ts +31 -0
- package/dist/color/types.js +1 -0
- package/dist/datetime/delta.d.ts +28 -0
- package/dist/datetime/delta.js +65 -0
- package/dist/datetime/format.d.ts +53 -0
- package/dist/datetime/format.js +119 -0
- package/dist/datetime/index.d.ts +6 -0
- package/dist/datetime/index.js +22 -0
- package/dist/datetime/plural.d.ts +77 -0
- package/dist/datetime/plural.js +78 -0
- package/dist/emitter.d.ts +29 -17
- package/dist/emitter.js +35 -21
- package/dist/explorer.d.ts +22 -29
- package/dist/explorer.js +18 -16
- package/dist/files.d.ts +31 -2
- package/dist/files.js +33 -8
- package/dist/fish.d.ts +29 -0
- package/dist/fish.js +70 -0
- package/dist/html/cookie.d.ts +48 -0
- package/dist/html/cookie.js +37 -0
- package/dist/html/events.d.ts +133 -0
- package/dist/html/events.js +139 -0
- package/dist/html/index.d.ts +31 -0
- package/dist/html/index.js +61 -0
- package/dist/index.d.ts +38 -40
- package/dist/index.js +43 -56
- package/dist/jiff/apply.d.ts +93 -0
- package/dist/jiff/apply.js +64 -0
- package/dist/jiff/extract.d.ts +7 -0
- package/dist/jiff/extract.js +82 -0
- package/dist/jiff/types.d.ts +57 -0
- package/dist/jiff/types.js +1 -0
- package/dist/lens.d.ts +20 -31
- package/dist/lens.js +22 -37
- package/dist/msgpack.d.ts +11 -26
- package/dist/msgpack.js +9 -21
- package/dist/mutate.d.ts +70 -0
- package/dist/mutate.js +130 -0
- package/dist/omitter.d.ts +57 -34
- package/dist/omitter.js +38 -30
- package/dist/path.d.ts +20 -1
- package/dist/path.js +21 -2
- package/dist/phymath/format.d.ts +60 -0
- package/dist/phymath/format.js +34 -0
- package/dist/phymath/index.d.ts +30 -30
- package/dist/phymath/index.js +41 -33
- package/dist/promoter.d.ts +23 -12
- package/dist/promoter.js +24 -17
- package/dist/random.d.ts +20 -21
- package/dist/random.js +22 -23
- package/dist/rubles.d.ts +24 -0
- package/dist/rubles.js +24 -0
- package/dist/script.d.ts +60 -13
- package/dist/script.js +46 -10
- package/dist/string.d.ts +46 -92
- package/dist/string.js +46 -171
- package/dist/types.d.ts +144 -25
- package/dist/url/index.d.ts +12 -0
- package/dist/url/index.js +17 -0
- package/dist/url/params.d.ts +141 -0
- package/dist/{url.js → url/params.js} +90 -18
- package/dist/url/slug.d.ts +28 -0
- package/dist/url/slug.js +102 -0
- package/dist/veil.d.ts +14 -0
- package/dist/veil.js +26 -0
- package/dist/xod.d.ts +237 -16
- package/dist/xod.js +192 -18
- package/dist/zipper.d.ts +22 -4
- package/dist/zipper.js +22 -5
- package/package.json +82 -34
- package/dist/async/space.d.ts +0 -7
- package/dist/async/space.js +0 -31
- package/dist/cleanup.d.ts +0 -9
- package/dist/cleanup.js +0 -18
- package/dist/colors.d.ts +0 -539
- package/dist/colors.js +0 -888
- package/dist/cookie.d.ts +0 -60
- package/dist/cookie.js +0 -48
- package/dist/datetime.d.ts +0 -82
- package/dist/datetime.js +0 -161
- package/dist/format.d.ts +0 -36
- package/dist/format.js +0 -26
- package/dist/future.d.ts +0 -50
- package/dist/future.js +0 -59
- package/dist/html.d.ts +0 -145
- package/dist/html.js +0 -205
- package/dist/humanly.d.ts +0 -9
- package/dist/humanly.js +0 -93
- package/dist/lru.d.ts +0 -77
- package/dist/lru.js +0 -128
- package/dist/queue.d.ts +0 -39
- package/dist/queue.js +0 -54
- package/dist/url.d.ts +0 -61
package/dist/zipper.d.ts
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
|
+
import type { Serializable } from "./types.js";
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Тип хэша из {@link zipper}
|
|
3
4
|
*/
|
|
4
5
|
export type ZIP = string;
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* Предварительно вычисленный массив из 256 32-битных значений полинома 0xEDB88320 (стандартный для {@link http://create.stephan-brumme.com/crc32 CRC32})
|
|
7
8
|
*/
|
|
8
9
|
export declare const polynomial: Uint32Array<ArrayBuffer>;
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Генерирует хэш в формате `${prefix}{hash}` на основе алгоритма {@link http://create.stephan-brumme.com/crc32 CRC32}
|
|
12
|
+
*
|
|
13
|
+
* @remarks Для сериализации используется {@link JSON.stringify}
|
|
14
|
+
* @remarks Порядок свойств в объектах **влияет** на результат
|
|
15
|
+
*
|
|
16
|
+
* @param data - Данные для хэширования
|
|
17
|
+
* @param [prefix="zip:"] - Префикс для идентификации хэша
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const obj1 = { age: 30, name: "John" };
|
|
22
|
+
* const obj2 = { age: 30, name: "John" };
|
|
23
|
+
* const obj3 = { name: "John", age: 30 }; // Обратный порядок
|
|
24
|
+
*
|
|
25
|
+
* const hash1 = zipper(obj1); // "zip:4a8f3c2e"
|
|
26
|
+
* const hash2 = zipper(obj2); // "zip:4a8f3c2e" (тот же хэш)
|
|
27
|
+
* const hash3 = zipper(obj3); // "zip:6b9g4d3f" (другой хэш)
|
|
28
|
+
* ```
|
|
11
29
|
*/
|
|
12
|
-
export declare
|
|
30
|
+
export declare const zipper: (data: Serializable, prefix?: string) => ZIP;
|
package/dist/zipper.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Предварительно вычисленный массив из 256 32-битных значений полинома 0xEDB88320 (стандартный для {@link http://create.stephan-brumme.com/crc32 CRC32})
|
|
3
3
|
*/
|
|
4
4
|
export const polynomial = Uint32Array.from({ length: 256 }, (_, i) => {
|
|
5
5
|
let crc = i;
|
|
@@ -8,12 +8,29 @@ export const polynomial = Uint32Array.from({ length: 256 }, (_, i) => {
|
|
|
8
8
|
return crc;
|
|
9
9
|
});
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Генерирует хэш в формате `${prefix}{hash}` на основе алгоритма {@link http://create.stephan-brumme.com/crc32 CRC32}
|
|
12
|
+
*
|
|
13
|
+
* @remarks Для сериализации используется {@link JSON.stringify}
|
|
14
|
+
* @remarks Порядок свойств в объектах **влияет** на результат
|
|
15
|
+
*
|
|
16
|
+
* @param data - Данные для хэширования
|
|
17
|
+
* @param [prefix="zip:"] - Префикс для идентификации хэша
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const obj1 = { age: 30, name: "John" };
|
|
22
|
+
* const obj2 = { age: 30, name: "John" };
|
|
23
|
+
* const obj3 = { name: "John", age: 30 }; // Обратный порядок
|
|
24
|
+
*
|
|
25
|
+
* const hash1 = zipper(obj1); // "zip:4a8f3c2e"
|
|
26
|
+
* const hash2 = zipper(obj2); // "zip:4a8f3c2e" (тот же хэш)
|
|
27
|
+
* const hash3 = zipper(obj3); // "zip:6b9g4d3f" (другой хэш)
|
|
28
|
+
* ```
|
|
12
29
|
*/
|
|
13
|
-
export
|
|
30
|
+
export const zipper = (data, prefix = "zip:") => {
|
|
14
31
|
const str = JSON.stringify(data);
|
|
15
32
|
let crc = 0 ^ -1;
|
|
16
33
|
for (let i = str.length - 1; i >= 0; i--)
|
|
17
34
|
crc = (crc >>> 8) ^ polynomial[(crc ^ str.charCodeAt(i)) & 0xff];
|
|
18
|
-
return
|
|
19
|
-
}
|
|
35
|
+
return prefix + ((crc ^ -1) >>> 0).toString(16).padStart(8, "0");
|
|
36
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nemigo/helpers",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vlad Logvin",
|
|
@@ -23,13 +23,33 @@
|
|
|
23
23
|
"types": "./dist/index.d.ts",
|
|
24
24
|
"default": "./dist/index.js"
|
|
25
25
|
},
|
|
26
|
+
"./aggregator": {
|
|
27
|
+
"types": "./dist/aggregator.d.ts",
|
|
28
|
+
"default": "./dist/aggregator.js"
|
|
29
|
+
},
|
|
30
|
+
"./array": {
|
|
31
|
+
"types": "./dist/sortify.d.ts",
|
|
32
|
+
"default": "./dist/sortify.js"
|
|
33
|
+
},
|
|
26
34
|
"./async": {
|
|
27
35
|
"types": "./dist/async/index.d.ts",
|
|
28
36
|
"default": "./dist/async/index.js"
|
|
29
37
|
},
|
|
30
|
-
"./async/
|
|
31
|
-
"types": "./dist/async/
|
|
32
|
-
"default": "./dist/async/
|
|
38
|
+
"./async/context": {
|
|
39
|
+
"types": "./dist/async/context.d.ts",
|
|
40
|
+
"default": "./dist/async/context.js"
|
|
41
|
+
},
|
|
42
|
+
"./async/future": {
|
|
43
|
+
"types": "./dist/async/future.d.ts",
|
|
44
|
+
"default": "./dist/async/future.js"
|
|
45
|
+
},
|
|
46
|
+
"./async/loader": {
|
|
47
|
+
"types": "./dist/async/loader.d.ts",
|
|
48
|
+
"default": "./dist/async/loader.js"
|
|
49
|
+
},
|
|
50
|
+
"./async/queue": {
|
|
51
|
+
"types": "./dist/async/queue.d.ts",
|
|
52
|
+
"default": "./dist/async/queue.js"
|
|
33
53
|
},
|
|
34
54
|
"./cases": {
|
|
35
55
|
"types": "./dist/cases.d.ts",
|
|
@@ -39,21 +59,29 @@
|
|
|
39
59
|
"types": "./dist/clean.d.ts",
|
|
40
60
|
"default": "./dist/clean.js"
|
|
41
61
|
},
|
|
42
|
-
"./
|
|
43
|
-
"types": "./dist/
|
|
44
|
-
"default": "./dist/
|
|
62
|
+
"./color": {
|
|
63
|
+
"types": "./dist/color/index.d.ts",
|
|
64
|
+
"default": "./dist/color/index.js"
|
|
45
65
|
},
|
|
46
|
-
"./
|
|
47
|
-
"types": "./dist/
|
|
48
|
-
"default": "./dist/
|
|
49
|
-
},
|
|
50
|
-
"./cookie": {
|
|
51
|
-
"types": "./dist/cookie.d.ts",
|
|
52
|
-
"default": "./dist/cookie.js"
|
|
66
|
+
"./color/types": {
|
|
67
|
+
"types": "./dist/color/types.d.ts",
|
|
68
|
+
"default": "./dist/color/types.js"
|
|
53
69
|
},
|
|
54
70
|
"./datetime": {
|
|
55
|
-
"types": "./dist/datetime.d.ts",
|
|
56
|
-
"default": "./dist/datetime.js"
|
|
71
|
+
"types": "./dist/datetime/index.d.ts",
|
|
72
|
+
"default": "./dist/datetime/index.js"
|
|
73
|
+
},
|
|
74
|
+
"./datetime/delta": {
|
|
75
|
+
"types": "./dist/datetime/delta.d.ts",
|
|
76
|
+
"default": "./dist/datetime/delta.js"
|
|
77
|
+
},
|
|
78
|
+
"./datetime/format": {
|
|
79
|
+
"types": "./dist/datetime/format.d.ts",
|
|
80
|
+
"default": "./dist/datetime/format.js"
|
|
81
|
+
},
|
|
82
|
+
"./datetime/plural": {
|
|
83
|
+
"types": "./dist/datetime/plural.d.ts",
|
|
84
|
+
"default": "./dist/datetime/plural.js"
|
|
57
85
|
},
|
|
58
86
|
"./emitter": {
|
|
59
87
|
"types": "./dist/emitter.d.ts",
|
|
@@ -67,34 +95,38 @@
|
|
|
67
95
|
"types": "./dist/files.d.ts",
|
|
68
96
|
"default": "./dist/files.js"
|
|
69
97
|
},
|
|
70
|
-
"./
|
|
71
|
-
"types": "./dist/
|
|
72
|
-
"default": "./dist/
|
|
98
|
+
"./fish": {
|
|
99
|
+
"types": "./dist/cases.d.ts",
|
|
100
|
+
"default": "./dist/cases.js"
|
|
73
101
|
},
|
|
74
102
|
"./future": {
|
|
75
103
|
"types": "./dist/future.d.ts",
|
|
76
104
|
"default": "./dist/future.js"
|
|
77
105
|
},
|
|
78
106
|
"./html": {
|
|
79
|
-
"types": "./dist/html.d.ts",
|
|
80
|
-
"default": "./dist/html.js"
|
|
107
|
+
"types": "./dist/html/index.d.ts",
|
|
108
|
+
"default": "./dist/html/index.js"
|
|
109
|
+
},
|
|
110
|
+
"./html/cookie": {
|
|
111
|
+
"types": "./dist/html/cookie.d.ts",
|
|
112
|
+
"default": "./dist/html/cookie.js"
|
|
81
113
|
},
|
|
82
|
-
"./
|
|
83
|
-
"types": "./dist/
|
|
84
|
-
"default": "./dist/
|
|
114
|
+
"./html/events": {
|
|
115
|
+
"types": "./dist/html/events.d.ts",
|
|
116
|
+
"default": "./dist/html/events.js"
|
|
85
117
|
},
|
|
86
118
|
"./lens": {
|
|
87
119
|
"types": "./dist/lens.d.ts",
|
|
88
120
|
"default": "./dist/lens.js"
|
|
89
121
|
},
|
|
90
|
-
"./lru": {
|
|
91
|
-
"types": "./dist/lru.d.ts",
|
|
92
|
-
"default": "./dist/lru.js"
|
|
93
|
-
},
|
|
94
122
|
"./msgpack": {
|
|
95
123
|
"types": "./dist/msgpack.d.ts",
|
|
96
124
|
"default": "./dist/msgpack.js"
|
|
97
125
|
},
|
|
126
|
+
"./mutate": {
|
|
127
|
+
"types": "./dist/mutate.d.ts",
|
|
128
|
+
"default": "./dist/mutate.js"
|
|
129
|
+
},
|
|
98
130
|
"./omitter": {
|
|
99
131
|
"types": "./dist/omitter.d.ts",
|
|
100
132
|
"default": "./dist/omitter.js"
|
|
@@ -107,6 +139,10 @@
|
|
|
107
139
|
"types": "./dist/phymath/index.d.ts",
|
|
108
140
|
"default": "./dist/phymath/index.js"
|
|
109
141
|
},
|
|
142
|
+
"./phymath/format": {
|
|
143
|
+
"types": "./dist/phymath/format.d.ts",
|
|
144
|
+
"default": "./dist/phymath/format.js"
|
|
145
|
+
},
|
|
110
146
|
"./phymath/types": {
|
|
111
147
|
"types": "./dist/phymath/types.d.ts",
|
|
112
148
|
"default": "./dist/phymath/types.js"
|
|
@@ -115,14 +151,14 @@
|
|
|
115
151
|
"types": "./dist/promoter.d.ts",
|
|
116
152
|
"default": "./dist/promoter.js"
|
|
117
153
|
},
|
|
118
|
-
"./queue": {
|
|
119
|
-
"types": "./dist/queue.d.ts",
|
|
120
|
-
"default": "./dist/queue.js"
|
|
121
|
-
},
|
|
122
154
|
"./random": {
|
|
123
155
|
"types": "./dist/random.d.ts",
|
|
124
156
|
"default": "./dist/random.js"
|
|
125
157
|
},
|
|
158
|
+
"./rubles": {
|
|
159
|
+
"types": "./dist/rubles.d.ts",
|
|
160
|
+
"default": "./dist/rubles.js"
|
|
161
|
+
},
|
|
126
162
|
"./script": {
|
|
127
163
|
"types": "./dist/script.d.ts",
|
|
128
164
|
"default": "./dist/script.js"
|
|
@@ -136,8 +172,20 @@
|
|
|
136
172
|
"default": "./dist/types.js"
|
|
137
173
|
},
|
|
138
174
|
"./url": {
|
|
139
|
-
"types": "./dist/url.d.ts",
|
|
140
|
-
"default": "./dist/url.js"
|
|
175
|
+
"types": "./dist/url/index.d.ts",
|
|
176
|
+
"default": "./dist/url/index.js"
|
|
177
|
+
},
|
|
178
|
+
"./url/params": {
|
|
179
|
+
"types": "./dist/url/params.d.ts",
|
|
180
|
+
"default": "./dist/url/params.js"
|
|
181
|
+
},
|
|
182
|
+
"./url/slug": {
|
|
183
|
+
"types": "./dist/url/slug.d.ts",
|
|
184
|
+
"default": "./dist/url/slug.js"
|
|
185
|
+
},
|
|
186
|
+
"./veil": {
|
|
187
|
+
"types": "./dist/veil.d.ts",
|
|
188
|
+
"default": "./dist/veil.js"
|
|
141
189
|
},
|
|
142
190
|
"./xod": {
|
|
143
191
|
"types": "./dist/xod.d.ts",
|
package/dist/async/space.d.ts
DELETED
package/dist/async/space.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "async_hooks";
|
|
2
|
-
export class AsyncSpace {
|
|
3
|
-
async_storage = new AsyncLocalStorage();
|
|
4
|
-
getTX() {
|
|
5
|
-
const ctx = this.async_storage.getStore();
|
|
6
|
-
if (ctx)
|
|
7
|
-
return ctx;
|
|
8
|
-
throw new Error("getTX() called outside of space()");
|
|
9
|
-
}
|
|
10
|
-
async space(call, auto = true) {
|
|
11
|
-
const ctx = this.async_storage.getStore();
|
|
12
|
-
if (ctx)
|
|
13
|
-
return call(ctx);
|
|
14
|
-
// Создаем новое пространство
|
|
15
|
-
const tx = [];
|
|
16
|
-
const result = await this.async_storage.run(tx, () => call(tx));
|
|
17
|
-
// Автоматически выполняем транзакции, если они есть и включен автокоммит
|
|
18
|
-
if (auto && tx.length > 0) {
|
|
19
|
-
await this.submit(tx);
|
|
20
|
-
tx.length = 0;
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
async commit() {
|
|
25
|
-
const ctx = this.async_storage.getStore();
|
|
26
|
-
if (!ctx)
|
|
27
|
-
throw new Error("commit() called outside of space()");
|
|
28
|
-
await this.submit(ctx);
|
|
29
|
-
ctx.length = 0;
|
|
30
|
-
}
|
|
31
|
-
}
|
package/dist/cleanup.d.ts
DELETED
package/dist/cleanup.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class CleanUP {
|
|
2
|
-
calls = [];
|
|
3
|
-
constructor(...args) {
|
|
4
|
-
this.calls = args;
|
|
5
|
-
}
|
|
6
|
-
push(...args) {
|
|
7
|
-
this.calls = this.calls.concat(args);
|
|
8
|
-
}
|
|
9
|
-
run() {
|
|
10
|
-
for (const call of this.calls)
|
|
11
|
-
call();
|
|
12
|
-
this.calls.length = 0;
|
|
13
|
-
}
|
|
14
|
-
update(...args) {
|
|
15
|
-
this.run();
|
|
16
|
-
this.calls = args;
|
|
17
|
-
}
|
|
18
|
-
}
|