@develia/commons 0.4.14 → 0.4.15
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/cjs/array.js +27 -1
- package/dist/cjs/array.js.map +1 -1
- package/dist/cjs/async-pool-executor.js +15 -0
- package/dist/cjs/async-pool-executor.js.map +1 -1
- package/dist/cjs/browser/form-utilities.js +26 -0
- package/dist/cjs/browser/form-utilities.js.map +1 -1
- package/dist/cjs/browser/geo-location.js +5 -0
- package/dist/cjs/browser/geo-location.js.map +1 -1
- package/dist/cjs/browser/index.js.map +1 -1
- package/dist/cjs/browser/native-bridge.js +9 -0
- package/dist/cjs/browser/native-bridge.js.map +1 -1
- package/dist/cjs/cancellable-promise.js.map +1 -1
- package/dist/cjs/clean-url-search-params.js +1 -0
- package/dist/cjs/clean-url-search-params.js.map +1 -1
- package/dist/cjs/collections/cache-dictionary.js +39 -0
- package/dist/cjs/collections/cache-dictionary.js.map +1 -1
- package/dist/cjs/collections/default-map.js +25 -1
- package/dist/cjs/collections/default-map.js.map +1 -1
- package/dist/cjs/collections/default-weak-map.js +23 -3
- package/dist/cjs/collections/default-weak-map.js.map +1 -1
- package/dist/cjs/{from.js → collections/from.js} +278 -4
- package/dist/cjs/collections/from.js.map +1 -0
- package/dist/cjs/collections/index.js +3 -1
- package/dist/cjs/collections/index.js.map +1 -1
- package/dist/cjs/draft.js +37 -0
- package/dist/cjs/draft.js.map +1 -1
- package/dist/cjs/event-bus.js +1 -0
- package/dist/cjs/event-bus.js.map +1 -1
- package/dist/cjs/index.js +14 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/key-value-pair.js +6 -0
- package/dist/cjs/key-value-pair.js.map +1 -1
- package/dist/cjs/lazy.js +4 -0
- package/dist/cjs/lazy.js.map +1 -1
- package/dist/cjs/math.js +19 -0
- package/dist/cjs/math.js.map +1 -1
- package/dist/cjs/order.js.map +1 -1
- package/dist/cjs/parse.js +96 -0
- package/dist/cjs/parse.js.map +1 -1
- package/dist/cjs/patch.js +10 -2
- package/dist/cjs/patch.js.map +1 -1
- package/dist/cjs/stopwatch.js +10 -0
- package/dist/cjs/stopwatch.js.map +1 -1
- package/dist/cjs/string.js +62 -0
- package/dist/cjs/string.js.map +1 -1
- package/dist/cjs/timer.js +7 -0
- package/dist/cjs/timer.js.map +1 -1
- package/dist/cjs/timespan.js +202 -0
- package/dist/cjs/timespan.js.map +1 -1
- package/dist/cjs/type-code.js.map +1 -1
- package/dist/cjs/type.js +80 -1
- package/dist/cjs/type.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utilities.js +183 -0
- package/dist/cjs/utilities.js.map +1 -1
- package/dist/esm/array.js +27 -1
- package/dist/esm/array.js.map +1 -1
- package/dist/esm/async-pool-executor.js +15 -0
- package/dist/esm/async-pool-executor.js.map +1 -1
- package/dist/esm/browser/form-utilities.js +26 -0
- package/dist/esm/browser/form-utilities.js.map +1 -1
- package/dist/esm/browser/geo-location.js +5 -0
- package/dist/esm/browser/geo-location.js.map +1 -1
- package/dist/esm/browser/index.js.map +1 -1
- package/dist/esm/browser/native-bridge.js +9 -0
- package/dist/esm/browser/native-bridge.js.map +1 -1
- package/dist/esm/cancellable-promise.js.map +1 -1
- package/dist/esm/clean-url-search-params.js +1 -0
- package/dist/esm/clean-url-search-params.js.map +1 -1
- package/dist/esm/collections/cache-dictionary.js +39 -0
- package/dist/esm/collections/cache-dictionary.js.map +1 -1
- package/dist/esm/collections/default-map.js +25 -1
- package/dist/esm/collections/default-map.js.map +1 -1
- package/dist/esm/collections/default-weak-map.js +22 -2
- package/dist/esm/collections/default-weak-map.js.map +1 -1
- package/dist/esm/{from.js → collections/from.js} +278 -4
- package/dist/esm/collections/from.js.map +1 -0
- package/dist/esm/collections/index.js +1 -0
- package/dist/esm/collections/index.js.map +1 -1
- package/dist/esm/draft.js +37 -0
- package/dist/esm/draft.js.map +1 -1
- package/dist/esm/event-bus.js +1 -0
- package/dist/esm/event-bus.js.map +1 -1
- package/dist/esm/index.js +13 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/key-value-pair.js +6 -0
- package/dist/esm/key-value-pair.js.map +1 -1
- package/dist/esm/lazy.js +4 -0
- package/dist/esm/lazy.js.map +1 -1
- package/dist/esm/math.js +19 -0
- package/dist/esm/math.js.map +1 -1
- package/dist/esm/order.js.map +1 -1
- package/dist/esm/parse.js +96 -0
- package/dist/esm/parse.js.map +1 -1
- package/dist/esm/patch.js +10 -2
- package/dist/esm/patch.js.map +1 -1
- package/dist/esm/stopwatch.js +10 -0
- package/dist/esm/stopwatch.js.map +1 -1
- package/dist/esm/string.js +62 -0
- package/dist/esm/string.js.map +1 -1
- package/dist/esm/timer.js +7 -0
- package/dist/esm/timer.js.map +1 -1
- package/dist/esm/timespan.js +202 -0
- package/dist/esm/timespan.js.map +1 -1
- package/dist/esm/type-code.js.map +1 -1
- package/dist/esm/type.js +80 -1
- package/dist/esm/type.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utilities.js +183 -0
- package/dist/esm/utilities.js.map +1 -1
- package/dist/types/array.d.ts +26 -0
- package/dist/types/array.d.ts.map +1 -1
- package/dist/types/async-pool-executor.d.ts +15 -0
- package/dist/types/async-pool-executor.d.ts.map +1 -1
- package/dist/types/browser/form-utilities.d.ts +13 -0
- package/dist/types/browser/form-utilities.d.ts.map +1 -1
- package/dist/types/browser/index.d.ts.map +1 -1
- package/dist/types/browser/native-bridge.d.ts +6 -0
- package/dist/types/browser/native-bridge.d.ts.map +1 -1
- package/dist/types/collections/cache-dictionary.d.ts +39 -0
- package/dist/types/collections/cache-dictionary.d.ts.map +1 -1
- package/dist/types/collections/default-map.d.ts +23 -0
- package/dist/types/collections/default-map.d.ts.map +1 -1
- package/dist/types/collections/default-weak-map.d.ts +20 -1
- package/dist/types/collections/default-weak-map.d.ts.map +1 -1
- package/dist/types/collections/from.d.ts +333 -0
- package/dist/types/collections/from.d.ts.map +1 -0
- package/dist/types/collections/index.d.ts +1 -0
- package/dist/types/collections/index.d.ts.map +1 -1
- package/dist/types/draft.d.ts +68 -0
- package/dist/types/draft.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/key-value-pair.d.ts +6 -0
- package/dist/types/key-value-pair.d.ts.map +1 -1
- package/dist/types/lazy.d.ts +4 -0
- package/dist/types/lazy.d.ts.map +1 -1
- package/dist/types/math.d.ts +19 -0
- package/dist/types/math.d.ts.map +1 -1
- package/dist/types/parse.d.ts +121 -0
- package/dist/types/parse.d.ts.map +1 -1
- package/dist/types/string.d.ts +51 -0
- package/dist/types/string.d.ts.map +1 -1
- package/dist/types/timer.d.ts +7 -0
- package/dist/types/timer.d.ts.map +1 -1
- package/dist/types/timespan.d.ts +202 -0
- package/dist/types/timespan.d.ts.map +1 -1
- package/dist/types/type.d.ts +40 -0
- package/dist/types/type.d.ts.map +1 -1
- package/dist/types/utilities.d.ts +171 -0
- package/dist/types/utilities.d.ts.map +1 -1
- package/dist/web/array.js +27 -1
- package/dist/web/array.js.map +1 -1
- package/dist/web/async-pool-executor.js +15 -0
- package/dist/web/async-pool-executor.js.map +1 -1
- package/dist/web/browser/form-utilities.js +26 -0
- package/dist/web/browser/form-utilities.js.map +1 -1
- package/dist/web/browser/geo-location.js +5 -0
- package/dist/web/browser/geo-location.js.map +1 -1
- package/dist/web/browser/index.js.map +1 -1
- package/dist/web/browser/native-bridge.js +9 -0
- package/dist/web/browser/native-bridge.js.map +1 -1
- package/dist/web/cancellable-promise.js.map +1 -1
- package/dist/web/clean-url-search-params.js +1 -0
- package/dist/web/clean-url-search-params.js.map +1 -1
- package/dist/web/collections/cache-dictionary.js +39 -0
- package/dist/web/collections/cache-dictionary.js.map +1 -1
- package/dist/web/collections/default-map.js +25 -1
- package/dist/web/collections/default-map.js.map +1 -1
- package/dist/web/collections/default-weak-map.js +22 -2
- package/dist/web/collections/default-weak-map.js.map +1 -1
- package/dist/web/{from.js → collections/from.js} +279 -5
- package/dist/web/collections/from.js.map +1 -0
- package/dist/web/collections/index.js +1 -0
- package/dist/web/collections/index.js.map +1 -1
- package/dist/web/draft.js +37 -0
- package/dist/web/draft.js.map +1 -1
- package/dist/web/event-bus.js +1 -0
- package/dist/web/event-bus.js.map +1 -1
- package/dist/web/index.js +13 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/key-value-pair.js +6 -0
- package/dist/web/key-value-pair.js.map +1 -1
- package/dist/web/lazy.js +4 -0
- package/dist/web/lazy.js.map +1 -1
- package/dist/web/math.js +19 -0
- package/dist/web/math.js.map +1 -1
- package/dist/web/order.js.map +1 -1
- package/dist/web/parse.js +96 -0
- package/dist/web/parse.js.map +1 -1
- package/dist/web/patch.js +10 -2
- package/dist/web/patch.js.map +1 -1
- package/dist/web/stopwatch.js +10 -0
- package/dist/web/stopwatch.js.map +1 -1
- package/dist/web/string.js +62 -0
- package/dist/web/string.js.map +1 -1
- package/dist/web/timer.js +7 -0
- package/dist/web/timer.js.map +1 -1
- package/dist/web/timespan.js +202 -0
- package/dist/web/timespan.js.map +1 -1
- package/dist/web/type-code.js.map +1 -1
- package/dist/web/type.js +80 -1
- package/dist/web/type.js.map +1 -1
- package/dist/web/types.js.map +1 -1
- package/dist/web/utilities.js +183 -0
- package/dist/web/utilities.js.map +1 -1
- package/package.json +1 -1
- package/src/browser/index.ts +2 -2
- package/src/collections/cache-dictionary.ts +39 -1
- package/src/collections/default-map.ts +15 -9
- package/src/collections/default-weak-map.ts +14 -12
- package/src/{from.ts → collections/from.ts} +285 -15
- package/src/collections/index.ts +4 -3
- package/src/index.ts +1 -1
- package/src/timespan.ts +199 -20
- package/dist/cjs/from.js.map +0 -1
- package/dist/esm/from.js.map +0 -1
- package/dist/types/from.d.ts +0 -59
- package/dist/types/from.d.ts.map +0 -1
- package/dist/web/from.js.map +0 -1
package/dist/cjs/type.js
CHANGED
|
@@ -10,30 +10,76 @@ class Type {
|
|
|
10
10
|
this.constructorRef = constructorRef;
|
|
11
11
|
this.typeCode = typeCode;
|
|
12
12
|
}
|
|
13
|
+
// ══════════════════════════════════════════════
|
|
14
|
+
// ÚNICO PUNTO DE ENTRADA
|
|
15
|
+
// ══════════════════════════════════════════════
|
|
16
|
+
/**
|
|
17
|
+
* Obtiene el `Type` de cualquier valor, constructor o primitivo.
|
|
18
|
+
*
|
|
19
|
+
* Unifica `typeof()` y `.GetType()` de C# en un solo método.
|
|
20
|
+
*
|
|
21
|
+
* **Reglas de resolución:**
|
|
22
|
+
* 1. `null` / `undefined` → tipo nullish correspondiente
|
|
23
|
+
* 2. Primitivo (`number`, `string`, etc.) → tipo primitivo
|
|
24
|
+
* 3. Array → `Type.Array`
|
|
25
|
+
* 4. Función/Constructor → tipo del constructor (no "Function")
|
|
26
|
+
* 5. Objeto → tipo basado en su constructor
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* Type.of(42) // Type<number> — primitivo
|
|
31
|
+
* Type.of('hello') // Type<string> — primitivo
|
|
32
|
+
* Type.of(new Date()) // Type<Date> — desde instancia
|
|
33
|
+
* Type.of(Date) // Type<Date> — desde constructor
|
|
34
|
+
* Type.of(null) // Type<null>
|
|
35
|
+
* Type.of([1, 2, 3]) // Type<Array>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
13
38
|
static of(target) {
|
|
39
|
+
// ── Nullish ──
|
|
14
40
|
if (target === null)
|
|
15
41
|
return Type.Null;
|
|
16
42
|
if (target === undefined)
|
|
17
43
|
return Type.Undefined;
|
|
18
44
|
const jsType = typeof target;
|
|
45
|
+
// ── Primitivos ──
|
|
19
46
|
if (jsType !== 'object' && jsType !== 'function') {
|
|
20
47
|
return this._getOrCreate(jsType, undefined, jsType);
|
|
21
48
|
}
|
|
49
|
+
// ── Funciones y Constructores ──
|
|
22
50
|
if (jsType === 'function') {
|
|
23
51
|
return this._resolveFunction(target);
|
|
24
52
|
}
|
|
53
|
+
// ── Arrays ──
|
|
25
54
|
if (Array.isArray(target)) {
|
|
26
55
|
return Type.Array;
|
|
27
56
|
}
|
|
57
|
+
// ── Objetos ──
|
|
28
58
|
return this._resolveObject(target);
|
|
29
59
|
}
|
|
60
|
+
// ──────────────────────────────────────────────
|
|
61
|
+
// Resolvers privados (separan la lógica compleja)
|
|
62
|
+
// ──────────────────────────────────────────────
|
|
63
|
+
/**
|
|
64
|
+
* Resuelve funciones y constructores.
|
|
65
|
+
*
|
|
66
|
+
* Decisión clave: si la función tiene un `prototype` con
|
|
67
|
+
* miembros propios o empieza con `class`, es un constructor
|
|
68
|
+
* y devolvemos el tipo que construye. Si no, es una función.
|
|
69
|
+
*/
|
|
30
70
|
static _resolveFunction(fn) {
|
|
31
71
|
const isConstructor = this._isConstructorLike(fn);
|
|
32
72
|
if (isConstructor) {
|
|
33
|
-
|
|
73
|
+
// Constructor → devuelve el tipo que construye
|
|
74
|
+
return this._getOrCreate(fn, // cacheamos por referencia al constructor
|
|
75
|
+
fn, type_code_js_1.default.Object, fn.name || 'AnonymousClass');
|
|
34
76
|
}
|
|
77
|
+
// Función pura → devuelve Type<Function>
|
|
35
78
|
return Type.Function;
|
|
36
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Resuelve objetos por su cadena de prototipos.
|
|
82
|
+
*/
|
|
37
83
|
static _resolveObject(obj) {
|
|
38
84
|
const proto = Object.getPrototypeOf(obj);
|
|
39
85
|
const ctor = proto?.constructor;
|
|
@@ -43,21 +89,36 @@ class Type {
|
|
|
43
89
|
}
|
|
44
90
|
return this._getOrCreate(ctor, ctor, type_code_js_1.default.Object, name);
|
|
45
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Heurística para distinguir constructores de funciones planas.
|
|
94
|
+
*
|
|
95
|
+
* Un "constructor" cumple al menos una de:
|
|
96
|
+
* - Su `toString()` empieza con "class "
|
|
97
|
+
* - Tiene propiedades propias en su prototype (más allá de constructor)
|
|
98
|
+
* - Es un built-in conocido (Date, Map, Set, etc.)
|
|
99
|
+
*/
|
|
46
100
|
static _isConstructorLike(fn) {
|
|
101
|
+
// 1. Clase ES6 explícita
|
|
47
102
|
try {
|
|
48
103
|
if (fn.toString().startsWith('class '))
|
|
49
104
|
return true;
|
|
50
105
|
}
|
|
51
106
|
catch {
|
|
107
|
+
// toString puede fallar en Proxy, etc.
|
|
52
108
|
}
|
|
109
|
+
// 2. Built-ins conocidos con prototype significativo
|
|
53
110
|
if (fn === Object || fn === Function || fn === Array)
|
|
54
111
|
return true;
|
|
55
112
|
const proto = fn.prototype;
|
|
56
113
|
if (!proto || typeof proto !== 'object')
|
|
57
114
|
return false;
|
|
115
|
+
// 3. Prototype con miembros propios (señal de constructor)
|
|
58
116
|
const ownKeys = Object.getOwnPropertyNames(proto);
|
|
59
117
|
return ownKeys.length > 1 || (ownKeys.length === 1 && ownKeys[0] !== 'constructor');
|
|
60
118
|
}
|
|
119
|
+
// ══════════════════════════════════════════════
|
|
120
|
+
// PROPIEDADES COMPUTADAS
|
|
121
|
+
// ══════════════════════════════════════════════
|
|
61
122
|
get isPrimitive() {
|
|
62
123
|
return (this.typeCode === type_code_js_1.default.String ||
|
|
63
124
|
this.typeCode === type_code_js_1.default.Number ||
|
|
@@ -97,6 +158,9 @@ class Type {
|
|
|
97
158
|
}
|
|
98
159
|
return this.name;
|
|
99
160
|
}
|
|
161
|
+
// ══════════════════════════════════════════════
|
|
162
|
+
// JERARQUÍA
|
|
163
|
+
// ══════════════════════════════════════════════
|
|
100
164
|
get baseType() {
|
|
101
165
|
if (!this.constructorRef)
|
|
102
166
|
return undefined;
|
|
@@ -137,6 +201,9 @@ class Type {
|
|
|
137
201
|
return false;
|
|
138
202
|
return this.isAssignableTo(parent);
|
|
139
203
|
}
|
|
204
|
+
// ══════════════════════════════════════════════
|
|
205
|
+
// REFLEXIÓN
|
|
206
|
+
// ══════════════════════════════════════════════
|
|
140
207
|
getMethodNames() {
|
|
141
208
|
if (!this.constructorRef?.prototype)
|
|
142
209
|
return Object.freeze([]);
|
|
@@ -174,6 +241,9 @@ class Type {
|
|
|
174
241
|
return Object.freeze(Object.getOwnPropertyNames(this.constructorRef)
|
|
175
242
|
.filter(n => !skip.has(n)));
|
|
176
243
|
}
|
|
244
|
+
// ══════════════════════════════════════════════
|
|
245
|
+
// SERIALIZACIÓN
|
|
246
|
+
// ══════════════════════════════════════════════
|
|
177
247
|
toString() {
|
|
178
248
|
return `Type [${this.name}]`;
|
|
179
249
|
}
|
|
@@ -187,6 +257,9 @@ class Type {
|
|
|
187
257
|
get [Symbol.toStringTag]() {
|
|
188
258
|
return `Type<${this.name}>`;
|
|
189
259
|
}
|
|
260
|
+
// ──────────────────────────────────────────────
|
|
261
|
+
// FACTORY INTERNA
|
|
262
|
+
// ──────────────────────────────────────────────
|
|
190
263
|
static _getOrCreate(key, constructorRef, typeCode, customName) {
|
|
191
264
|
const cached = this._cache.get(key);
|
|
192
265
|
if (cached)
|
|
@@ -201,7 +274,13 @@ class Type {
|
|
|
201
274
|
return instance;
|
|
202
275
|
}
|
|
203
276
|
}
|
|
277
|
+
// ──────────────────────────────────────────────
|
|
278
|
+
// Caché (Flyweight)
|
|
279
|
+
// ──────────────────────────────────────────────
|
|
204
280
|
Type._cache = new Map();
|
|
281
|
+
// ──────────────────────────────────────────────
|
|
282
|
+
// Tipos predefinidos
|
|
283
|
+
// ──────────────────────────────────────────────
|
|
205
284
|
Type.String = Type._getOrCreate('string', undefined, type_code_js_1.default.String, 'string');
|
|
206
285
|
Type.Number = Type._getOrCreate('number', undefined, type_code_js_1.default.Number, 'number');
|
|
207
286
|
Type.Boolean = Type._getOrCreate('boolean', undefined, type_code_js_1.default.Boolean, 'boolean');
|
package/dist/cjs/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"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","sourcesContent":["import TypeCode from \"./type-code.js\";\r\nimport {type Constructor} from \"./types.js\";\r\n\r\nexport default class Type<T = unknown> {\r\n\r\n // ──────────────────────────────────────────────\r\n // Caché (Flyweight)\r\n // ──────────────────────────────────────────────\r\n\r\n private static readonly _cache = new Map<unknown, Type>();\r\n\r\n // ──────────────────────────────────────────────\r\n // Tipos predefinidos\r\n // ──────────────────────────────────────────────\r\n\r\n public static readonly String = Type._getOrCreate<string>('string', undefined, TypeCode.String, 'string');\r\n public static readonly Number = Type._getOrCreate<number>('number', undefined, TypeCode.Number, 'number');\r\n public static readonly Boolean = Type._getOrCreate<boolean>('boolean', undefined, TypeCode.Boolean, 'boolean');\r\n public static readonly Symbol = Type._getOrCreate<symbol>('symbol', undefined, TypeCode.Symbol, 'symbol');\r\n public static readonly BigInt = Type._getOrCreate<bigint>('bigint', undefined, TypeCode.BigInt, 'bigint');\r\n public static readonly Null = Type._getOrCreate<null>('null', undefined, TypeCode.Null, 'null');\r\n public static readonly Undefined = Type._getOrCreate<undefined>('undefined', undefined, TypeCode.Undefined, 'undefined');\r\n public static readonly Object = Type._getOrCreate<object>(Object, Object, TypeCode.Object, 'Object');\r\n public static readonly Function = Type._getOrCreate<Function>(Function, Function, TypeCode.Function, 'Function');\r\n public static readonly Array = Type._getOrCreate<unknown[]>(Array, Array, TypeCode.Array, 'Array');\r\n\r\n // ──────────────────────────────────────────────\r\n // Propiedades inmutables\r\n // ──────────────────────────────────────────────\r\n\r\n public readonly name: string;\r\n public readonly constructorRef:\r\n Constructor<T> | undefined;\r\n public readonly typeCode: TypeCode;\r\n\r\n private constructor(\r\n name: string,\r\n constructorRef: Constructor<T> | undefined,\r\n typeCode: TypeCode,\r\n ) {\r\n this.name = name;\r\n this.constructorRef = constructorRef;\r\n this.typeCode = typeCode;\r\n }\r\n\r\n // ══════════════════════════════════════════════\r\n // ÚNICO PUNTO DE ENTRADA\r\n // ══════════════════════════════════════════════\r\n\r\n /**\r\n * Obtiene el `Type` de cualquier valor, constructor o primitivo.\r\n *\r\n * Unifica `typeof()` y `.GetType()` de C# en un solo método.\r\n *\r\n * **Reglas de resolución:**\r\n * 1. `null` / `undefined` → tipo nullish correspondiente\r\n * 2. Primitivo (`number`, `string`, etc.) → tipo primitivo\r\n * 3. Array → `Type.Array`\r\n * 4. Función/Constructor → tipo del constructor (no \"Function\")\r\n * 5. Objeto → tipo basado en su constructor\r\n *\r\n * @example\r\n * ```ts\r\n * Type.of(42) // Type<number> — primitivo\r\n * Type.of('hello') // Type<string> — primitivo\r\n * Type.of(new Date()) // Type<Date> — desde instancia\r\n * Type.of(Date) // Type<Date> — desde constructor\r\n * Type.of(null) // Type<null>\r\n * Type.of([1, 2, 3]) // Type<Array>\r\n * ```\r\n */\r\n public static of<U>(target: U | Constructor<U>): Type<U> {\r\n // ── Nullish ──\r\n if (target === null) return Type.Null as Type<U>;\r\n if (target === undefined) return Type.Undefined as Type<U>;\r\n\r\n const jsType = typeof target;\r\n\r\n // ── Primitivos ──\r\n if (jsType !== 'object' && jsType !== 'function') {\r\n return this._getOrCreate<U>(jsType, undefined, jsType as TypeCode);\r\n }\r\n\r\n // ── Funciones y Constructores ──\r\n if (jsType === 'function') {\r\n return this._resolveFunction<U>(target as Function & Constructor<U>);\r\n }\r\n\r\n // ── Arrays ──\r\n if (Array.isArray(target)) {\r\n return Type.Array as Type<U>;\r\n }\r\n\r\n // ── Objetos ──\r\n return this._resolveObject<U>(target as object);\r\n }\r\n\r\n // ──────────────────────────────────────────────\r\n // Resolvers privados (separan la lógica compleja)\r\n // ──────────────────────────────────────────────\r\n\r\n /**\r\n * Resuelve funciones y constructores.\r\n *\r\n * Decisión clave: si la función tiene un `prototype` con\r\n * miembros propios o empieza con `class`, es un constructor\r\n * y devolvemos el tipo que construye. Si no, es una función.\r\n */\r\n private static _resolveFunction<U>(fn: Function & Constructor<U>): Type<U> {\r\n const isConstructor = this._isConstructorLike(fn);\r\n\r\n if (isConstructor) {\r\n // Constructor → devuelve el tipo que construye\r\n return this._getOrCreate<U>(\r\n fn, // cacheamos por referencia al constructor\r\n fn as Constructor<U>,\r\n TypeCode.Object,\r\n fn.name || 'AnonymousClass',\r\n );\r\n }\r\n\r\n // Función pura → devuelve Type<Function>\r\n return Type.Function as Type<U>;\r\n }\r\n\r\n /**\r\n * Resuelve objetos por su cadena de prototipos.\r\n */\r\n private static _resolveObject<U>(obj: object): Type<U> {\r\n const proto = Object.getPrototypeOf(obj) as { constructor?: Constructor<U> } | null;\r\n const ctor = proto?.constructor as Constructor<U> | undefined;\r\n const name = ctor?.name || 'Object';\r\n\r\n if (!ctor || ctor === (Object as unknown)) {\r\n return Type.Object as Type<U>;\r\n }\r\n\r\n return this._getOrCreate<U>(ctor, ctor, TypeCode.Object, name);\r\n }\r\n\r\n /**\r\n * Heurística para distinguir constructores de funciones planas.\r\n *\r\n * Un \"constructor\" cumple al menos una de:\r\n * - Su `toString()` empieza con \"class \"\r\n * - Tiene propiedades propias en su prototype (más allá de constructor)\r\n * - Es un built-in conocido (Date, Map, Set, etc.)\r\n */\r\n private static _isConstructorLike(fn: Function): boolean {\r\n // 1. Clase ES6 explícita\r\n try {\r\n if (fn.toString().startsWith('class ')) return true;\r\n } catch {\r\n // toString puede fallar en Proxy, etc.\r\n }\r\n\r\n // 2. Built-ins conocidos con prototype significativo\r\n if (fn === Object || fn === Function || fn === Array) return true;\r\n\r\n const proto = fn.prototype;\r\n if (!proto || typeof proto !== 'object') return false;\r\n\r\n // 3. Prototype con miembros propios (señal de constructor)\r\n const ownKeys = Object.getOwnPropertyNames(proto);\r\n return ownKeys.length > 1 || (ownKeys.length === 1 && ownKeys[0] !== 'constructor');\r\n }\r\n\r\n // ══════════════════════════════════════════════\r\n // PROPIEDADES COMPUTADAS\r\n // ══════════════════════════════════════════════\r\n\r\n public get isPrimitive(): boolean {\r\n return (\r\n this.typeCode === TypeCode.String ||\r\n this.typeCode === TypeCode.Number ||\r\n this.typeCode === TypeCode.Boolean ||\r\n this.typeCode === TypeCode.Symbol ||\r\n this.typeCode === TypeCode.BigInt\r\n );\r\n }\r\n\r\n public get isNullish(): boolean {\r\n return this.typeCode === TypeCode.Null || this.typeCode === TypeCode.Undefined;\r\n }\r\n\r\n public get isReferenceType(): boolean {\r\n return !this.isPrimitive && !this.isNullish;\r\n }\r\n\r\n public get isArray(): boolean {\r\n return this.typeCode === TypeCode.Array ||\r\n this.constructorRef === (Array as unknown as Constructor<T>);\r\n }\r\n\r\n public get isFunction(): boolean {\r\n return this.typeCode === TypeCode.Function;\r\n }\r\n\r\n public get isValueType(): boolean {\r\n return this.isPrimitive;\r\n }\r\n\r\n public get isClass(): boolean {\r\n if (!this.constructorRef) return false;\r\n try {\r\n return this.constructorRef.toString().startsWith('class ');\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n public get fullName(): string {\r\n if (this.isPrimitive || this.isNullish) {\r\n return `System.${this.name.charAt(0).toUpperCase()}${this.name.slice(1)}`;\r\n }\r\n return this.name;\r\n }\r\n\r\n // ══════════════════════════════════════════════\r\n // JERARQUÍA\r\n // ══════════════════════════════════════════════\r\n\r\n public get baseType(): Type | undefined {\r\n if (!this.constructorRef) return undefined;\r\n\r\n const parentProto = Object.getPrototypeOf(this.constructorRef.prototype);\r\n if (!parentProto || parentProto === Object.prototype) {\r\n return this === Type.Object ? undefined : Type.Object;\r\n }\r\n\r\n const parentCtor = parentProto.constructor as Constructor;\r\n return Type.of(parentCtor);\r\n }\r\n\r\n public getInheritanceChain(): ReadonlyArray<Type> {\r\n const chain: Type[] = [this];\r\n let current: Type | undefined = this.baseType;\r\n\r\n while (current && !chain.includes(current)) {\r\n chain.push(current);\r\n current = current.baseType;\r\n }\r\n\r\n return Object.freeze(chain);\r\n }\r\n\r\n public isAssignableTo(target: Type): boolean {\r\n if (this === target) return true;\r\n if (!this.constructorRef || !target.constructorRef) return false;\r\n\r\n let proto: object | null = this.constructorRef.prototype;\r\n while (proto) {\r\n if (proto.constructor === target.constructorRef) return true;\r\n proto = Object.getPrototypeOf(proto) as object | null;\r\n }\r\n return false;\r\n }\r\n\r\n public isAssignableFrom(source: Type): boolean {\r\n return source.isAssignableTo(this);\r\n }\r\n\r\n public isSubclassOf(parent: Type): boolean {\r\n if (this === parent) return false;\r\n return this.isAssignableTo(parent);\r\n }\r\n\r\n\r\n // ══════════════════════════════════════════════\r\n // REFLEXIÓN\r\n // ══════════════════════════════════════════════\r\n\r\n public getMethodNames(): ReadonlyArray<string> {\r\n if (!this.constructorRef?.prototype) return Object.freeze([]);\r\n return Object.freeze(\r\n Object.getOwnPropertyNames(this.constructorRef.prototype)\r\n .filter(n => n !== 'constructor' &&\r\n typeof Object.getOwnPropertyDescriptor(\r\n this.constructorRef!.prototype, n\r\n )?.value === 'function'\r\n )\r\n );\r\n }\r\n\r\n public getPropertyNames(): ReadonlyArray<string> {\r\n if (!this.constructorRef?.prototype) return Object.freeze([]);\r\n return Object.freeze(\r\n Object.getOwnPropertyNames(this.constructorRef.prototype)\r\n .filter(n => n !== 'constructor' &&\r\n typeof Object.getOwnPropertyDescriptor(\r\n this.constructorRef!.prototype, n\r\n )?.value !== 'function'\r\n )\r\n );\r\n }\r\n\r\n public getMemberNames(): ReadonlyArray<string> {\r\n if (!this.constructorRef?.prototype) return Object.freeze([]);\r\n return Object.freeze(\r\n Object.getOwnPropertyNames(this.constructorRef.prototype)\r\n .filter(n => n !== 'constructor')\r\n );\r\n }\r\n\r\n public hasMethod(name: string): boolean {\r\n if (!this.constructorRef?.prototype) return false;\r\n return typeof this.constructorRef.prototype[name] === 'function';\r\n }\r\n\r\n public hasProperty(name: string): boolean {\r\n if (!this.constructorRef?.prototype) return false;\r\n return name in this.constructorRef.prototype && !this.hasMethod(name);\r\n }\r\n\r\n public getStaticMemberNames(): ReadonlyArray<string> {\r\n if (!this.constructorRef) return Object.freeze([]);\r\n const skip = new Set(['prototype', 'length', 'name', 'caller', 'arguments']);\r\n return Object.freeze(\r\n Object.getOwnPropertyNames(this.constructorRef)\r\n .filter(n => !skip.has(n))\r\n );\r\n }\r\n\r\n\r\n // ══════════════════════════════════════════════\r\n // SERIALIZACIÓN\r\n // ══════════════════════════════════════════════\r\n\r\n public toString(): string {\r\n return `Type [${this.name}]`;\r\n }\r\n\r\n\r\n public [Symbol.toPrimitive](hint: string): string | number {\r\n\r\n let hash = 0;\r\n for (let i = 0; i < this.name.length; i++) {\r\n hash = ((hash << 5) - hash + this.name.charCodeAt(i)) | 0;\r\n }\r\n\r\n return hint === 'number' ? hash : this.toString();\r\n }\r\n\r\n public get [Symbol.toStringTag](): string {\r\n return `Type<${this.name}>`;\r\n }\r\n\r\n // ──────────────────────────────────────────────\r\n // FACTORY INTERNA\r\n // ──────────────────────────────────────────────\r\n\r\n private static _getOrCreate<V>(\r\n key: unknown,\r\n constructorRef: Constructor<V> | unknown,\r\n typeCode: TypeCode,\r\n customName?: string,\r\n ): Type<V> {\r\n const cached = this._cache.get(key);\r\n if (cached) return cached as Type<V>;\r\n\r\n const name = customName\r\n ?? (typeof key === 'string' ? key : 'unknown');\r\n\r\n const ref = typeof constructorRef === 'function'\r\n ? constructorRef as Constructor<V>\r\n : undefined;\r\n\r\n const instance = new Type<V>(name, ref, typeCode);\r\n this._cache.set(key, instance as Type);\r\n return instance;\r\n }\r\n}"]}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["export type EqualityComparer<T> = (arg1: T, arg2: T) => boolean;\r\n\r\nexport type Consumer<T> = (arg: T) => void\r\n\r\nexport type Predicate<T> = (arg: T) => boolean;\r\n\r\nexport type Supplier<T> = () => T;\r\n\r\nexport type Nullable<T> = T | null;\r\n\r\nexport type Optional<T> = T | undefined;\r\n\r\nexport type Nullish = null | undefined;\r\n\r\nexport type Resolvable<T> = Promise<T> | Supplier<T>\r\n\r\nexport type UnaryFunction<T, R> = (arg: T) => R;\r\n\r\nexport type BinaryFunction<T1, T2, R> = (arg1: T1, arg2: T2) => R;\r\n\r\nexport type TernaryFunction<T1, T2, T3, R> = (arg1: T1, arg2: T2, arg3: T3) => R;\r\n\r\nexport type QuaternaryFunction<T1, T2, T3, T4, R> = (\r\n arg1: T1,\r\n arg2: T2,\r\n arg3: T3,\r\n arg4: T4\r\n) => R;\r\n\r\nexport type Constructor<T = unknown> = abstract new (...args: any[]) => T;\r\n"]}
|
package/dist/cjs/utilities.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// noinspection JSUnusedGlobalSymbols
|
|
2
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
5
|
};
|
|
@@ -62,30 +63,89 @@ function lazy(factory) {
|
|
|
62
63
|
},
|
|
63
64
|
});
|
|
64
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Checks if an object is iterable.
|
|
68
|
+
*
|
|
69
|
+
* @param {any} obj - The object to check.
|
|
70
|
+
* @return {boolean} - Returns true if the object is iterable, otherwise false.
|
|
71
|
+
*/
|
|
65
72
|
function isIterable(obj) {
|
|
66
73
|
return obj[Symbol.iterator] === 'function';
|
|
67
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Checks if a given value is a string.
|
|
77
|
+
*
|
|
78
|
+
* @param {*} value - The value to check.
|
|
79
|
+
* @return {boolean} - Returns true if the value is a string, otherwise returns false.
|
|
80
|
+
*/
|
|
68
81
|
function isString(value) {
|
|
69
82
|
return typeof value === 'string';
|
|
70
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Checks if a value is a number.
|
|
86
|
+
*
|
|
87
|
+
* @param {any} value - The value to check.
|
|
88
|
+
* @return {boolean} - Returns true if the value is a number, otherwise false.
|
|
89
|
+
*/
|
|
71
90
|
function isNumber(value) {
|
|
72
91
|
return typeof value === 'number';
|
|
73
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Checks if a given value is a boolean.
|
|
95
|
+
*
|
|
96
|
+
* @param {any} value - The value to be checked.
|
|
97
|
+
*
|
|
98
|
+
* @return {boolean} - Returns true if the value is a boolean, otherwise false.
|
|
99
|
+
*/
|
|
74
100
|
function isBoolean(value) {
|
|
75
101
|
return typeof value === 'boolean';
|
|
76
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Checks if a value is an object.
|
|
105
|
+
* @param {any} value - The value to be checked.
|
|
106
|
+
* @returns {boolean} - Returns true if the value is an object, otherwise returns false.
|
|
107
|
+
*/
|
|
77
108
|
function isObject(value) {
|
|
78
109
|
return value != null && typeof value === 'object' && !Array.isArray(value);
|
|
79
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Determines if a value is an array.
|
|
113
|
+
*
|
|
114
|
+
* @param value - The value to be checked.
|
|
115
|
+
*
|
|
116
|
+
* @return Whether the value is an array.
|
|
117
|
+
*/
|
|
80
118
|
function isArray(value) {
|
|
81
119
|
return Array.isArray(value);
|
|
82
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Checks if a value is a function.
|
|
123
|
+
*
|
|
124
|
+
* @param {any} value - The value to be checked.
|
|
125
|
+
* @return {boolean} - Returns true if the value is a function, otherwise returns false.
|
|
126
|
+
*/
|
|
83
127
|
function isFunction(value) {
|
|
84
128
|
return typeof value === 'function';
|
|
85
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Structural deep equality check.
|
|
132
|
+
*
|
|
133
|
+
* Compares primitives by value, and objects/arrays/Maps/Sets/Dates/RegExps
|
|
134
|
+
* by structure. Handles circular references.
|
|
135
|
+
*
|
|
136
|
+
* @param a - First value.
|
|
137
|
+
* @param b - Second value.
|
|
138
|
+
* @returns `true` if `a` and `b` are structurally equal.
|
|
139
|
+
*/
|
|
86
140
|
function deepEqual(a, b) {
|
|
87
141
|
return _deepEqual(a, b);
|
|
88
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Internal implementation of deep equality check.
|
|
145
|
+
* @param a - First value.
|
|
146
|
+
* @param b - Second value.
|
|
147
|
+
* @param seen - Internal map used to handle circular references.
|
|
148
|
+
*/
|
|
89
149
|
function _deepEqual(a, b, seen = new WeakMap()) {
|
|
90
150
|
if (a === b)
|
|
91
151
|
return true;
|
|
@@ -134,6 +194,23 @@ function _deepEqual(a, b, seen = new WeakMap()) {
|
|
|
134
194
|
}
|
|
135
195
|
return true;
|
|
136
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Submits an HTML form programmatically using the specified HTTP method (default is POST),
|
|
199
|
+
* without using AJAX. Supports nested objects and arrays using bracket notation (e.g., `user[name]`, `tags[]`).
|
|
200
|
+
*
|
|
201
|
+
* @param url - The destination URL where the form will be submitted.
|
|
202
|
+
* @param data - An object containing key-value pairs. Supports nested structures and arrays.
|
|
203
|
+
* @param method - HTTP method to use: 'POST' or 'GET' (default: 'POST').
|
|
204
|
+
* @param target - Optional parameter specifying the target for the form submission (e.g., '_blank', '_self', '_parent', '_top').
|
|
205
|
+
*/
|
|
206
|
+
/**
|
|
207
|
+
* Compares two objects or arrays to check if they have the same immediate fields and values,
|
|
208
|
+
* or the same immediate elements if they are arrays (shallow equality check).
|
|
209
|
+
*
|
|
210
|
+
* @param {any} a - The first object or array.
|
|
211
|
+
* @param {any} b - The second object or array.
|
|
212
|
+
* @return {boolean} - Returns true if the objects/arrays are shallowly equal, otherwise false.
|
|
213
|
+
*/
|
|
137
214
|
function shallowEqual(a, b) {
|
|
138
215
|
if (a === b) {
|
|
139
216
|
return true;
|
|
@@ -157,40 +234,108 @@ function shallowEqual(a, b) {
|
|
|
157
234
|
}
|
|
158
235
|
return false;
|
|
159
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Pauses the execution of an asynchronous function for a specified duration.
|
|
239
|
+
*
|
|
240
|
+
* @param {number} ms - The delay duration in milliseconds.
|
|
241
|
+
* @return {Promise<void>} A promise that resolves after the specified delay.
|
|
242
|
+
*/
|
|
160
243
|
async function delay(ms) {
|
|
161
244
|
await new Promise(resolve => setTimeout(resolve, ms));
|
|
162
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Checks if a value is undefined.
|
|
248
|
+
*
|
|
249
|
+
* @param {any} value - The value to check.
|
|
250
|
+
* @returns {boolean} - True if the value is undefined, false otherwise.
|
|
251
|
+
*/
|
|
163
252
|
function isUndefined(value) {
|
|
164
253
|
return typeof value === 'undefined';
|
|
165
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Checks if a value is defined or not.
|
|
257
|
+
*
|
|
258
|
+
* @param {any} value - The value to be checked.
|
|
259
|
+
*
|
|
260
|
+
* @return {boolean} - True if the value is defined, false otherwise.
|
|
261
|
+
*/
|
|
166
262
|
function isDefined(value) {
|
|
167
263
|
return typeof value !== 'undefined';
|
|
168
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Checks if a given value is null.
|
|
267
|
+
*
|
|
268
|
+
* @param {any} value - The value to check for null.
|
|
269
|
+
* @return {boolean} - Returns true if the value is null, otherwise returns false.
|
|
270
|
+
*/
|
|
169
271
|
function isNull(value) {
|
|
170
272
|
return value === null;
|
|
171
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Determines whether the given value is of type bigint.
|
|
276
|
+
* @param {any} value - The value to be checked.
|
|
277
|
+
* @return {boolean} - Returns true if the value is of type bigint, false otherwise.
|
|
278
|
+
*/
|
|
172
279
|
function isBigInt(value) {
|
|
173
280
|
return typeof value === 'bigint';
|
|
174
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Checks if a given value is a symbol.
|
|
284
|
+
*
|
|
285
|
+
* @param {any} value - The value to be checked.
|
|
286
|
+
* @return {boolean} - Returns true if the value is a symbol, false otherwise.
|
|
287
|
+
*/
|
|
175
288
|
function isSymbol(value) {
|
|
176
289
|
return typeof value === 'symbol';
|
|
177
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Checks if a value is null or undefined.
|
|
293
|
+
*
|
|
294
|
+
* @param {any} value - The value to check.
|
|
295
|
+
* @return {boolean} - Returns true if the value is null or undefined, false otherwise.
|
|
296
|
+
* @deprecated
|
|
297
|
+
*/
|
|
178
298
|
function isNullOrUndefined(value) {
|
|
179
299
|
return value === null || typeof value === 'undefined';
|
|
180
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Checks if a value is null or undefined.
|
|
303
|
+
*
|
|
304
|
+
* @param {any} value - The value to check.
|
|
305
|
+
* @return {boolean} - Returns true if the value is null or undefined, false otherwise.
|
|
306
|
+
|
|
307
|
+
*/
|
|
181
308
|
function isNullish(value) {
|
|
182
309
|
return value === null || typeof value === 'undefined';
|
|
183
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Checks if a given value is empty.
|
|
313
|
+
*
|
|
314
|
+
* @param {any} value - The value to check.
|
|
315
|
+
* @return {boolean} - Returns true if the value is empty, otherwise returns false.
|
|
316
|
+
*/
|
|
184
317
|
function isEmpty(value) {
|
|
185
318
|
return (Array.isArray(value) && value.length === 0) ||
|
|
186
319
|
(typeof value === 'string' && value === '') ||
|
|
187
320
|
value === null || typeof value === 'undefined';
|
|
188
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Check if a value is empty or contains only whitespace characters.
|
|
324
|
+
*
|
|
325
|
+
* @param {any} value - The value to check.
|
|
326
|
+
* @return {boolean} Returns true if the value is empty or contains only whitespace characters, otherwise returns false.
|
|
327
|
+
*/
|
|
189
328
|
function isEmptyOrWhitespace(value) {
|
|
190
329
|
return (Array.isArray(value) && value.length === 0) ||
|
|
191
330
|
(typeof value === 'string' && value.trim() === '') ||
|
|
192
331
|
value === null || typeof value === 'undefined';
|
|
193
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* Converts an object into an array of key-value pairs.
|
|
335
|
+
*
|
|
336
|
+
* @param {Record<string, any>} obj - The object to convert.
|
|
337
|
+
* @return {KeyValuePair<string, any>[]} - The array of key-value pairs.
|
|
338
|
+
*/
|
|
194
339
|
function toPairs(obj) {
|
|
195
340
|
let output = [];
|
|
196
341
|
for (const key in obj) {
|
|
@@ -198,6 +343,15 @@ function toPairs(obj) {
|
|
|
198
343
|
}
|
|
199
344
|
return output;
|
|
200
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Creates an object composed of the picked object properties.
|
|
348
|
+
*
|
|
349
|
+
* @template T - The type of the source object.
|
|
350
|
+
* @template K - The type of the keys to pick.
|
|
351
|
+
* @param obj - The source object.
|
|
352
|
+
* @param props - The property names to pick.
|
|
353
|
+
* @returns A new object with the picked properties.
|
|
354
|
+
*/
|
|
201
355
|
function pick(obj, props) {
|
|
202
356
|
const result = {};
|
|
203
357
|
if (obj === null || typeof obj !== 'object') {
|
|
@@ -210,6 +364,12 @@ function pick(obj, props) {
|
|
|
210
364
|
}
|
|
211
365
|
return result;
|
|
212
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Converts a given thing into a Promise.
|
|
369
|
+
* @template T
|
|
370
|
+
* @param {any} thing - The thing to be converted into a Promise.
|
|
371
|
+
* @returns {Promise<T>} - A Promise representing the given thing.
|
|
372
|
+
*/
|
|
213
373
|
function promisify(thing) {
|
|
214
374
|
if (thing instanceof Promise)
|
|
215
375
|
return thing;
|
|
@@ -226,9 +386,25 @@ function promisify(thing) {
|
|
|
226
386
|
}
|
|
227
387
|
return Promise.resolve(thing);
|
|
228
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Create a deep, independent copy of a value.
|
|
391
|
+
*
|
|
392
|
+
* Supports primitives, plain objects, arrays, `Date`, `RegExp`, `Map`, `Set`,
|
|
393
|
+
* symbol-keyed properties and circular references. Functions are copied by
|
|
394
|
+
* reference. Class instances preserve their prototype.
|
|
395
|
+
*
|
|
396
|
+
* @template T - The value's type.
|
|
397
|
+
* @param value - The value to clone.
|
|
398
|
+
* @returns A deep clone of `value`.
|
|
399
|
+
*/
|
|
229
400
|
function deepClone(value) {
|
|
230
401
|
return _deepClone(value);
|
|
231
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Internal implementation of deep clone.
|
|
405
|
+
* @param value - The value to clone.
|
|
406
|
+
* @param seen - Internal map used to handle circular references.
|
|
407
|
+
*/
|
|
232
408
|
function _deepClone(value, seen = new WeakMap()) {
|
|
233
409
|
if (value === null || typeof value !== "object")
|
|
234
410
|
return value;
|
|
@@ -264,6 +440,13 @@ function _deepClone(value, seen = new WeakMap()) {
|
|
|
264
440
|
}
|
|
265
441
|
return copy;
|
|
266
442
|
}
|
|
443
|
+
/**
|
|
444
|
+
* Returns the type of the given value.
|
|
445
|
+
*
|
|
446
|
+
* @param {any} value - The value to determine the type of.
|
|
447
|
+
* @return {Type} - The type of the given value.
|
|
448
|
+
* @deprecated use Type.of(...)
|
|
449
|
+
*/
|
|
267
450
|
function getType(value) {
|
|
268
451
|
return type_js_1.default.of(value);
|
|
269
452
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"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","sourcesContent":["// noinspection JSUnusedGlobalSymbols\r\n\r\n\r\nimport KeyValuePair from \"./key-value-pair.js\";\r\nimport type {Resolvable} from \"./types.js\";\r\nimport Type from \"./type.js\";\r\n\r\nexport function lazy<T extends object>(factory: () => T): T {\r\n let instance: T | null = null;\r\n\r\n const getInstance = (): T => {\r\n if (!instance) {\r\n instance = factory();\r\n }\r\n return instance;\r\n };\r\n\r\n return new Proxy({} as T, {\r\n get(_, prop, receiver) {\r\n return Reflect.get(getInstance(), prop, receiver);\r\n },\r\n set(_, prop, value, receiver) {\r\n return Reflect.set(getInstance(), prop, value, receiver);\r\n },\r\n has(_, prop) {\r\n return Reflect.has(getInstance(), prop);\r\n },\r\n deleteProperty(_, prop) {\r\n return Reflect.deleteProperty(getInstance(), prop);\r\n },\r\n ownKeys() {\r\n return Reflect.ownKeys(getInstance());\r\n },\r\n getOwnPropertyDescriptor(_, prop) {\r\n return Reflect.getOwnPropertyDescriptor(getInstance(), prop);\r\n },\r\n getPrototypeOf() {\r\n return Reflect.getPrototypeOf(getInstance());\r\n },\r\n });\r\n}\r\n\r\n/**\r\n * Checks if an object is iterable.\r\n *\r\n * @param {any} obj - The object to check.\r\n * @return {boolean} - Returns true if the object is iterable, otherwise false.\r\n */\r\nexport function isIterable(obj: any): boolean {\r\n return obj[Symbol.iterator] === 'function';\r\n}\r\n\r\n/**\r\n * Checks if a given value is a string.\r\n *\r\n * @param {*} value - The value to check.\r\n * @return {boolean} - Returns true if the value is a string, otherwise returns false.\r\n */\r\nexport function isString(value: any): value is string {\r\n return typeof value === 'string';\r\n}\r\n\r\n/**\r\n * Checks if a value is a number.\r\n *\r\n * @param {any} value - The value to check.\r\n * @return {boolean} - Returns true if the value is a number, otherwise false.\r\n */\r\nexport function isNumber(value: any): value is number {\r\n return typeof value === 'number';\r\n}\r\n\r\n/**\r\n * Checks if a given value is a boolean.\r\n *\r\n * @param {any} value - The value to be checked.\r\n *\r\n * @return {boolean} - Returns true if the value is a boolean, otherwise false.\r\n */\r\nexport function isBoolean(value: any): value is boolean {\r\n return typeof value === 'boolean';\r\n}\r\n\r\n/**\r\n * Checks if a value is an object.\r\n * @param {any} value - The value to be checked.\r\n * @returns {boolean} - Returns true if the value is an object, otherwise returns false.\r\n */\r\nexport function isObject(value: any): value is object {\r\n return value != null && typeof value === 'object' && !Array.isArray(value);\r\n}\r\n\r\n/**\r\n * Determines if a value is an array.\r\n *\r\n * @param value - The value to be checked.\r\n *\r\n * @return Whether the value is an array.\r\n */\r\nexport function isArray(value: any): value is any[] {\r\n return Array.isArray(value);\r\n}\r\n\r\n/**\r\n * Checks if a value is a function.\r\n *\r\n * @param {any} value - The value to be checked.\r\n * @return {boolean} - Returns true if the value is a function, otherwise returns false.\r\n */\r\nexport function isFunction(value: any): value is Function {\r\n return typeof value === 'function';\r\n}\r\n\r\n\r\n/**\r\n * Structural deep equality check.\r\n *\r\n * Compares primitives by value, and objects/arrays/Maps/Sets/Dates/RegExps\r\n * by structure. Handles circular references.\r\n *\r\n * @param a - First value.\r\n * @param b - Second value.\r\n * @returns `true` if `a` and `b` are structurally equal.\r\n */\r\nexport function deepEqual(a: unknown, b: unknown): boolean {\r\n return _deepEqual(a, b);\r\n}\r\n\r\n/**\r\n * Internal implementation of deep equality check.\r\n * @param a - First value.\r\n * @param b - Second value.\r\n * @param seen - Internal map used to handle circular references.\r\n */\r\nfunction _deepEqual(\r\n a: unknown,\r\n b: unknown,\r\n seen: WeakMap<object, unknown> = new WeakMap()\r\n): boolean {\r\n if (a === b) return true;\r\n if (a === null || b === null) return false;\r\n if (typeof a !== typeof b) return false;\r\n if (typeof a !== \"object\") return false;\r\n\r\n const objA = a as object;\r\n if (seen.has(objA)) return seen.get(objA) === b;\r\n seen.set(objA, b);\r\n\r\n if (a instanceof Date) return b instanceof Date && a.getTime() === b.getTime();\r\n if (a instanceof RegExp) return b instanceof RegExp && a.toString() === b.toString();\r\n if (Array.isArray(a) !== Array.isArray(b)) return false;\r\n\r\n if (a instanceof Map) {\r\n if (!(b instanceof Map) || a.size !== b.size) return false;\r\n for (const [k, v] of a) {\r\n if (!b.has(k) || !_deepEqual(v, b.get(k), seen)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n if (a instanceof Set) {\r\n if (!(b instanceof Set) || a.size !== b.size) return false;\r\n for (const v of a) if (!b.has(v)) return false;\r\n return true;\r\n }\r\n\r\n const keysA = Reflect.ownKeys(a as object);\r\n const keysB = Reflect.ownKeys(b as object);\r\n if (keysA.length !== keysB.length) return false;\r\n\r\n for (const key of keysA) {\r\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\r\n if (!_deepEqual((a as any)[key], (b as any)[key], seen)) return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\n\r\n/**\r\n * Submits an HTML form programmatically using the specified HTTP method (default is POST),\r\n * without using AJAX. Supports nested objects and arrays using bracket notation (e.g., `user[name]`, `tags[]`).\r\n *\r\n * @param url - The destination URL where the form will be submitted.\r\n * @param data - An object containing key-value pairs. Supports nested structures and arrays.\r\n * @param method - HTTP method to use: 'POST' or 'GET' (default: 'POST').\r\n * @param target - Optional parameter specifying the target for the form submission (e.g., '_blank', '_self', '_parent', '_top').\r\n */\r\n\r\n\r\n/**\r\n * Compares two objects or arrays to check if they have the same immediate fields and values,\r\n * or the same immediate elements if they are arrays (shallow equality check).\r\n *\r\n * @param {any} a - The first object or array.\r\n * @param {any} b - The second object or array.\r\n * @return {boolean} - Returns true if the objects/arrays are shallowly equal, otherwise false.\r\n */\r\nexport function shallowEqual(a: any, b: any): boolean {\r\n if (a === b) {\r\n return true;\r\n }\r\n\r\n if (a === null || b === null || typeof a !== typeof b) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(a) && Array.isArray(b)) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n return a.every((value, index) => value === b[index]);\r\n }\r\n\r\n if (typeof a === \"object\" && typeof b === \"object\") {\r\n const keysA = Object.keys(a);\r\n const keysB = Object.keys(b);\r\n\r\n if (keysA.length !== keysB.length) {\r\n return false;\r\n }\r\n return keysA.every(key => b.hasOwnProperty(key) && a[key] === b[key]);\r\n }\r\n\r\n return false;\r\n}\r\n\r\n\r\n/**\r\n * Pauses the execution of an asynchronous function for a specified duration.\r\n *\r\n * @param {number} ms - The delay duration in milliseconds.\r\n * @return {Promise<void>} A promise that resolves after the specified delay.\r\n */\r\nexport async function delay(ms: number): Promise<void> {\r\n await new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n/**\r\n * Checks if a value is undefined.\r\n *\r\n * @param {any} value - The value to check.\r\n * @returns {boolean} - True if the value is undefined, false otherwise.\r\n */\r\nexport function isUndefined(value: any): value is undefined {\r\n return typeof value === 'undefined';\r\n}\r\n\r\n/**\r\n * Checks if a value is defined or not.\r\n *\r\n * @param {any} value - The value to be checked.\r\n *\r\n * @return {boolean} - True if the value is defined, false otherwise.\r\n */\r\nexport function isDefined(value: any): value is undefined {\r\n return typeof value !== 'undefined';\r\n}\r\n\r\n/**\r\n * Checks if a given value is null.\r\n *\r\n * @param {any} value - The value to check for null.\r\n * @return {boolean} - Returns true if the value is null, otherwise returns false.\r\n */\r\nexport function isNull(value: any): value is null {\r\n return value === null;\r\n}\r\n\r\n\r\n/**\r\n * Determines whether the given value is of type bigint.\r\n * @param {any} value - The value to be checked.\r\n * @return {boolean} - Returns true if the value is of type bigint, false otherwise.\r\n */\r\nexport function isBigInt(value: any): value is bigint {\r\n return typeof value === 'bigint';\r\n}\r\n\r\n/**\r\n * Checks if a given value is a symbol.\r\n *\r\n * @param {any} value - The value to be checked.\r\n * @return {boolean} - Returns true if the value is a symbol, false otherwise.\r\n */\r\nexport function isSymbol(value: any): value is symbol {\r\n return typeof value === 'symbol';\r\n}\r\n\r\n/**\r\n * Checks if a value is null or undefined.\r\n *\r\n * @param {any} value - The value to check.\r\n * @return {boolean} - Returns true if the value is null or undefined, false otherwise.\r\n * @deprecated\r\n */\r\nexport function isNullOrUndefined(value: any): boolean {\r\n return value === null || typeof value === 'undefined';\r\n}\r\n\r\n/**\r\n * Checks if a value is null or undefined.\r\n *\r\n * @param {any} value - The value to check.\r\n * @return {boolean} - Returns true if the value is null or undefined, false otherwise.\r\n\r\n */\r\nexport function isNullish(value: any): boolean {\r\n return value === null || typeof value === 'undefined';\r\n}\r\n\r\n/**\r\n * Checks if a given value is empty.\r\n *\r\n * @param {any} value - The value to check.\r\n * @return {boolean} - Returns true if the value is empty, otherwise returns false.\r\n */\r\nexport function isEmpty(value: any): boolean {\r\n return (Array.isArray(value) && value.length === 0) ||\r\n (typeof value === 'string' && value === '') ||\r\n value === null || typeof value === 'undefined';\r\n}\r\n\r\n/**\r\n * Check if a value is empty or contains only whitespace characters.\r\n *\r\n * @param {any} value - The value to check.\r\n * @return {boolean} Returns true if the value is empty or contains only whitespace characters, otherwise returns false.\r\n */\r\nexport function isEmptyOrWhitespace(value: any): boolean {\r\n return (Array.isArray(value) && value.length === 0) ||\r\n (typeof value === 'string' && value.trim() === '') ||\r\n value === null || typeof value === 'undefined';\r\n}\r\n\r\n\r\n/**\r\n * Converts an object into an array of key-value pairs.\r\n *\r\n * @param {Record<string, any>} obj - The object to convert.\r\n * @return {KeyValuePair<string, any>[]} - The array of key-value pairs.\r\n */\r\nexport function toPairs(obj: Record<string, any>): KeyValuePair<string, any>[] {\r\n\r\n let output = [];\r\n for (const key in obj) {\r\n output.push(new KeyValuePair(key, obj[key]));\r\n }\r\n return output;\r\n\r\n}\r\n\r\n/**\r\n * Creates an object composed of the picked object properties.\r\n *\r\n * @template T - The type of the source object.\r\n * @template K - The type of the keys to pick.\r\n * @param obj - The source object.\r\n * @param props - The property names to pick.\r\n * @returns A new object with the picked properties.\r\n */\r\nexport function pick<T extends object, K extends keyof T>(obj: T, props: K[]): Pick<T, K> {\r\n const result = {} as Pick<T, K>;\r\n if (obj === null || typeof obj !== 'object') {\r\n return result;\r\n }\r\n\r\n for (const key of props) {\r\n if (key in obj) {\r\n result[key] = obj[key];\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Converts a given thing into a Promise.\r\n * @template T\r\n * @param {any} thing - The thing to be converted into a Promise.\r\n * @returns {Promise<T>} - A Promise representing the given thing.\r\n */\r\nexport function promisify<T>(thing: Resolvable<T>): Promise<T> {\r\n\r\n if (thing instanceof Promise)\r\n return thing;\r\n\r\n\r\n if (isFunction(thing)) {\r\n return new Promise<T>((resolve, reject) => {\r\n try {\r\n const result = thing();\r\n resolve(result);\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n }\r\n\r\n return Promise.resolve(thing);\r\n}\r\n\r\n\r\n/**\r\n * Create a deep, independent copy of a value.\r\n *\r\n * Supports primitives, plain objects, arrays, `Date`, `RegExp`, `Map`, `Set`,\r\n * symbol-keyed properties and circular references. Functions are copied by\r\n * reference. Class instances preserve their prototype.\r\n *\r\n * @template T - The value's type.\r\n * @param value - The value to clone.\r\n * @returns A deep clone of `value`.\r\n */\r\nexport function deepClone<T>(value: T): T {\r\n return _deepClone(value);\r\n}\r\n\r\n/**\r\n * Internal implementation of deep clone.\r\n * @param value - The value to clone.\r\n * @param seen - Internal map used to handle circular references.\r\n */\r\nfunction _deepClone<T>(\r\n value: T,\r\n seen: WeakMap<object, unknown> = new WeakMap()\r\n): T {\r\n if (value === null || typeof value !== \"object\") return value;\r\n\r\n const obj = value as unknown as object;\r\n if (seen.has(obj)) return seen.get(obj) as T;\r\n\r\n if (value instanceof Date) return new Date(value) as T;\r\n if (value instanceof RegExp) return new RegExp(value) as T;\r\n\r\n if (value instanceof Map) {\r\n const copy = new Map();\r\n seen.set(value, copy);\r\n for (const [k, v] of value) {\r\n copy.set(_deepClone(k, seen), _deepClone(v, seen));\r\n }\r\n return copy as T;\r\n }\r\n\r\n if (value instanceof Set) {\r\n const copy = new Set();\r\n seen.set(value, copy);\r\n for (const v of value) {\r\n copy.add(_deepClone(v, seen));\r\n }\r\n return copy as T;\r\n }\r\n\r\n const copy: any = Array.isArray(value)\r\n ? []\r\n : Object.create(Object.getPrototypeOf(value));\r\n\r\n seen.set(obj, copy);\r\n\r\n for (const key of Reflect.ownKeys(obj)) {\r\n copy[key] = _deepClone((value as any)[key], seen);\r\n }\r\n\r\n return copy as T;\r\n}\r\n\r\n\r\n/**\r\n * Returns the type of the given value.\r\n *\r\n * @param {any} value - The value to determine the type of.\r\n * @return {Type} - The type of the given value.\r\n * @deprecated use Type.of(...)\r\n */\r\nexport function getType(value: any): Type {\r\n\r\n return Type.of(value);\r\n}\r\n\r\n\r\n\r\n"]}
|