@adaas/a-utils 0.1.10 → 0.1.12
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 +87 -32
- package/dist/index.d.mts +933 -0
- package/dist/index.d.ts +933 -27
- package/dist/index.js +1786 -90
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1764 -0
- package/dist/index.mjs.map +1 -0
- package/examples/command-examples.ts +268 -0
- package/package.json +5 -3
- package/src/index.ts +70 -0
- package/src/lib/A-Command/A-Command.constants.ts +4 -0
- package/src/lib/A-Command/A-Command.entity.ts +31 -13
- package/src/lib/A-Command/A-Command.types.ts +6 -1
- package/src/lib/A-Command/README.md +645 -0
- package/src/lib/A-Logger/A-Logger.component.ts +10 -3
- package/src/lib/A-Memory/A-Memory.context.ts +15 -0
- package/src/lib/A-Polyfill/A-Polyfill.component.ts +153 -15
- package/src/lib/A-Polyfill/A-Polyfill.types.ts +54 -0
- package/src/lib/A-Polyfill/classes/A-Buffer-Polyfill.class.ts +85 -0
- package/src/lib/A-Polyfill/classes/A-Crypto-Polyfill.class.ts +87 -0
- package/src/lib/A-Polyfill/classes/A-FS-Polyfill.class.ts +61 -0
- package/src/lib/A-Polyfill/classes/A-Http-Polyfill.class.ts +100 -0
- package/src/lib/A-Polyfill/classes/A-Https-Polyfill.class.ts +100 -0
- package/src/lib/A-Polyfill/classes/A-Path-Polyfill.class.ts +97 -0
- package/src/lib/A-Polyfill/classes/A-Process-Polyfill.class.ts +73 -0
- package/src/lib/A-Polyfill/classes/A-Url-Polyfill.class.ts +88 -0
- package/tests/A-Command.test.ts +447 -2
- package/tests/A-Config.test.ts +5 -5
- package/tests/A-Memory.test.ts +189 -0
- package/tests/A-Polyfill.test.ts +446 -29
- package/tsconfig.json +1 -1
- package/tsup.config.ts +15 -0
- package/dist/src/constants/errors.constants.d.ts +0 -0
- package/dist/src/constants/errors.constants.js +0 -2
- package/dist/src/constants/errors.constants.js.map +0 -1
- package/dist/src/lib/A-Channel/A-Channel.component.d.ts +0 -22
- package/dist/src/lib/A-Channel/A-Channel.component.js +0 -84
- package/dist/src/lib/A-Channel/A-Channel.component.js.map +0 -1
- package/dist/src/lib/A-Channel/A-Channel.error.d.ts +0 -4
- package/dist/src/lib/A-Channel/A-Channel.error.js +0 -9
- package/dist/src/lib/A-Channel/A-Channel.error.js.map +0 -1
- package/dist/src/lib/A-Channel/A-Channel.types.d.ts +0 -0
- package/dist/src/lib/A-Channel/A-Channel.types.js +0 -2
- package/dist/src/lib/A-Channel/A-Channel.types.js.map +0 -1
- package/dist/src/lib/A-Command/A-Command.constants.d.ts +0 -22
- package/dist/src/lib/A-Command/A-Command.constants.js +0 -28
- package/dist/src/lib/A-Command/A-Command.constants.js.map +0 -1
- package/dist/src/lib/A-Command/A-Command.entity.d.ts +0 -133
- package/dist/src/lib/A-Command/A-Command.entity.js +0 -273
- package/dist/src/lib/A-Command/A-Command.entity.js.map +0 -1
- package/dist/src/lib/A-Command/A-Command.error.d.ts +0 -3
- package/dist/src/lib/A-Command/A-Command.error.js +0 -8
- package/dist/src/lib/A-Command/A-Command.error.js.map +0 -1
- package/dist/src/lib/A-Command/A-Command.types.d.ts +0 -73
- package/dist/src/lib/A-Command/A-Command.types.js +0 -4
- package/dist/src/lib/A-Command/A-Command.types.js.map +0 -1
- package/dist/src/lib/A-Config/A-Config.constants.d.ts +0 -3
- package/dist/src/lib/A-Config/A-Config.constants.js +0 -6
- package/dist/src/lib/A-Config/A-Config.constants.js.map +0 -1
- package/dist/src/lib/A-Config/A-Config.container.d.ts +0 -6
- package/dist/src/lib/A-Config/A-Config.container.js +0 -77
- package/dist/src/lib/A-Config/A-Config.container.js.map +0 -1
- package/dist/src/lib/A-Config/A-Config.context.d.ts +0 -29
- package/dist/src/lib/A-Config/A-Config.context.js +0 -63
- package/dist/src/lib/A-Config/A-Config.context.js.map +0 -1
- package/dist/src/lib/A-Config/A-Config.error.d.ts +0 -4
- package/dist/src/lib/A-Config/A-Config.error.js +0 -9
- package/dist/src/lib/A-Config/A-Config.error.js.map +0 -1
- package/dist/src/lib/A-Config/A-Config.types.d.ts +0 -19
- package/dist/src/lib/A-Config/A-Config.types.js +0 -7
- package/dist/src/lib/A-Config/A-Config.types.js.map +0 -1
- package/dist/src/lib/A-Config/components/ConfigReader.component.d.ts +0 -30
- package/dist/src/lib/A-Config/components/ConfigReader.component.js +0 -103
- package/dist/src/lib/A-Config/components/ConfigReader.component.js.map +0 -1
- package/dist/src/lib/A-Config/components/ENVConfigReader.component.d.ts +0 -14
- package/dist/src/lib/A-Config/components/ENVConfigReader.component.js +0 -72
- package/dist/src/lib/A-Config/components/ENVConfigReader.component.js.map +0 -1
- package/dist/src/lib/A-Config/components/FileConfigReader.component.d.ts +0 -11
- package/dist/src/lib/A-Config/components/FileConfigReader.component.js +0 -47
- package/dist/src/lib/A-Config/components/FileConfigReader.component.js.map +0 -1
- package/dist/src/lib/A-Logger/A-Logger.component.d.ts +0 -29
- package/dist/src/lib/A-Logger/A-Logger.component.js +0 -152
- package/dist/src/lib/A-Logger/A-Logger.component.js.map +0 -1
- package/dist/src/lib/A-Logger/A-Logger.types.d.ts +0 -0
- package/dist/src/lib/A-Logger/A-Logger.types.js +0 -2
- package/dist/src/lib/A-Logger/A-Logger.types.js.map +0 -1
- package/dist/src/lib/A-Manifest/A-Manifest.context.d.ts +0 -52
- package/dist/src/lib/A-Manifest/A-Manifest.context.js +0 -154
- package/dist/src/lib/A-Manifest/A-Manifest.context.js.map +0 -1
- package/dist/src/lib/A-Manifest/A-Manifest.error.d.ts +0 -4
- package/dist/src/lib/A-Manifest/A-Manifest.error.js +0 -9
- package/dist/src/lib/A-Manifest/A-Manifest.error.js.map +0 -1
- package/dist/src/lib/A-Manifest/A-Manifest.types.d.ts +0 -43
- package/dist/src/lib/A-Manifest/A-Manifest.types.js +0 -3
- package/dist/src/lib/A-Manifest/A-Manifest.types.js.map +0 -1
- package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.d.ts +0 -14
- package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.js +0 -24
- package/dist/src/lib/A-Manifest/classes/A-ManifestChecker.class.js.map +0 -1
- package/dist/src/lib/A-Memory/A-Memory.context.d.ts +0 -64
- package/dist/src/lib/A-Memory/A-Memory.context.js +0 -105
- package/dist/src/lib/A-Memory/A-Memory.context.js.map +0 -1
- package/dist/src/lib/A-Polyfill/A-Polyfill.component.d.ts +0 -20
- package/dist/src/lib/A-Polyfill/A-Polyfill.component.js +0 -53
- package/dist/src/lib/A-Polyfill/A-Polyfill.component.js.map +0 -1
- package/dist/src/lib/A-Polyfill/A-Polyfill.types.d.ts +0 -9
- package/dist/src/lib/A-Polyfill/A-Polyfill.types.js +0 -3
- package/dist/src/lib/A-Polyfill/A-Polyfill.types.js.map +0 -1
- package/dist/src/lib/A-Polyfill/A-Polyfills.class.d.ts +0 -11
- package/dist/src/lib/A-Polyfill/A-Polyfills.class.js +0 -123
- package/dist/src/lib/A-Polyfill/A-Polyfills.class.js.map +0 -1
- package/dist/src/lib/A-Schedule/A-Deferred.class.d.ts +0 -12
- package/dist/src/lib/A-Schedule/A-Deferred.class.js +0 -23
- package/dist/src/lib/A-Schedule/A-Deferred.class.js.map +0 -1
- package/dist/src/lib/A-Schedule/A-Schedule.component.d.ts +0 -57
- package/dist/src/lib/A-Schedule/A-Schedule.component.js +0 -49
- package/dist/src/lib/A-Schedule/A-Schedule.component.js.map +0 -1
- package/dist/src/lib/A-Schedule/A-Schedule.types.d.ts +0 -10
- package/dist/src/lib/A-Schedule/A-Schedule.types.js +0 -3
- package/dist/src/lib/A-Schedule/A-Schedule.types.js.map +0 -1
- package/dist/src/lib/A-Schedule/A-ScheduleObject.class.d.ts +0 -29
- package/dist/src/lib/A-Schedule/A-ScheduleObject.class.js +0 -58
- package/dist/src/lib/A-Schedule/A-ScheduleObject.class.js.map +0 -1
- package/index.ts +0 -71
- package/src/lib/A-Polyfill/A-Polyfills.class.ts +0 -99
- package/tsconfig.build.json +0 -56
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { A_Memory } from '@adaas/a-utils/lib/A-Memory/A-Memory.context';
|
|
2
|
+
import { A_Error } from '@adaas/a-concept';
|
|
3
|
+
|
|
4
|
+
jest.retryTimes(0);
|
|
5
|
+
|
|
6
|
+
describe('A-Memory tests', () => {
|
|
7
|
+
|
|
8
|
+
it('Should allow to create memory instance', () => {
|
|
9
|
+
const memory = new A_Memory();
|
|
10
|
+
|
|
11
|
+
expect(memory).toBeInstanceOf(A_Memory);
|
|
12
|
+
expect(memory.Errors).toBeUndefined();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('Should allow to create memory with initial values', () => {
|
|
16
|
+
const initialValues = {
|
|
17
|
+
key1: 'value1',
|
|
18
|
+
key2: 42,
|
|
19
|
+
key3: { nested: 'object' }
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const memory = new A_Memory(initialValues);
|
|
23
|
+
|
|
24
|
+
expect(memory.get('key1')).toBe('value1');
|
|
25
|
+
expect(memory.get('key2')).toBe(42);
|
|
26
|
+
expect(memory.get('key3')).toEqual({ nested: 'object' });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('Should allow to set and get values', async () => {
|
|
30
|
+
const memory = new A_Memory<{
|
|
31
|
+
stringValue: string;
|
|
32
|
+
numberValue: number;
|
|
33
|
+
objectValue: { prop: string };
|
|
34
|
+
}>();
|
|
35
|
+
|
|
36
|
+
await memory.set('stringValue', 'test string');
|
|
37
|
+
await memory.set('numberValue', 123);
|
|
38
|
+
await memory.set('objectValue', { prop: 'test' });
|
|
39
|
+
|
|
40
|
+
expect(memory.get('stringValue')).toBe('test string');
|
|
41
|
+
expect(memory.get('numberValue')).toBe(123);
|
|
42
|
+
expect(memory.get('objectValue')).toEqual({ prop: 'test' });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('Should return undefined for non-existent keys', () => {
|
|
46
|
+
const memory = new A_Memory<{ existingKey: string }>();
|
|
47
|
+
|
|
48
|
+
expect(memory.get('existingKey')).toBeUndefined();
|
|
49
|
+
expect(memory.get('nonExistentKey' as any)).toBeUndefined();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('Should allow to drop values', async () => {
|
|
53
|
+
const memory = new A_Memory<{ key1: string; key2: number }>();
|
|
54
|
+
|
|
55
|
+
await memory.set('key1', 'value1');
|
|
56
|
+
await memory.set('key2', 42);
|
|
57
|
+
|
|
58
|
+
expect(memory.get('key1')).toBe('value1');
|
|
59
|
+
expect(memory.get('key2')).toBe(42);
|
|
60
|
+
|
|
61
|
+
await memory.drop('key1');
|
|
62
|
+
|
|
63
|
+
expect(memory.get('key1')).toBeUndefined();
|
|
64
|
+
expect(memory.get('key2')).toBe(42);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('Should allow to clear all values', async () => {
|
|
68
|
+
const memory = new A_Memory<{ key1: string; key2: number }>();
|
|
69
|
+
|
|
70
|
+
await memory.set('key1', 'value1');
|
|
71
|
+
await memory.set('key2', 42);
|
|
72
|
+
|
|
73
|
+
expect(memory.get('key1')).toBe('value1');
|
|
74
|
+
expect(memory.get('key2')).toBe(42);
|
|
75
|
+
|
|
76
|
+
await memory.clear();
|
|
77
|
+
|
|
78
|
+
expect(memory.get('key1')).toBeUndefined();
|
|
79
|
+
expect(memory.get('key2')).toBeUndefined();
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('Should handle errors correctly', async () => {
|
|
83
|
+
const memory = new A_Memory();
|
|
84
|
+
|
|
85
|
+
expect(memory.Errors).toBeUndefined();
|
|
86
|
+
|
|
87
|
+
const error1 = new A_Error({ title: 'Error 1' });
|
|
88
|
+
const error2 = new A_Error({ title: 'Error 2' });
|
|
89
|
+
|
|
90
|
+
await memory.error(error1);
|
|
91
|
+
await memory.error(error2);
|
|
92
|
+
|
|
93
|
+
expect(memory.Errors).toBeDefined();
|
|
94
|
+
expect(memory.Errors?.size).toBe(2);
|
|
95
|
+
expect(memory.Errors?.has(error1)).toBe(true);
|
|
96
|
+
expect(memory.Errors?.has(error2)).toBe(true);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('Should verify prerequisites correctly', async () => {
|
|
100
|
+
const memory = new A_Memory<{
|
|
101
|
+
required1: string;
|
|
102
|
+
required2: number;
|
|
103
|
+
optional?: string;
|
|
104
|
+
}>();
|
|
105
|
+
|
|
106
|
+
// No values set initially
|
|
107
|
+
expect(await memory.verifyPrerequisites(['required1', 'required2'])).toBe(false);
|
|
108
|
+
|
|
109
|
+
// Set one required value
|
|
110
|
+
await memory.set('required1', 'value1');
|
|
111
|
+
expect(await memory.verifyPrerequisites(['required1', 'required2'])).toBe(false);
|
|
112
|
+
|
|
113
|
+
// Set both required values
|
|
114
|
+
await memory.set('required2', 42);
|
|
115
|
+
expect(await memory.verifyPrerequisites(['required1', 'required2'])).toBe(true);
|
|
116
|
+
|
|
117
|
+
// Test with empty requirements
|
|
118
|
+
expect(await memory.verifyPrerequisites([])).toBe(true);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it('Should serialize to JSON correctly', async () => {
|
|
122
|
+
const memory = new A_Memory<{
|
|
123
|
+
stringProp: string;
|
|
124
|
+
numberProp: number;
|
|
125
|
+
objectProp: { nested: string };
|
|
126
|
+
arrayProp: number[];
|
|
127
|
+
}>();
|
|
128
|
+
|
|
129
|
+
await memory.set('stringProp', 'test');
|
|
130
|
+
await memory.set('numberProp', 42);
|
|
131
|
+
await memory.set('objectProp', { nested: 'value' });
|
|
132
|
+
await memory.set('arrayProp', [1, 2, 3]);
|
|
133
|
+
|
|
134
|
+
const json = memory.toJSON();
|
|
135
|
+
|
|
136
|
+
expect(json).toEqual({
|
|
137
|
+
stringProp: 'test',
|
|
138
|
+
numberProp: 42,
|
|
139
|
+
objectProp: { nested: 'value' },
|
|
140
|
+
arrayProp: [1, 2, 3]
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it('Should handle objects with toJSON method in serialization', async () => {
|
|
145
|
+
class SerializableObject {
|
|
146
|
+
constructor(private value: string) {}
|
|
147
|
+
|
|
148
|
+
toJSON() {
|
|
149
|
+
return { serialized: this.value };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const memory = new A_Memory<{
|
|
154
|
+
regular: string;
|
|
155
|
+
serializable: SerializableObject;
|
|
156
|
+
}>();
|
|
157
|
+
|
|
158
|
+
await memory.set('regular', 'normal value');
|
|
159
|
+
await memory.set('serializable', new SerializableObject('test'));
|
|
160
|
+
|
|
161
|
+
const json = memory.toJSON();
|
|
162
|
+
|
|
163
|
+
expect(json).toEqual({
|
|
164
|
+
regular: 'normal value',
|
|
165
|
+
serializable: { serialized: 'test' }
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
it('Should handle null and undefined values correctly', async () => {
|
|
170
|
+
const memory = new A_Memory<{
|
|
171
|
+
nullValue: null;
|
|
172
|
+
undefinedValue: undefined;
|
|
173
|
+
stringValue: string;
|
|
174
|
+
}>();
|
|
175
|
+
|
|
176
|
+
await memory.set('nullValue', null);
|
|
177
|
+
await memory.set('undefinedValue', undefined);
|
|
178
|
+
await memory.set('stringValue', 'test');
|
|
179
|
+
|
|
180
|
+
expect(memory.get('nullValue')).toBe(null);
|
|
181
|
+
expect(memory.get('undefinedValue')).toBe(undefined);
|
|
182
|
+
expect(memory.get('stringValue')).toBe('test');
|
|
183
|
+
|
|
184
|
+
const json = memory.toJSON();
|
|
185
|
+
expect(json.nullValue).toBe(null);
|
|
186
|
+
expect(json.undefinedValue).toBe(undefined);
|
|
187
|
+
expect(json.stringValue).toBe('test');
|
|
188
|
+
});
|
|
189
|
+
});
|