@develia/commons 0.3.44 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/array.js +44 -0
- package/dist/cjs/array.js.map +1 -0
- package/dist/cjs/async-pool-executor.js +49 -0
- package/dist/cjs/async-pool-executor.js.map +1 -0
- package/dist/cjs/clean-url-search-params.js +10 -0
- package/dist/cjs/clean-url-search-params.js.map +1 -0
- package/dist/cjs/collections/cache-dictionary.js +67 -0
- package/dist/cjs/collections/cache-dictionary.js.map +1 -0
- package/dist/cjs/collections/default-map.js +21 -0
- package/dist/cjs/collections/default-map.js.map +1 -0
- package/dist/cjs/collections/default-weak-map.js +26 -0
- package/dist/cjs/collections/default-weak-map.js.map +1 -0
- package/dist/cjs/collections/index.js +13 -0
- package/dist/cjs/collections/index.js.map +1 -0
- package/dist/cjs/from.js +504 -0
- package/dist/cjs/from.js.map +1 -0
- package/dist/cjs/index.js +50 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/key-value-pair.js +16 -0
- package/dist/cjs/key-value-pair.js.map +1 -0
- package/dist/cjs/lazy.js +25 -0
- package/dist/cjs/lazy.js.map +1 -0
- package/dist/cjs/math.js +15 -0
- package/dist/cjs/math.js.map +1 -0
- package/dist/cjs/order.js +9 -0
- package/dist/cjs/order.js.map +1 -0
- package/dist/cjs/patch.js +44 -0
- package/dist/cjs/patch.js.map +1 -0
- package/dist/cjs/remote-data.js +115 -0
- package/dist/cjs/remote-data.js.map +1 -0
- package/dist/cjs/stopwatch.js +36 -0
- package/dist/cjs/stopwatch.js.map +1 -0
- package/dist/cjs/string.js +29 -0
- package/dist/cjs/string.js.map +1 -0
- package/dist/cjs/timer.js +50 -0
- package/dist/cjs/timer.js.map +1 -0
- package/dist/cjs/timespan.js +152 -0
- package/dist/cjs/timespan.js.map +1 -0
- package/dist/cjs/type.js +16 -0
- package/dist/cjs/type.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utilities.js +309 -0
- package/dist/cjs/utilities.js.map +1 -0
- package/dist/esm/array.js +38 -0
- package/dist/esm/array.js.map +1 -0
- package/dist/esm/async-pool-executor.js +46 -0
- package/dist/esm/async-pool-executor.js.map +1 -0
- package/dist/esm/clean-url-search-params.js +7 -0
- package/dist/esm/clean-url-search-params.js.map +1 -0
- package/dist/esm/collections/cache-dictionary.js +64 -0
- package/dist/esm/collections/cache-dictionary.js.map +1 -0
- package/dist/esm/collections/default-map.js +18 -0
- package/dist/esm/collections/default-map.js.map +1 -0
- package/dist/esm/collections/default-weak-map.js +23 -0
- package/dist/esm/collections/default-weak-map.js.map +1 -0
- package/dist/esm/collections/index.js +4 -0
- package/dist/esm/collections/index.js.map +1 -0
- package/dist/esm/from.js +495 -0
- package/dist/esm/from.js.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/key-value-pair.js +13 -0
- package/dist/esm/key-value-pair.js.map +1 -0
- package/dist/esm/lazy.js +22 -0
- package/dist/esm/lazy.js.map +1 -0
- package/dist/esm/math.js +11 -0
- package/dist/esm/math.js.map +1 -0
- package/dist/esm/order.js +7 -0
- package/dist/esm/order.js.map +1 -0
- package/dist/esm/patch.js +40 -0
- package/dist/esm/patch.js.map +1 -0
- package/dist/esm/remote-data.js +112 -0
- package/dist/esm/remote-data.js.map +1 -0
- package/dist/esm/stopwatch.js +30 -0
- package/dist/esm/stopwatch.js.map +1 -0
- package/dist/esm/string.js +24 -0
- package/dist/esm/string.js.map +1 -0
- package/dist/esm/timer.js +47 -0
- package/dist/esm/timer.js.map +1 -0
- package/dist/esm/timespan.js +150 -0
- package/dist/esm/timespan.js.map +1 -0
- package/dist/esm/type.js +14 -0
- package/dist/esm/type.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utilities.js +277 -0
- package/dist/esm/utilities.js.map +1 -0
- package/dist/types/array.d.ts +6 -0
- package/dist/types/array.d.ts.map +1 -0
- package/dist/types/async-pool-executor.d.ts +14 -0
- package/dist/types/async-pool-executor.d.ts.map +1 -0
- package/dist/types/clean-url-search-params.d.ts +4 -0
- package/dist/types/clean-url-search-params.d.ts.map +1 -0
- package/dist/types/collections/cache-dictionary.d.ts +16 -0
- package/dist/types/collections/cache-dictionary.d.ts.map +1 -0
- package/dist/types/collections/default-map.d.ts +7 -0
- package/dist/types/collections/default-map.d.ts.map +1 -0
- package/dist/types/collections/default-weak-map.d.ts +7 -0
- package/dist/types/collections/default-weak-map.d.ts.map +1 -0
- package/dist/types/collections/index.d.ts +4 -0
- package/dist/types/collections/index.d.ts.map +1 -0
- package/dist/types/from.d.ts +59 -0
- package/dist/types/from.d.ts.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/key-value-pair.d.ts +8 -0
- package/dist/types/key-value-pair.d.ts.map +1 -0
- package/dist/types/lazy.d.ts +11 -0
- package/dist/types/lazy.d.ts.map +1 -0
- package/dist/types/math.d.ts +3 -0
- package/dist/types/math.d.ts.map +1 -0
- package/dist/types/order.d.ts +6 -0
- package/dist/types/order.d.ts.map +1 -0
- package/dist/types/patch.d.ts +8 -0
- package/dist/types/patch.d.ts.map +1 -0
- package/dist/types/remote-data.d.ts +32 -0
- package/dist/types/remote-data.d.ts.map +1 -0
- package/dist/types/stopwatch.d.ts +10 -0
- package/dist/types/stopwatch.d.ts.map +1 -0
- package/dist/types/string.d.ts +4 -0
- package/dist/types/string.d.ts.map +1 -0
- package/dist/types/timer.d.ts +15 -0
- package/dist/types/timer.d.ts.map +1 -0
- package/dist/types/timespan.d.ts +47 -0
- package/dist/types/timespan.d.ts.map +1 -0
- package/dist/types/type.d.ts +13 -0
- package/dist/types/type.d.ts.map +1 -0
- package/dist/types/types.d.ts +14 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utilities.d.ts +31 -0
- package/dist/types/utilities.d.ts.map +1 -0
- package/dist/web/array.js +38 -0
- package/dist/web/array.js.map +1 -0
- package/dist/web/async-pool-executor.js +46 -0
- package/dist/web/async-pool-executor.js.map +1 -0
- package/dist/web/clean-url-search-params.js +7 -0
- package/dist/web/clean-url-search-params.js.map +1 -0
- package/dist/web/collections/cache-dictionary.js +64 -0
- package/dist/web/collections/cache-dictionary.js.map +1 -0
- package/dist/web/collections/default-map.js +18 -0
- package/dist/web/collections/default-map.js.map +1 -0
- package/dist/web/collections/default-weak-map.js +23 -0
- package/dist/web/collections/default-weak-map.js.map +1 -0
- package/dist/web/collections/index.js +4 -0
- package/dist/web/collections/index.js.map +1 -0
- package/dist/web/from.js +496 -0
- package/dist/web/from.js.map +1 -0
- package/dist/web/index.js +18 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/key-value-pair.js +13 -0
- package/dist/web/key-value-pair.js.map +1 -0
- package/dist/web/lazy.js +22 -0
- package/dist/web/lazy.js.map +1 -0
- package/dist/web/math.js +11 -0
- package/dist/web/math.js.map +1 -0
- package/dist/web/order.js +7 -0
- package/dist/web/order.js.map +1 -0
- package/dist/web/patch.js +40 -0
- package/dist/web/patch.js.map +1 -0
- package/dist/web/remote-data.js +112 -0
- package/dist/web/remote-data.js.map +1 -0
- package/dist/web/stopwatch.js +30 -0
- package/dist/web/stopwatch.js.map +1 -0
- package/dist/web/string.js +24 -0
- package/dist/web/string.js.map +1 -0
- package/dist/web/timer.js +47 -0
- package/dist/web/timer.js.map +1 -0
- package/dist/web/timespan.js +150 -0
- package/dist/web/timespan.js.map +1 -0
- package/dist/web/type.js +14 -0
- package/dist/web/type.js.map +1 -0
- package/dist/web/types.js +2 -0
- package/dist/web/types.js.map +1 -0
- package/dist/web/utilities.js +277 -0
- package/dist/web/utilities.js.map +1 -0
- package/package.json +34 -12
- package/src/array.ts +49 -0
- package/src/async-pool-executor.ts +2 -2
- package/src/collections/default-map.ts +42 -0
- package/src/collections/default-weak-map.ts +49 -0
- package/src/collections/index.ts +3 -0
- package/src/from.ts +4 -4
- package/src/index.ts +34 -22
- package/src/lazy.ts +1 -1
- package/src/patch.ts +80 -0
- package/src/remote-data.ts +149 -0
- package/src/stopwatch.ts +1 -1
- package/src/{typing.ts → type.ts} +3 -1
- package/src/types.ts +4 -1
- package/src/utilities.ts +19 -18
- package/dist/develia-commons.js +0 -1690
- package/dist/develia-commons.min.js +0 -1
- package/dist/index.cjs.js +0 -1688
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.esm.js +0 -1641
- package/dist/index.esm.js.map +0 -1
- package/src/array-manipulator.ts +0 -159
- package/src/collections.ts +0 -24
- /package/src/{cache-dictionary.ts → collections/cache-dictionary.ts} +0 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import KeyValuePair from "./key-value-pair.js";
|
|
2
|
+
import Type from "./type.js";
|
|
3
|
+
export function isIterable(obj) {
|
|
4
|
+
return obj[Symbol.iterator] === 'function';
|
|
5
|
+
}
|
|
6
|
+
export function isString(value) {
|
|
7
|
+
return typeof value === 'string';
|
|
8
|
+
}
|
|
9
|
+
export function isNumber(value) {
|
|
10
|
+
return typeof value === 'number';
|
|
11
|
+
}
|
|
12
|
+
export function isBoolean(value) {
|
|
13
|
+
return typeof value === 'boolean';
|
|
14
|
+
}
|
|
15
|
+
export function isObject(value) {
|
|
16
|
+
return value != null && typeof value === 'object' && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
export function isArray(value) {
|
|
19
|
+
return Array.isArray(value);
|
|
20
|
+
}
|
|
21
|
+
export function isFunction(value) {
|
|
22
|
+
return typeof value === 'function';
|
|
23
|
+
}
|
|
24
|
+
export function deepEqual(a, b) {
|
|
25
|
+
if (a === b) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (a === null || b === null || typeof a !== typeof b) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
32
|
+
if (a.length !== b.length) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
for (let i = 0; i < a.length; i++) {
|
|
36
|
+
if (!deepEqual(a[i], b[i])) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if (typeof a === "object" && typeof b === "object") {
|
|
43
|
+
const keysA = Object.keys(a);
|
|
44
|
+
const keysB = Object.keys(b);
|
|
45
|
+
if (keysA.length !== keysB.length) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
for (const key of keysA) {
|
|
49
|
+
if (!keysB.includes(key) || !deepEqual(a[key], b[key])) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
export function submitForm(url, data, method = 'POST', target) {
|
|
58
|
+
const form = document.createElement('form');
|
|
59
|
+
form.method = method.toUpperCase();
|
|
60
|
+
form.action = url;
|
|
61
|
+
form.style.display = 'none';
|
|
62
|
+
if (target) {
|
|
63
|
+
form.target = target;
|
|
64
|
+
}
|
|
65
|
+
const appendInputs = (keyPrefix, value) => {
|
|
66
|
+
if (Array.isArray(value)) {
|
|
67
|
+
value.forEach(val => {
|
|
68
|
+
appendInputs(`${keyPrefix}[]`, val);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else if (typeof value === 'object' && value !== null) {
|
|
72
|
+
for (const subKey in value) {
|
|
73
|
+
if (value.hasOwnProperty(subKey)) {
|
|
74
|
+
appendInputs(`${keyPrefix}[${subKey}]`, value[subKey]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const input = document.createElement('input');
|
|
80
|
+
input.type = 'hidden';
|
|
81
|
+
input.name = keyPrefix;
|
|
82
|
+
input.value = String(value);
|
|
83
|
+
form.appendChild(input);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
for (const key in data) {
|
|
87
|
+
if (data.hasOwnProperty(key)) {
|
|
88
|
+
appendInputs(key, data[key]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
document.body.appendChild(form);
|
|
92
|
+
form.submit();
|
|
93
|
+
}
|
|
94
|
+
export function shallowEqual(a, b) {
|
|
95
|
+
if (a === b) {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
if (a === null || b === null || typeof a !== typeof b) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
102
|
+
if (a.length !== b.length) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
return a.every((value, index) => value === b[index]);
|
|
106
|
+
}
|
|
107
|
+
if (typeof a === "object" && typeof b === "object") {
|
|
108
|
+
const keysA = Object.keys(a);
|
|
109
|
+
const keysB = Object.keys(b);
|
|
110
|
+
if (keysA.length !== keysB.length) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return keysA.every(key => b.hasOwnProperty(key) && a[key] === b[key]);
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
export async function delay(ms) {
|
|
118
|
+
await new Promise(resolve => setTimeout(resolve, ms));
|
|
119
|
+
}
|
|
120
|
+
export function isUndefined(value) {
|
|
121
|
+
return typeof value === 'undefined';
|
|
122
|
+
}
|
|
123
|
+
export function isDefined(value) {
|
|
124
|
+
return typeof value !== 'undefined';
|
|
125
|
+
}
|
|
126
|
+
export function isNull(value) {
|
|
127
|
+
return value === null;
|
|
128
|
+
}
|
|
129
|
+
export function isBigInt(value) {
|
|
130
|
+
return typeof value === 'bigint';
|
|
131
|
+
}
|
|
132
|
+
export function isSymbol(value) {
|
|
133
|
+
return typeof value === 'symbol';
|
|
134
|
+
}
|
|
135
|
+
export function isNullOrUndefined(value) {
|
|
136
|
+
return value === null || typeof value === 'undefined';
|
|
137
|
+
}
|
|
138
|
+
export function isEmpty(value) {
|
|
139
|
+
return (Array.isArray(value) && value.length === 0) ||
|
|
140
|
+
(typeof value === 'string' && value === '') ||
|
|
141
|
+
value === null || typeof value === 'undefined';
|
|
142
|
+
}
|
|
143
|
+
export function isEmptyOrWhitespace(value) {
|
|
144
|
+
return (Array.isArray(value) && value.length === 0) ||
|
|
145
|
+
(typeof value === 'string' && value.trim() === '') ||
|
|
146
|
+
value === null || typeof value === 'undefined';
|
|
147
|
+
}
|
|
148
|
+
export async function ajaxSubmit(selectorOrElement) {
|
|
149
|
+
const form = typeof selectorOrElement === 'string'
|
|
150
|
+
? document.querySelector(selectorOrElement)
|
|
151
|
+
: selectorOrElement;
|
|
152
|
+
if (!(form instanceof HTMLFormElement)) {
|
|
153
|
+
throw new Error("Invalid element.");
|
|
154
|
+
}
|
|
155
|
+
return await fetch(form.action, {
|
|
156
|
+
method: form.method,
|
|
157
|
+
body: new FormData(form),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
export function toPairs(obj) {
|
|
161
|
+
let output = [];
|
|
162
|
+
for (const key in obj) {
|
|
163
|
+
output.push(new KeyValuePair(key, obj[key]));
|
|
164
|
+
}
|
|
165
|
+
return output;
|
|
166
|
+
}
|
|
167
|
+
export function promisify(thing) {
|
|
168
|
+
if (thing instanceof Promise)
|
|
169
|
+
return thing;
|
|
170
|
+
if (isFunction(thing)) {
|
|
171
|
+
return new Promise((resolve, reject) => {
|
|
172
|
+
try {
|
|
173
|
+
const result = thing();
|
|
174
|
+
resolve(result);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
reject(error);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return Promise.resolve(thing);
|
|
182
|
+
}
|
|
183
|
+
export function ajaxSubmission(selectorOrElement, onSuccess = undefined, onFailure = undefined) {
|
|
184
|
+
const form = typeof selectorOrElement === 'string'
|
|
185
|
+
? document.querySelector(selectorOrElement)
|
|
186
|
+
: selectorOrElement;
|
|
187
|
+
if (!(form instanceof HTMLFormElement)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
form.addEventListener('submit', async (event) => {
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
let promise = ajaxSubmit(form);
|
|
193
|
+
if (promise) {
|
|
194
|
+
if (onSuccess)
|
|
195
|
+
promise = promise.then(onSuccess);
|
|
196
|
+
if (onFailure)
|
|
197
|
+
promise.catch(onFailure);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
export function deepClone(obj) {
|
|
202
|
+
if (obj === null || typeof obj !== 'object') {
|
|
203
|
+
return obj;
|
|
204
|
+
}
|
|
205
|
+
if (Array.isArray(obj)) {
|
|
206
|
+
const copy = [];
|
|
207
|
+
for (const element of obj) {
|
|
208
|
+
copy.push(deepClone(element));
|
|
209
|
+
}
|
|
210
|
+
return copy;
|
|
211
|
+
}
|
|
212
|
+
const copy = {};
|
|
213
|
+
for (const key in obj) {
|
|
214
|
+
if (obj.hasOwnProperty(key)) {
|
|
215
|
+
copy[key] = deepClone(obj[key]);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return copy;
|
|
219
|
+
}
|
|
220
|
+
export function getType(value) {
|
|
221
|
+
return value === null ? Type.Null : Type[typeof value];
|
|
222
|
+
}
|
|
223
|
+
export function formToObject(form) {
|
|
224
|
+
const fd = new FormData(form);
|
|
225
|
+
const out = {};
|
|
226
|
+
for (const [key, value] of fd.entries()) {
|
|
227
|
+
if (key in out) {
|
|
228
|
+
const current = out[key];
|
|
229
|
+
if (Array.isArray(current)) {
|
|
230
|
+
current.push(value);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
out[key] = [current, value];
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
out[key] = value;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return out;
|
|
241
|
+
}
|
|
242
|
+
function _objectToFormData(data, formData, parentKey = '') {
|
|
243
|
+
for (const key in data) {
|
|
244
|
+
if (data.hasOwnProperty(key)) {
|
|
245
|
+
const value = data[key];
|
|
246
|
+
if (value instanceof Date) {
|
|
247
|
+
formData.append(parentKey ? `${parentKey}[${key}]` : key, value.toISOString());
|
|
248
|
+
}
|
|
249
|
+
else if (value instanceof File) {
|
|
250
|
+
formData.append(parentKey ? `${parentKey}[${key}]` : key, value);
|
|
251
|
+
}
|
|
252
|
+
else if (typeof value === 'object' && !Array.isArray(value)) {
|
|
253
|
+
_objectToFormData(value, formData, parentKey ? `${parentKey}[${key}]` : key);
|
|
254
|
+
}
|
|
255
|
+
else if (Array.isArray(value)) {
|
|
256
|
+
value.forEach((item, index) => {
|
|
257
|
+
const arrayKey = `${parentKey ? `${parentKey}[${key}]` : key}[${index}]`;
|
|
258
|
+
if (typeof item === 'object' && !Array.isArray(item)) {
|
|
259
|
+
_objectToFormData(item, formData, arrayKey);
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
formData.append(arrayKey, item);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
formData.append(parentKey ? `${parentKey}[${key}]` : key, value);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return formData;
|
|
272
|
+
}
|
|
273
|
+
export function objectToFormData(data) {
|
|
274
|
+
let formData = new FormData();
|
|
275
|
+
return _objectToFormData(data, formData);
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=utilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,28 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@develia/commons",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Antonio Gil Espinosa",
|
|
6
6
|
"email": "antonio.gil.espinosa@gmail.com",
|
|
7
7
|
"url": "https://antoniogilespinosa.com"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
10
|
-
"
|
|
9
|
+
"type": "module",
|
|
10
|
+
"main": "./dist/cjs/index.js",
|
|
11
|
+
"module": "./dist/esm/index.js",
|
|
12
|
+
"types": "./dist/types/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/types/index.d.ts",
|
|
16
|
+
"import": "./dist/esm/index.js",
|
|
17
|
+
"require": "./dist/cjs/index.js",
|
|
18
|
+
"browser": "./dist/web/index.js"
|
|
19
|
+
|
|
20
|
+
},
|
|
21
|
+
"./array": {
|
|
22
|
+
"types": "./dist/types/array.d.ts",
|
|
23
|
+
"import": "./dist/esm/array.js",
|
|
24
|
+
"require": "./dist/cjs/array.js",
|
|
25
|
+
"browser": "./dist/web/array.js"
|
|
26
|
+
|
|
27
|
+
},
|
|
28
|
+
"./collections": {
|
|
29
|
+
"types": "./dist/types/collections/index.d.ts",
|
|
30
|
+
"import": "./dist/esm/collections/index.js",
|
|
31
|
+
"require": "./dist/cjs/collections/index.js",
|
|
32
|
+
"browser": "./dist/web/collections/index.js"
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
},
|
|
11
36
|
"license": "proprietary",
|
|
12
37
|
"devDependencies": {
|
|
13
|
-
"
|
|
14
|
-
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
15
|
-
"@rollup/plugin-terser": "^0.4.4",
|
|
16
|
-
"@rollup/plugin-typescript": "^11.1.6",
|
|
17
|
-
"@types/node": "^20.12.12",
|
|
18
|
-
"rollup": "4.22.4",
|
|
19
|
-
"rollup-plugin-cleaner": "^1.0.0",
|
|
38
|
+
"rimraf": "^6.0.1",
|
|
20
39
|
"typescript": "^5.1.3",
|
|
21
40
|
"jest": "^29.7.0"
|
|
22
41
|
},
|
|
23
42
|
"scripts": {
|
|
24
|
-
"
|
|
25
|
-
"
|
|
43
|
+
"clean": "rimraf dist || rm -rf dist",
|
|
44
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
45
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
46
|
+
"build:web": "tsc -p tsconfig.web.json",
|
|
47
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run build:web"
|
|
26
48
|
},
|
|
27
49
|
"files": [
|
|
28
50
|
"dist",
|
package/src/array.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type {Predicate} from "./types.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Removes all given values from the provided array and returns the number of removed elements.
|
|
3
5
|
* The operation mutates the original array.
|
|
@@ -17,4 +19,51 @@ export function pull<T>(array: Array<T>, ...items: Array<T>): number {
|
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
return output;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Splits an array into chunks of a given size.
|
|
26
|
+
* @template T
|
|
27
|
+
* @param {Array<T>} array - The array to split.
|
|
28
|
+
* @param {number} size - The size of each chunk.
|
|
29
|
+
* @return {Array<Array<T>>} The array of chunks.
|
|
30
|
+
*/
|
|
31
|
+
export function chunk<T>(array: Array<T>, size: number): Array<Array<T>> {
|
|
32
|
+
if (size <= 0) throw new Error("Size must be greater than 0");
|
|
33
|
+
const result: Array<Array<T>> = [];
|
|
34
|
+
for (let i = 0; i < array.length; i += size) {
|
|
35
|
+
result.push(array.slice(i, i + size));
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Removes all elements from the array, mutating it.
|
|
42
|
+
* @template T
|
|
43
|
+
* @param {Array<T>} array - The array to clear.
|
|
44
|
+
*/
|
|
45
|
+
export function clear<T>(array: Array<T>): void {
|
|
46
|
+
array.length = 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Removes all elements from the array that satisfy the predicate.
|
|
51
|
+
* The operation mutates the original array.
|
|
52
|
+
* @template T
|
|
53
|
+
* @return {Array<T>} An array of removed elements.
|
|
54
|
+
*/
|
|
55
|
+
export function remove<T>(array: Array<T>,predicate: Predicate<T>): Array<T> {
|
|
56
|
+
const removed: Array<T> = [];
|
|
57
|
+
let i = 0;
|
|
58
|
+
|
|
59
|
+
while (i < array.length) {
|
|
60
|
+
if (predicate(array[i])) {
|
|
61
|
+
removed.push(array[i]);
|
|
62
|
+
array.splice(i, 1); // muta el array
|
|
63
|
+
} else {
|
|
64
|
+
i++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return removed;
|
|
20
69
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type {Optional, UnaryFunction} from "../types.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* DefaultMap<K, V>
|
|
5
|
+
* Un Map que crea y guarda automáticamente un valor por defecto
|
|
6
|
+
* cuando accedes a una clave inexistente con get(key).
|
|
7
|
+
*
|
|
8
|
+
* Ejemplo rápido:
|
|
9
|
+
* const m = new DefaultMap<string, number>(() => 0);
|
|
10
|
+
* m.get("a") += 1; // ahora m.get("a") === 1
|
|
11
|
+
*/
|
|
12
|
+
export default class DefaultMap<K, V> extends Map<K, V> {
|
|
13
|
+
private readonly _factoryMethod: (key: K) => V;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @param factoryMethod Función que produce el valor por defecto para una clave.
|
|
17
|
+
* @param entries Entradas iniciales.
|
|
18
|
+
*/
|
|
19
|
+
constructor(factoryMethod: UnaryFunction<K, V>, entries: Optional<Iterable<[K, V]>> = undefined) {
|
|
20
|
+
super(entries);
|
|
21
|
+
if (typeof factoryMethod !== "function") {
|
|
22
|
+
throw new TypeError("DefaultMap necesita una factory (key => defaultValue).");
|
|
23
|
+
}
|
|
24
|
+
this._factoryMethod = factoryMethod;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Obtiene el valor de la clave. Si no existe, lo crea con la factory,
|
|
29
|
+
* lo guarda y lo devuelve.
|
|
30
|
+
*/
|
|
31
|
+
override get(key: K): V {
|
|
32
|
+
if (!super.has(key)) {
|
|
33
|
+
const value = this._factoryMethod(key);
|
|
34
|
+
super.set(key, value);
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
// ¡super.get puede devolver undefined si no existe! Pero ya comprobamos has(key)
|
|
38
|
+
return super.get(key)!;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type {Optional, UnaryFunction} from "../types.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* DefaultMap<K, V>
|
|
5
|
+
* Un Map que crea y guarda automáticamente un valor por defecto
|
|
6
|
+
* cuando accedes a una clave inexistente con get(key).
|
|
7
|
+
*
|
|
8
|
+
* Ejemplo rápido:
|
|
9
|
+
* const m = new DefaultMap<string, number>(() => 0);
|
|
10
|
+
* m.get("a") += 1; // ahora m.get("a") === 1
|
|
11
|
+
*/
|
|
12
|
+
export default class DefaultMap<K extends object, V> extends WeakMap<K, V> {
|
|
13
|
+
private readonly _factoryMethod: (key: K) => V;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @param factoryMethod Función que produce el valor por defecto para una clave.
|
|
17
|
+
* @param entries Entradas iniciales.
|
|
18
|
+
*/
|
|
19
|
+
constructor(factoryMethod: UnaryFunction<K, V>, entries: Optional<Iterable<[K, V]>> = undefined) {
|
|
20
|
+
super();
|
|
21
|
+
|
|
22
|
+
if (entries != null) {
|
|
23
|
+
for (const [key, value] of entries ?? []) {
|
|
24
|
+
this.set(key, value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (typeof factoryMethod !== "function") {
|
|
29
|
+
throw new TypeError("DefaultMap necesita una factory (key => defaultValue).");
|
|
30
|
+
}
|
|
31
|
+
this._factoryMethod = factoryMethod;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Obtiene el valor de la clave. Si no existe, lo crea con la factory,
|
|
36
|
+
* lo guarda y lo devuelve.
|
|
37
|
+
*/
|
|
38
|
+
override get(key: K): V {
|
|
39
|
+
if (!super.has(key)) {
|
|
40
|
+
const value = this._factoryMethod(key);
|
|
41
|
+
super.set(key, value);
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
// ¡super.get puede devolver undefined si no existe! Pero ya comprobamos has(key)
|
|
45
|
+
return super.get(key)!;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
}
|
package/src/from.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {Consumer, EqualityComparer, UnaryFunction, Predicate, Supplier, Optional, Nullable} from "./types";
|
|
2
|
-
import {shallowEqual, toPairs} from "./utilities";
|
|
3
|
-
import KeyValuePair from "./key-value-pair";
|
|
4
|
-
import Order from "./order";
|
|
1
|
+
import type {Consumer, EqualityComparer, UnaryFunction, Predicate, Supplier, Optional, Nullable} from "./types.js";
|
|
2
|
+
import {shallowEqual, toPairs} from "./utilities.js";
|
|
3
|
+
import KeyValuePair from "./key-value-pair.js";
|
|
4
|
+
import Order from "./order.js";
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
export default function from<T>(source: Iterable<T> | Supplier<Iterable<T>>): From<T> | From<KeyValuePair<any, any>> {
|
package/src/index.ts
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export {default as KeyValuePair} from './key-value-pair'
|
|
14
|
-
export {default as
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export {default as
|
|
18
|
-
export {default as
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
// src/index.ts
|
|
2
|
+
|
|
3
|
+
// ─── Types ───────────────────────────────────────────
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
export { default as Type } from './type.js';
|
|
6
|
+
|
|
7
|
+
// ─── Utilities ───────────────────────────────────────
|
|
8
|
+
export * from './utilities.js';
|
|
9
|
+
export * from './string.js';
|
|
10
|
+
export * from './math.js';
|
|
11
|
+
|
|
12
|
+
// ─── Data Structures ────────────────────────────────
|
|
13
|
+
export { default as KeyValuePair } from './key-value-pair.js';
|
|
14
|
+
export { default as Order } from './order.js';
|
|
15
|
+
|
|
16
|
+
// ─── Async & Timing ─────────────────────────────────
|
|
17
|
+
export { default as Timer } from './timer.js';
|
|
18
|
+
export { default as TimeSpan } from './timespan.js';
|
|
19
|
+
export { default as Stopwatch } from './stopwatch.js';
|
|
20
|
+
export { default as AsyncPoolExecutor } from './async-pool-executor.js';
|
|
21
|
+
|
|
22
|
+
// ─── Patterns ────────────────────────────────────────
|
|
23
|
+
export { default as Lazy } from './lazy.js';
|
|
24
|
+
export { default as RemoteData } from './remote-data.js';
|
|
25
|
+
export { default as from, From } from './from.js';
|
|
26
|
+
|
|
27
|
+
// ─── Web ─────────────────────────────────────────────
|
|
28
|
+
export { default as CleanURLSearchParams } from './clean-url-search-params.js';
|
|
29
|
+
|
|
30
|
+
// ─── Deprecated ──────────────────────────────────────
|
|
31
|
+
/** @deprecated Use "mi-paquete/array" instead */
|
|
32
|
+
export * from './array.js';
|
|
33
|
+
/** @deprecated Use "mi-paquete/collections" instead */
|
|
34
|
+
export * from './collections/index.js';
|
package/src/lazy.ts
CHANGED