@develia/commons 0.3.3 → 0.3.7
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/from.d.ts +16 -16
- package/dist/functions.d.ts +3 -2
- package/dist/index.cjs.js +30 -17
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +30 -17
- package/dist/index.esm.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
- package/rollup.config.js +7 -3
- package/src/cache-dictionary.ts +78 -0
- package/src/from.ts +526 -0
- package/src/functions.ts +247 -0
- package/src/index.ts +11 -0
- package/src/lazy.ts +32 -0
- package/src/pair.ts +19 -0
- package/src/timer.ts +65 -0
- package/src/timespan.ts +217 -0
- package/src/types.ts +14 -0
- package/tsconfig.json +4 -5
- package/dist/index.umd.js +0 -998
- package/dist/index.umd.js.map +0 -1
package/dist/from.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Consumer, EqualityComparer,
|
|
1
|
+
import { Consumer, EqualityComparer, UnaryFunction, Predicate, Provider } from "./types";
|
|
2
2
|
import Pair from "./pair";
|
|
3
3
|
export default function from<T>(source: Iterable<T> | Provider<Iterable<T>>): From<T> | From<Pair<any, any>>;
|
|
4
4
|
export declare class From<T> implements Iterable<T> {
|
|
@@ -9,7 +9,7 @@ export declare class From<T> implements Iterable<T> {
|
|
|
9
9
|
static fn<T>(callable: Provider<Iterable<T>>): From<T>;
|
|
10
10
|
collect(): From<T>;
|
|
11
11
|
static iterable<T>(iterable: Iterable<T>): From<T>;
|
|
12
|
-
map<R>(mapper:
|
|
12
|
+
map<R>(mapper: UnaryFunction<T, R>): From<R>;
|
|
13
13
|
[Symbol.iterator](): Iterator<T>;
|
|
14
14
|
all(predicate: Predicate<T>): boolean;
|
|
15
15
|
any(predicate: Predicate<T>): boolean;
|
|
@@ -20,16 +20,16 @@ export declare class From<T> implements Iterable<T> {
|
|
|
20
20
|
prepend(item: T): From<T>;
|
|
21
21
|
at(index: number): T | undefined;
|
|
22
22
|
last(predicate?: Predicate<T>): T | undefined;
|
|
23
|
-
mapMany<R>(mapper:
|
|
23
|
+
mapMany<R>(mapper: UnaryFunction<T, Iterable<R>>): From<R>;
|
|
24
24
|
flatten(): From<any>;
|
|
25
|
-
sum(mapper?:
|
|
26
|
-
avg(mapper?:
|
|
27
|
-
max(mapper:
|
|
28
|
-
min(mapper:
|
|
29
|
-
maxBy(mapper:
|
|
30
|
-
minBy(mapper:
|
|
31
|
-
orderBy<R>(mapper:
|
|
32
|
-
groupBy<TKey>(keySelector:
|
|
25
|
+
sum(mapper?: UnaryFunction<T, number>): number;
|
|
26
|
+
avg(mapper?: UnaryFunction<T, number>): number;
|
|
27
|
+
max(mapper: UnaryFunction<T, number>): number;
|
|
28
|
+
min(mapper: UnaryFunction<T, number>): number;
|
|
29
|
+
maxBy(mapper: UnaryFunction<T, number>): T | undefined;
|
|
30
|
+
minBy(mapper: UnaryFunction<T, number>): T | undefined;
|
|
31
|
+
orderBy<R>(mapper: UnaryFunction<T, R>): From<T>;
|
|
32
|
+
groupBy<TKey>(keySelector: UnaryFunction<T, TKey>, equalityComparer?: EqualityComparer<TKey>): From<Grouping<TKey, T>>;
|
|
33
33
|
head(n: number): From<T>;
|
|
34
34
|
tail(n: number): From<T>;
|
|
35
35
|
forEach(action: Consumer<T>): void;
|
|
@@ -40,11 +40,11 @@ export declare class From<T> implements Iterable<T> {
|
|
|
40
40
|
insert(item: T, index: number): From<T>;
|
|
41
41
|
skip(n: number): From<T>;
|
|
42
42
|
union(other: Iterable<T>): From<T>;
|
|
43
|
-
innerJoin<T2, R, R2>(other: Iterable<T2>, thisKeySelector:
|
|
44
|
-
leftJoin<U, K, R>(other: Iterable<U>, thisKeySelector:
|
|
45
|
-
leftGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector:
|
|
46
|
-
rightGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector:
|
|
47
|
-
rightJoin<U, K, R>(other: Iterable<U>, thisKeySelector:
|
|
43
|
+
innerJoin<T2, R, R2>(other: Iterable<T2>, thisKeySelector: UnaryFunction<T, R>, otherKeySelector: UnaryFunction<T2, R>, resultSelector: (thisItem: T, otherItem: T2) => R2): From<R2>;
|
|
44
|
+
leftJoin<U, K, R>(other: Iterable<U>, thisKeySelector: UnaryFunction<T, K>, otherKeySelector: UnaryFunction<U, K>, resultSelector: (thisItem: T, otherItem: U | undefined) => R): From<R>;
|
|
45
|
+
leftGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector: UnaryFunction<T, K>, otherKeySelector: UnaryFunction<U, K>, resultSelector: (thisItem: T, otherItems: Array<U>) => R): From<R>;
|
|
46
|
+
rightGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector: UnaryFunction<T, K>, otherKeySelector: UnaryFunction<U, K>, resultSelector: (thisItems: Array<T>, otherItem: U) => R): From<R>;
|
|
47
|
+
rightJoin<U, K, R>(other: Iterable<U>, thisKeySelector: UnaryFunction<T, K>, otherKeySelector: UnaryFunction<U, K>, resultSelector: (thisItem: T | undefined, otherItem: U) => R): From<R>;
|
|
48
48
|
}
|
|
49
49
|
export declare class Grouping<TKey, T> extends From<T> {
|
|
50
50
|
private readonly _key;
|
package/dist/functions.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Pair from "./pair";
|
|
2
|
+
import { Nullable, Provider } from "./types";
|
|
2
3
|
export declare function isIterable(obj: any): boolean;
|
|
3
4
|
export declare function clamp(n: number, min: number, max: number): number;
|
|
4
5
|
/**
|
|
@@ -36,9 +37,9 @@ export declare function isSymbol(value: any): value is symbol;
|
|
|
36
37
|
export declare function isNullOrUndefined(value: any): boolean;
|
|
37
38
|
export declare function isEmpty(value: any): boolean;
|
|
38
39
|
export declare function isEmptyOrWhitespace(value: any): boolean;
|
|
39
|
-
export declare function ajaxSubmit(selectorOrElement: HTMLFormElement | string): Promise<Response
|
|
40
|
+
export declare function ajaxSubmit(selectorOrElement: HTMLFormElement | string): Promise<Response>;
|
|
40
41
|
export declare function toPairs(obj: any): Pair<any, any>[];
|
|
41
42
|
export declare function promisify<T>(thing: any): Promise<T>;
|
|
42
|
-
export declare function ajaxSubmission(selectorOrElement: HTMLFormElement | string, onSuccess?:
|
|
43
|
+
export declare function ajaxSubmission(selectorOrElement: HTMLFormElement | string, onSuccess?: Nullable<Provider<Nullable<any>>>, onFailure?: Nullable<Provider<Nullable<any>>>): void;
|
|
43
44
|
export declare function deepClone<T>(obj: T): T;
|
|
44
45
|
export declare function objectToFormData(data: Record<string, any>): FormData;
|
package/dist/index.cjs.js
CHANGED
|
@@ -9,6 +9,8 @@ class Pair {
|
|
|
9
9
|
get key() {
|
|
10
10
|
return this._key;
|
|
11
11
|
}
|
|
12
|
+
_key;
|
|
13
|
+
_value;
|
|
12
14
|
constructor(key, value) {
|
|
13
15
|
this._key = key;
|
|
14
16
|
this._value = value;
|
|
@@ -20,9 +22,9 @@ function isIterable(obj) {
|
|
|
20
22
|
return obj[Symbol.iterator] === 'function';
|
|
21
23
|
}
|
|
22
24
|
function clamp(n, min, max) {
|
|
23
|
-
if (n
|
|
25
|
+
if (n <= min)
|
|
24
26
|
return min;
|
|
25
|
-
if (n
|
|
27
|
+
if (n >= max)
|
|
26
28
|
return max;
|
|
27
29
|
return n;
|
|
28
30
|
}
|
|
@@ -101,15 +103,15 @@ function isEmptyOrWhitespace(value) {
|
|
|
101
103
|
(typeof value === 'string' && value.trim() === '') ||
|
|
102
104
|
value === null || typeof value === 'undefined';
|
|
103
105
|
}
|
|
104
|
-
function ajaxSubmit(selectorOrElement) {
|
|
106
|
+
async function ajaxSubmit(selectorOrElement) {
|
|
105
107
|
const form = typeof selectorOrElement === 'string'
|
|
106
108
|
? document.querySelector(selectorOrElement)
|
|
107
109
|
: selectorOrElement;
|
|
108
110
|
if (!(form instanceof HTMLFormElement)) {
|
|
109
|
-
|
|
111
|
+
throw new Error("Invalid element.");
|
|
110
112
|
}
|
|
111
113
|
// Crear un objeto FormData a partir del formulario
|
|
112
|
-
return fetch(form.action, {
|
|
114
|
+
return await fetch(form.action, {
|
|
113
115
|
method: form.method,
|
|
114
116
|
body: new FormData(form),
|
|
115
117
|
});
|
|
@@ -124,7 +126,7 @@ function toPairs(obj) {
|
|
|
124
126
|
function promisify(thing) {
|
|
125
127
|
if (thing instanceof Promise)
|
|
126
128
|
return thing;
|
|
127
|
-
if (thing
|
|
129
|
+
if (isFunction(thing)) {
|
|
128
130
|
return new Promise((resolve, reject) => {
|
|
129
131
|
try {
|
|
130
132
|
const result = thing();
|
|
@@ -135,11 +137,6 @@ function promisify(thing) {
|
|
|
135
137
|
}
|
|
136
138
|
});
|
|
137
139
|
}
|
|
138
|
-
if (typeof thing.done === 'function' && typeof thing.fail === 'function') {
|
|
139
|
-
return new Promise((resolve, reject) => {
|
|
140
|
-
thing.done(resolve).fail(reject);
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
140
|
return Promise.resolve(thing);
|
|
144
141
|
}
|
|
145
142
|
function ajaxSubmission(selectorOrElement, onSuccess = null, onFailure = null) {
|
|
@@ -150,9 +147,14 @@ function ajaxSubmission(selectorOrElement, onSuccess = null, onFailure = null) {
|
|
|
150
147
|
return;
|
|
151
148
|
}
|
|
152
149
|
form.addEventListener('submit', async (event) => {
|
|
153
|
-
var _a;
|
|
154
150
|
event.preventDefault();
|
|
155
|
-
|
|
151
|
+
let promise = ajaxSubmit(form);
|
|
152
|
+
if (promise) {
|
|
153
|
+
if (onSuccess)
|
|
154
|
+
promise = promise.then(onSuccess);
|
|
155
|
+
if (onFailure)
|
|
156
|
+
promise.catch(onFailure);
|
|
157
|
+
}
|
|
156
158
|
});
|
|
157
159
|
}
|
|
158
160
|
function deepClone(obj) {
|
|
@@ -211,6 +213,10 @@ function objectToFormData(data) {
|
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
class CacheDictionary {
|
|
216
|
+
fallback;
|
|
217
|
+
cache;
|
|
218
|
+
defaultDuration;
|
|
219
|
+
expiration;
|
|
214
220
|
constructor(fallback = null, defaultDuration = null) {
|
|
215
221
|
this.fallback = fallback;
|
|
216
222
|
this.cache = {};
|
|
@@ -306,6 +312,7 @@ class From {
|
|
|
306
312
|
}
|
|
307
313
|
return true;
|
|
308
314
|
}
|
|
315
|
+
_fn;
|
|
309
316
|
constructor(fn) {
|
|
310
317
|
this._fn = fn;
|
|
311
318
|
}
|
|
@@ -708,6 +715,7 @@ class From {
|
|
|
708
715
|
}
|
|
709
716
|
}
|
|
710
717
|
class Grouping extends From {
|
|
718
|
+
_key;
|
|
711
719
|
get key() {
|
|
712
720
|
return this._key;
|
|
713
721
|
}
|
|
@@ -718,6 +726,9 @@ class Grouping extends From {
|
|
|
718
726
|
}
|
|
719
727
|
|
|
720
728
|
class Timer {
|
|
729
|
+
_callback;
|
|
730
|
+
_interval;
|
|
731
|
+
_intervalId;
|
|
721
732
|
/**
|
|
722
733
|
* @param callback Callback
|
|
723
734
|
* @param interval Seconds between calls
|
|
@@ -769,6 +780,7 @@ class Timer {
|
|
|
769
780
|
}
|
|
770
781
|
|
|
771
782
|
class TimeSpan {
|
|
783
|
+
milliseconds;
|
|
772
784
|
constructor(milliseconds) {
|
|
773
785
|
this.milliseconds = milliseconds;
|
|
774
786
|
}
|
|
@@ -921,6 +933,8 @@ class TimeSpan {
|
|
|
921
933
|
abs() {
|
|
922
934
|
return new TimeSpan(Math.abs(this.milliseconds));
|
|
923
935
|
}
|
|
936
|
+
static INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
937
|
+
static NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
924
938
|
isInfinite() {
|
|
925
939
|
return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
926
940
|
}
|
|
@@ -933,13 +947,12 @@ class TimeSpan {
|
|
|
933
947
|
return this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
934
948
|
}
|
|
935
949
|
}
|
|
936
|
-
TimeSpan.INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
937
|
-
TimeSpan.NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
938
950
|
|
|
939
951
|
class Lazy {
|
|
952
|
+
_valueCreated = false;
|
|
953
|
+
_value = null;
|
|
954
|
+
_factoryMethod;
|
|
940
955
|
constructor(getter) {
|
|
941
|
-
this._valueCreated = false;
|
|
942
|
-
this._value = null;
|
|
943
956
|
this._factoryMethod = getter;
|
|
944
957
|
}
|
|
945
958
|
get valueCreated() {
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/pair.ts","../src/functions.ts","../src/cache-dictionary.ts","../src/from.ts","../src/timer.ts","../src/timespan.ts","../src/lazy.ts"],"sourcesContent":["export default class Pair<TKey, TValue> {\r\n get value(): TValue {\r\n return this._value;\r\n }\r\n\r\n get key(): TKey {\r\n return this._key;\r\n }\r\n\r\n private readonly _key: TKey;\r\n private readonly _value: TValue;\r\n\r\n constructor(key: TKey, value: TValue) {\r\n this._key = key;\r\n this._value = value;\r\n }\r\n\r\n\r\n}","// noinspection JSUnusedGlobalSymbols\r\n\r\n\r\nimport Pair from \"./pair\";\r\n\r\nexport function isIterable(obj: any): boolean {\r\n return obj[Symbol.iterator] === 'function';\r\n}\r\n\r\nexport function clamp(n: number, min: number, max: number) {\r\n if (n < min)\r\n return min;\r\n if (n > max)\r\n return max;\r\n return n\r\n}\r\n\r\n/**\r\n * Linearly remaps a value from its source range [`inMin`, `inMax`] to the destination range [`outMin`, `outMax`]\r\n *\r\n * @category Math\r\n * @example\r\n * ```\r\n * const value = remap(0.5, 0, 1, 200, 400) // value will be 300\r\n * ```\r\n */\r\nexport function lerp(n: number, inMin: number, inMax: number, outMin: number, outMax: number) {\r\n\r\n\r\n return outMin + (outMax - outMin) * ((n - inMin) / (inMax - inMin))\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Ensure prefix of a string\r\n *\r\n * @category String\r\n */\r\nexport function ensurePrefix(prefix: string, str: string) {\r\n if (!str.startsWith(prefix))\r\n return prefix + str\r\n return str\r\n}\r\n\r\n/**\r\n * Ensure suffix of a string\r\n *\r\n * @category String\r\n */\r\nexport function ensureSuffix(suffix: string, str: string) {\r\n if (!str.endsWith(suffix))\r\n return str + suffix\r\n return str\r\n}\r\n\r\nexport function isString(value: any): value is string {\r\n return typeof value === 'string';\r\n}\r\n\r\nexport function isNumber(value: any): value is number {\r\n return typeof value === 'number';\r\n}\r\n\r\nexport function isBoolean(value: any): value is boolean {\r\n return typeof value === 'boolean';\r\n}\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\nexport function isArray(value: any): value is any[] {\r\n return Array.isArray(value);\r\n}\r\n\r\nexport function isFunction(value: any): value is Function {\r\n return typeof value === 'function';\r\n}\r\n\r\nexport function isUndefined(value: any): value is undefined {\r\n return typeof value === 'undefined';\r\n}\r\n\r\nexport function isNull(value: any): value is null {\r\n return value === null;\r\n}\r\n\r\nexport function isBigInt(value: any): value is bigint {\r\n return typeof value === 'bigint';\r\n}\r\n\r\nexport function isSymbol(value: any): value is symbol {\r\n return typeof value === 'symbol';\r\n}\r\n\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || typeof value === 'undefined';\r\n}\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\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\nexport function ajaxSubmit(selectorOrElement: HTMLFormElement | string) {\r\n\r\n const form = typeof selectorOrElement === 'string'\r\n ? document.querySelector(selectorOrElement)\r\n : selectorOrElement;\r\n\r\n if (!(form instanceof HTMLFormElement)) {\r\n return;\r\n }\r\n\r\n // Crear un objeto FormData a partir del formulario\r\n return fetch(form.action, {\r\n method: form.method,\r\n body: new FormData(form),\r\n });\r\n}\r\n\r\nexport function toPairs(obj: any): Pair<any, any>[] {\r\n\r\n let output = [];\r\n for (const key in obj) {\r\n output.push(new Pair(key, obj[key]));\r\n }\r\n return output;\r\n\r\n}\r\n\r\nexport function promisify<T>(thing: any): Promise<T> {\r\n\r\n if (thing instanceof Promise)\r\n return thing;\r\n\r\n\r\n if (thing instanceof Function) {\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 if (typeof thing.done === 'function' && typeof thing.fail === 'function') {\r\n return new Promise((resolve, reject) => {\r\n thing.done(resolve).fail(reject);\r\n });\r\n }\r\n\r\n return Promise.resolve(thing);\r\n}\r\n\r\nexport function ajaxSubmission(selectorOrElement: HTMLFormElement | string, onSuccess = null, onFailure = null) {\r\n\r\n const form = typeof selectorOrElement === 'string'\r\n ? document.querySelector(selectorOrElement)\r\n : selectorOrElement;\r\n\r\n if (!(form instanceof HTMLFormElement)) {\r\n return;\r\n }\r\n\r\n form.addEventListener('submit', async (event) => {\r\n event.preventDefault();\r\n ajaxSubmit(form)?.then(onSuccess).catch(onFailure);\r\n });\r\n\r\n\r\n}\r\n\r\n\r\nexport function deepClone<T>(obj: T): T {\r\n if (obj === null || typeof obj !== 'object') {\r\n return obj;\r\n }\r\n\r\n if (Array.isArray(obj)) {\r\n const copy: any[] = [];\r\n for (const element of obj) {\r\n copy.push(deepClone(element));\r\n }\r\n return copy as T;\r\n }\r\n\r\n const copy: { [key: string]: any } = {};\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n copy[key] = deepClone((obj as { [key: string]: any })[key]);\r\n }\r\n }\r\n return copy as T;\r\n}\r\n\r\nfunction _objectToFormData(data: Record<string, any>, formData: FormData, parentKey: string = ''): FormData {\r\n\r\n\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n const value = data[key];\r\n\r\n if (value instanceof Date) {\r\n formData.append(parentKey ? `${parentKey}[${key}]` : key, value.toISOString());\r\n } else if (value instanceof File) {\r\n formData.append(parentKey ? `${parentKey}[${key}]` : key, value);\r\n } else if (typeof value === 'object' && !Array.isArray(value)) {\r\n _objectToFormData(value, formData, parentKey ? `${parentKey}[${key}]` : key);\r\n } else if (Array.isArray(value)) {\r\n value.forEach((item, index) => {\r\n const arrayKey = `${parentKey ? `${parentKey}[${key}]` : key}[${index}]`;\r\n if (typeof item === 'object' && !Array.isArray(item)) {\r\n _objectToFormData(item, formData, arrayKey);\r\n } else {\r\n formData.append(arrayKey, item);\r\n }\r\n });\r\n } else {\r\n formData.append(parentKey ? `${parentKey}[${key}]` : key, value);\r\n }\r\n }\r\n }\r\n\r\n return formData;\r\n}\r\n\r\nexport function objectToFormData(data: Record<string, any>): FormData {\r\n let formData = new FormData();\r\n return _objectToFormData(data, formData);\r\n}","export default class CacheDictionary<T> {\r\n private readonly fallback: ((key: string) => T) | null;\r\n private readonly cache: { [key: string]: T };\r\n private readonly defaultDuration: number | null;\r\n private readonly expiration: { [key: string]: Date | undefined };\r\n\r\n constructor(fallback: ((key: string) => T) | null = null, defaultDuration: number | null = null) {\r\n this.fallback = fallback;\r\n this.cache = {};\r\n this.defaultDuration = defaultDuration;\r\n this.expiration = {};\r\n }\r\n\r\n\r\n public getExpiration(key: string): Date | undefined {\r\n return this.expiration[key];\r\n }\r\n\r\n public setExpiration(key: string, expiration: Date | undefined): void {\r\n this.expiration[key] = expiration;\r\n }\r\n\r\n public setDuration(key: string, duration: number | null): void {\r\n if (duration === null) {\r\n delete this.expiration[key];\r\n } else {\r\n const expiration = new Date();\r\n expiration.setSeconds(expiration.getSeconds() + duration);\r\n this.expiration[key] = expiration;\r\n }\r\n }\r\n\r\n public get(key: string): T | null {\r\n if (!this.cache.hasOwnProperty(key)) {\r\n if (this.fallback) {\r\n this.cache[key] = this.fallback(key);\r\n this.expiration[key] = this.calculateExpiration(this.defaultDuration);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n if (this.isExpired(key)) {\r\n this.remove(key);\r\n return null;\r\n }\r\n\r\n return this.cache[key];\r\n }\r\n\r\n public set(key: string, value: T, duration: number | null = null): void {\r\n this.cache[key] = value;\r\n this.expiration[key] = this.calculateExpiration(duration);\r\n }\r\n\r\n public remove(key: string): void {\r\n delete this.cache[key];\r\n delete this.expiration[key];\r\n }\r\n\r\n private isExpired(key: string): boolean {\r\n const expiration = this.expiration[key];\r\n if (expiration instanceof Date) {\r\n return expiration < new Date();\r\n }\r\n return false;\r\n }\r\n\r\n private calculateExpiration(duration: number | null): Date | undefined {\r\n if (duration === null) {\r\n return undefined;\r\n }\r\n\r\n const expiration = new Date();\r\n expiration.setSeconds(expiration.getSeconds() + duration);\r\n return expiration;\r\n }\r\n}","import {Consumer, EqualityComparer, Mapper, Predicate, Provider} from \"./types\";\r\nimport {toPairs} from \"./functions\";\r\nimport Pair from \"./pair\";\r\n\r\n\r\nexport default function from<T>(source: Iterable<T> | Provider<Iterable<T>>): From<T> | From<Pair<any, any>> {\r\n if (source == null)\r\n throw \"Source is null.\";\r\n if (typeof source === 'function')\r\n return From.fn<T>(source);\r\n if (typeof source[Symbol.iterator] === 'function') {\r\n return From.iterable<T>(source);\r\n } else if (typeof source === 'object') {\r\n return From.object(source)\r\n }\r\n\r\n throw \"Invalid source.\";\r\n}\r\n\r\nexport class From<T> implements Iterable<T> {\r\n\r\n public static object(obj: any): From<Pair<any, any>> {\r\n return new From<Pair<any, any>>(function () {\r\n return toPairs(obj);\r\n });\r\n }\r\n\r\n private static _shallowEqual(obj1: any, obj2: any): boolean {\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n\r\n for (let key of keys1) {\r\n if (obj1[key] !== obj2[key]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private readonly _fn: Provider<Iterable<T>>\r\n\r\n protected constructor(fn: Provider<Iterable<T>>) {\r\n this._fn = fn;\r\n }\r\n\r\n public static fn<T>(callable: Provider<Iterable<T>>): From<T> {\r\n return new From<T>(callable);\r\n };\r\n\r\n public collect(): From<T> {\r\n const cache = Array.from(this);\r\n return From.iterable(cache);\r\n }\r\n\r\n public static iterable<T>(iterable: Iterable<T>): From<T> {\r\n return From.fn<T>(function* () {\r\n for (const item of iterable) {\r\n yield item;\r\n }\r\n });\r\n };\r\n\r\n public map<R>(mapper: Mapper<T, R>): From<R> {\r\n const self = this;\r\n return From.fn<R>(function* () {\r\n for (let item of self) {\r\n yield mapper(item);\r\n }\r\n })\r\n }\r\n\r\n * [Symbol.iterator](): Iterator<T> {\r\n yield* this._fn()\r\n }\r\n\r\n\r\n public all(predicate: Predicate<T>): boolean {\r\n for (let item of this._fn()) {\r\n if (!predicate(item)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public any(predicate: Predicate<T>): boolean {\r\n for (let item of this) {\r\n if (predicate(item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public filter(predicate: Predicate<T>): From<T> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n for (let item of self) {\r\n if (predicate(item)) {\r\n yield item;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public contains(value: T): boolean {\r\n for (let item of this) {\r\n if (item === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n // noinspection LoopStatementThatDoesntLoopJS\r\n public first(predicate?: Predicate<T>): T | undefined {\r\n\r\n if (predicate) {\r\n for (let item of this) {\r\n if (!predicate || predicate(item)) {\r\n return item;\r\n }\r\n }\r\n } else {\r\n // noinspection LoopStatementThatDoesntLoopJS\r\n for (let item of this) {\r\n return item;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public append(item: T): From<T> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n for (let element of self) {\r\n yield element;\r\n }\r\n yield item;\r\n });\r\n }\r\n\r\n public prepend(item: T): From<T> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n yield item;\r\n for (let element of self) {\r\n yield element;\r\n }\r\n });\r\n }\r\n\r\n public at(index: number): T | undefined {\r\n let idx = 0;\r\n for (let item of this) {\r\n if (idx++ === index) {\r\n return item;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public last(predicate?: Predicate<T>): T | undefined {\r\n\r\n\r\n let last: T | undefined = undefined;\r\n\r\n if (predicate)\r\n for (let item of this) {\r\n if (!predicate || predicate(item)) {\r\n last = item;\r\n }\r\n }\r\n else {\r\n for (let item of this) {\r\n last = item;\r\n }\r\n }\r\n return last;\r\n }\r\n\r\n public mapMany<R>(mapper: Mapper<T, Iterable<R>>): From<R> {\r\n const self = this;\r\n return From.fn(function* () {\r\n for (const item of self) {\r\n const subitems = mapper(item)\r\n for (const subitem of subitems) {\r\n yield subitem;\r\n }\r\n }\r\n })\r\n }\r\n\r\n public flatten(): From<any> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n for (let item of self) {\r\n let temp = <Iterable<any>>item;\r\n for (let subitem of temp) {\r\n yield subitem\r\n }\r\n }\r\n });\r\n }\r\n\r\n public sum(mapper?: Mapper<T, number>): number {\r\n let total = 0;\r\n\r\n if (mapper)\r\n for (let item of this) {\r\n total += mapper(item);\r\n }\r\n else\r\n for (let item of this) {\r\n total += item as number;\r\n }\r\n return total;\r\n }\r\n\r\n public avg(mapper?: Mapper<T, number>): number {\r\n let total = 0;\r\n let count = 0;\r\n\r\n if (mapper)\r\n for (let item of this) {\r\n total += mapper(item);\r\n count++;\r\n }\r\n else\r\n for (let item of this) {\r\n total += item as number;\r\n count++;\r\n }\r\n return count > 0 ? total / count : 0;\r\n }\r\n\r\n public max(mapper: Mapper<T, number>): number {\r\n let max = -Infinity;\r\n for (let item of this) {\r\n let value = mapper(item);\r\n max = value > max ? value : max;\r\n }\r\n return max;\r\n }\r\n\r\n public min(mapper: Mapper<T, number>): number {\r\n let min = Infinity;\r\n for (let item of this) {\r\n let value = mapper(item);\r\n min = value < min ? value : min;\r\n }\r\n return min;\r\n }\r\n\r\n public maxBy(mapper: Mapper<T, number>): T | undefined {\r\n let max = -Infinity;\r\n let maxItem: T | undefined;\r\n for (let item of this) {\r\n let value = mapper(item);\r\n if (value > max) {\r\n max = value;\r\n maxItem = item;\r\n }\r\n }\r\n return maxItem;\r\n }\r\n\r\n public minBy(mapper: Mapper<T, number>): T | undefined {\r\n let min = Infinity;\r\n let minItem: T | undefined;\r\n for (let item of this) {\r\n let value = mapper(item);\r\n if (value < min) {\r\n min = value;\r\n minItem = item;\r\n }\r\n }\r\n return minItem;\r\n }\r\n\r\n public orderBy<R>(mapper: Mapper<T, R>): From<T> {\r\n const array = Array.from(this._fn());\r\n array.sort((a, b) => {\r\n const aValue = mapper(a);\r\n const bValue = mapper(b);\r\n return aValue > bValue ? 1 : aValue < bValue ? -1 : 0;\r\n });\r\n return From.iterable(array);\r\n }\r\n\r\n public groupBy<TKey>(keySelector: Mapper<T, TKey>, equalityComparer?: EqualityComparer<TKey>): From<Grouping<TKey, T>> {\r\n\r\n equalityComparer = (equalityComparer == null ? From._shallowEqual : equalityComparer);\r\n const self = this;\r\n\r\n return From.fn<Grouping<TKey, T>>(function* () {\r\n const groups: Array<[TKey, T[]]> = [];\r\n for (let item of self) {\r\n const key = keySelector(item);\r\n let found = false;\r\n for (let [entryKey, group] of groups) {\r\n if (equalityComparer(key, entryKey)) {\r\n group.push(item);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n groups.push([key, [item]]);\r\n }\r\n }\r\n yield* groups.map(([key, values]) => new Grouping<TKey, T>(key, values));\r\n });\r\n }\r\n\r\n public head(n: number): From<T> {\r\n\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n let count = 0;\r\n for (let item of self) {\r\n if (count++ < n) {\r\n yield item;\r\n } else {\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public tail(n: number): From<T> {\r\n\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n let buffer = [];\r\n for (let item of self) {\r\n buffer.push(item);\r\n if (buffer.length > n) {\r\n buffer.shift();\r\n }\r\n }\r\n yield* buffer;\r\n });\r\n }\r\n\r\n public forEach(action: Consumer<T>): void {\r\n for (let item of this) {\r\n action(item);\r\n }\r\n }\r\n\r\n public toArray(): T[] {\r\n return Array.from(this);\r\n }\r\n\r\n\r\n public instancesOf(type: string): From<T> {\r\n return this.filter(item => typeof item === type);\r\n }\r\n\r\n public allInstanceOf(type: new (...args: any[]) => any): boolean {\r\n for (let item of this) {\r\n if (!(item instanceof type)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public distinct(eq_comparer?: EqualityComparer<T>): From<T> {\r\n\r\n if (eq_comparer == null)\r\n eq_comparer = From._shallowEqual;\r\n\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n\r\n const included = [];\r\n\r\n for (let item of self) {\r\n if (!From.iterable(included).any(x => eq_comparer(x, item))) {\r\n included.push(item);\r\n yield item;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public insert(item: T, index: number): From<T> {\r\n\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n let i = 0;\r\n let inserted = false;\r\n for (let existingItem of self) {\r\n if (i === index) {\r\n yield item;\r\n inserted = true;\r\n }\r\n yield existingItem;\r\n i++;\r\n }\r\n if (!inserted) {\r\n yield item;\r\n }\r\n });\r\n }\r\n\r\n public skip(n: number): From<T> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n let i = 0;\r\n for (let item of self) {\r\n if (i >= n) {\r\n yield item;\r\n }\r\n i++;\r\n }\r\n });\r\n }\r\n\r\n\r\n public union(other: Iterable<T>): From<T> {\r\n const self = this;\r\n return From.fn<T>(function* () {\r\n yield* self;\r\n yield* other;\r\n });\r\n }\r\n\r\n public innerJoin<T2, R, R2>(other: Iterable<T2>, thisKeySelector: Mapper<T, R>, otherKeySelector: Mapper<T2, R>, resultSelector: (thisItem: T, otherItem: T2) => R2): From<R2> {\r\n\r\n const self = this;\r\n return From.fn<R2>(() => {\r\n const otherByKey = new Map<R, T2>();\r\n for (let item of other) {\r\n otherByKey.set(otherKeySelector(item), item);\r\n }\r\n return Array.from(self)\r\n .filter(item => otherByKey.has(thisKeySelector(item)))\r\n .map(item => resultSelector(item, otherByKey.get(thisKeySelector(item))!));\r\n });\r\n }\r\n\r\n public leftJoin<U, K, R>(other: Iterable<U>, thisKeySelector: Mapper<T, K>, otherKeySelector: Mapper<U, K>, resultSelector: (thisItem: T, otherItem: U | undefined) => R): From<R> {\r\n\r\n const self = this;\r\n return From.fn<R>(() => {\r\n const otherByKey = new Map<K, U>();\r\n for (let item of other) {\r\n otherByKey.set(otherKeySelector(item), item);\r\n }\r\n return Array.from(self).map(item => resultSelector(item, otherByKey.get(thisKeySelector(item))));\r\n });\r\n }\r\n\r\n\r\n public leftGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector: Mapper<T, K>, otherKeySelector: Mapper<U, K>, resultSelector: (thisItem: T, otherItems: Array<U>) => R): From<R> {\r\n\r\n const self = this;\r\n return From.fn<R>(() => {\r\n const otherByKeys = new Map<K, Array<U>>();\r\n for (let item of other) {\r\n const key = otherKeySelector(item);\r\n if (!otherByKeys.has(key)) {\r\n otherByKeys.set(key, []);\r\n }\r\n otherByKeys.get(key)!.push(item);\r\n }\r\n return Array.from(self).map(item => resultSelector(item, otherByKeys.get(thisKeySelector(item)) || []));\r\n });\r\n }\r\n\r\n public rightGroupJoin<U, K, R>(other: Iterable<U>, thisKeySelector: Mapper<T, K>, otherKeySelector: Mapper<U, K>, resultSelector: (thisItems: Array<T>, otherItem: U) => R): From<R> {\r\n\r\n const self = this;\r\n return From.fn<R>(() => {\r\n const thisByKeys = new Map<K, Array<T>>();\r\n for (let item of self) {\r\n const key = thisKeySelector(item);\r\n if (!thisByKeys.has(key)) {\r\n thisByKeys.set(key, []);\r\n }\r\n thisByKeys.get(key)!.push(item);\r\n }\r\n return Array.from(other).map(item => resultSelector(thisByKeys.get(otherKeySelector(item)) || [], item));\r\n });\r\n }\r\n\r\n\r\n public rightJoin<U, K, R>(other: Iterable<U>, thisKeySelector: Mapper<T, K>, otherKeySelector: Mapper<U, K>, resultSelector: (thisItem: T | undefined, otherItem: U) => R): From<R> {\r\n\r\n const self = this;\r\n return From.fn<R>(() => {\r\n const thisByKey = new Map<K, T>();\r\n for (let item of self) {\r\n thisByKey.set(thisKeySelector(item), item);\r\n }\r\n return Array.from(other).map(item => resultSelector(thisByKey.get(otherKeySelector(item)), item));\r\n });\r\n }\r\n\r\n}\r\n\r\nexport class Grouping<TKey, T> extends From<T> {\r\n\r\n private readonly _key: TKey;\r\n\r\n public get key(): TKey {\r\n return this._key;\r\n }\r\n\r\n public constructor(key: TKey, values: Array<T>) {\r\n super(() => values);\r\n this._key = key;\r\n }\r\n\r\n\r\n}","export default class Timer {\r\n\r\n private _callback: () => void;\r\n private _interval: number;\r\n private _intervalId: any | null;\r\n\r\n /**\r\n * @param callback Callback\r\n * @param interval Seconds between calls\r\n */\r\n constructor(callback: () => void, interval: number) {\r\n this._callback = callback;\r\n this._interval = interval;\r\n this._intervalId = null;\r\n }\r\n\r\n get running(): boolean {\r\n return this._intervalId !== null && this._intervalId !== undefined;\r\n }\r\n\r\n get interval(): number {\r\n return this._interval;\r\n }\r\n\r\n set interval(value: number) {\r\n if (value != this._interval) {\r\n this._interval = value;\r\n if (this.running)\r\n this.restart();\r\n }\r\n }\r\n\r\n get callback(): () => void {\r\n return this._callback;\r\n }\r\n\r\n set callback(value: () => void) {\r\n if (value != this._callback) {\r\n this._callback = value;\r\n }\r\n }\r\n\r\n\r\n start(): void {\r\n if (this._intervalId === null) {\r\n this._intervalId = setInterval(() => {\r\n if (this._callback != null)\r\n this._callback();\r\n }, this._interval);\r\n }\r\n }\r\n\r\n stop(): void {\r\n if (this._intervalId !== null) {\r\n clearInterval(this._intervalId);\r\n this._intervalId = null;\r\n }\r\n }\r\n\r\n restart(): void {\r\n this.stop();\r\n this.start();\r\n }\r\n}","export default class TimeSpan {\r\n public milliseconds: number;\r\n\r\n private constructor(milliseconds: number) {\r\n this.milliseconds = milliseconds;\r\n }\r\n\r\n\r\n // Obtener el intervalo de tiempo en segundos\r\n seconds(): number {\r\n return this.milliseconds / 1000;\r\n }\r\n\r\n // Obtener el intervalo de tiempo en minutos\r\n minutes(): number {\r\n return this.milliseconds / (1000 * 60);\r\n }\r\n\r\n // Obtener el intervalo de tiempo en horas\r\n hours(): number {\r\n return this.milliseconds / (1000 * 60 * 60);\r\n }\r\n\r\n // Obtener el intervalo de tiempo en días\r\n days(): number {\r\n return this.milliseconds / (1000 * 60 * 60 * 24);\r\n }\r\n\r\n // Obtener el intervalo de tiempo en semanas\r\n weeks(): number {\r\n return this.milliseconds / (1000 * 60 * 60 * 24 * 7);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde milisegundos\r\n static fromMilliseconds(milliseconds: number): TimeSpan {\r\n return new TimeSpan(milliseconds);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde segundos\r\n static fromSeconds(seconds: number): TimeSpan {\r\n return new TimeSpan(seconds * 1000);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde minutos\r\n static fromMinutes(minutes: number): TimeSpan {\r\n return new TimeSpan(minutes * 1000 * 60);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde horas\r\n static fromHours(hours: number): TimeSpan {\r\n return new TimeSpan(hours * 1000 * 60 * 60);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde días\r\n static fromDays(days: number): TimeSpan {\r\n return new TimeSpan(days * 1000 * 60 * 60 * 24);\r\n }\r\n\r\n // Constructor estático para crear un TimeSpan desde semanas\r\n static fromWeeks(weeks: number): TimeSpan {\r\n return new TimeSpan(weeks * 1000 * 60 * 60 * 24 * 7);\r\n }\r\n\r\n // Añadir un intervalo de tiempo\r\n addMilliseconds(milliseconds: number): TimeSpan {\r\n return new TimeSpan(this.milliseconds + milliseconds);\r\n }\r\n\r\n addSeconds(seconds: number): TimeSpan {\r\n return this.addMilliseconds(seconds * 1000);\r\n }\r\n\r\n addMinutes(minutes: number): TimeSpan {\r\n return this.addMilliseconds(minutes * 1000 * 60);\r\n }\r\n\r\n addHours(hours: number): TimeSpan {\r\n return this.addMilliseconds(hours * 1000 * 60 * 60);\r\n }\r\n\r\n addDays(days: number): TimeSpan {\r\n return this.addMilliseconds(days * 1000 * 60 * 60 * 24);\r\n }\r\n\r\n addWeeks(weeks: number): TimeSpan {\r\n return this.addMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);\r\n }\r\n\r\n // Restar un intervalo de tiempo\r\n subtractMilliseconds(milliseconds: number): TimeSpan {\r\n return new TimeSpan(this.milliseconds - milliseconds);\r\n }\r\n\r\n subtractSeconds(seconds: number): TimeSpan {\r\n return this.subtractMilliseconds(seconds * 1000);\r\n }\r\n\r\n subtractMinutes(minutes: number): TimeSpan {\r\n return this.subtractMilliseconds(minutes * 1000 * 60);\r\n }\r\n\r\n subtractHours(hours: number): TimeSpan {\r\n return this.subtractMilliseconds(hours * 1000 * 60 * 60);\r\n }\r\n\r\n subtractDays(days: number): TimeSpan {\r\n return this.subtractMilliseconds(days * 1000 * 60 * 60 * 24);\r\n }\r\n\r\n subtractWeeks(weeks: number): TimeSpan {\r\n return this.subtractMilliseconds(weeks * 1000 * 60 * 60 * 24 * 7);\r\n }\r\n\r\n // Añadir otro TimeSpan\r\n add(other: TimeSpan): TimeSpan {\r\n return new TimeSpan(this.milliseconds + other.milliseconds);\r\n }\r\n\r\n // Restar otro TimeSpan\r\n subtract(other: TimeSpan): TimeSpan {\r\n return new TimeSpan(this.milliseconds - other.milliseconds);\r\n }\r\n\r\n // Añadir un intervalo de tiempo a una fecha\r\n addTo(date: Date): Date {\r\n return new Date(date.getTime() + this.milliseconds);\r\n }\r\n\r\n // Restar un intervalo de tiempo de una fecha\r\n subtractFrom(date: Date): Date {\r\n return new Date(date.getTime() - this.milliseconds);\r\n }\r\n\r\n\r\n static fromDifference(earlierDate: Date, laterDate: Date): TimeSpan {\r\n return new TimeSpan(laterDate.getTime() - earlierDate.getTime());\r\n }\r\n\r\n format(format: string = 'hh:mm:ss'): string {\r\n const formatLower = format.toLowerCase();\r\n const hasHours = formatLower.includes(\"h\");\r\n const hasMinutes = formatLower.includes(\"m\");\r\n\r\n let hours = 0, minutes = 0, seconds = Math.floor(this.milliseconds / 1000);\r\n\r\n if (hasHours) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n if (hasMinutes) {\r\n minutes = Math.floor(seconds / 60);\r\n seconds -= minutes * 60;\r\n }\r\n\r\n const hoursPadded = String(hours).padStart(2, '0');\r\n const minutesPadded = String(minutes).padStart(2, '0');\r\n const secondsPadded = String(seconds).padStart(2, '0');\r\n\r\n return formatLower\r\n .replace('hh', hoursPadded)\r\n .replace('h', hours.toString())\r\n .replace('mm', minutesPadded)\r\n .replace('m', minutes.toString())\r\n .replace('ss', secondsPadded)\r\n .replace('s', seconds.toString());\r\n }\r\n\r\n eq(other: TimeSpan): boolean {\r\n return this.milliseconds === other.milliseconds;\r\n }\r\n\r\n le(other: TimeSpan): boolean {\r\n return this.milliseconds <= other.milliseconds;\r\n }\r\n\r\n lt(other: TimeSpan): boolean {\r\n return this.milliseconds < other.milliseconds;\r\n }\r\n\r\n ge(other: TimeSpan): boolean {\r\n return this.milliseconds >= other.milliseconds;\r\n }\r\n\r\n gt(other: TimeSpan): boolean {\r\n return this.milliseconds > other.milliseconds;\r\n }\r\n\r\n multiply(number: number): TimeSpan {\r\n return new TimeSpan(this.milliseconds * number);\r\n }\r\n\r\n divide(number: number): TimeSpan {\r\n return new TimeSpan(this.milliseconds / number);\r\n }\r\n\r\n abs(): TimeSpan {\r\n return new TimeSpan(Math.abs(this.milliseconds));\r\n }\r\n\r\n static readonly INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);\r\n\r\n static readonly NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);\r\n\r\n isInfinite() {\r\n return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY\r\n }\r\n\r\n // Determinar si es un TimeSpan infinitamente positivo\r\n isPositiveInfinite(): boolean {\r\n return this.milliseconds === Number.POSITIVE_INFINITY;\r\n }\r\n\r\n // Determinar si es un TimeSpan infinitamente negativo\r\n isNegativeInfinite(): boolean {\r\n return this.milliseconds === Number.NEGATIVE_INFINITY;\r\n }\r\n}","import {promisify} from \"./functions\";\r\nimport {Nullable} from \"./types\";\r\n\r\n\r\ntype FactoryMethod<T> = Promise<Nullable<T>> | (() => (Promise<Nullable<T>> | Nullable<T>));\r\n\r\nexport default class Lazy<T> {\r\n private _valueCreated = false;\r\n private _value: Nullable<T> = null;\r\n private readonly _factoryMethod: FactoryMethod<T>;\r\n\r\n constructor(getter: FactoryMethod<T>) {\r\n this._factoryMethod = getter;\r\n }\r\n\r\n get valueCreated(): boolean {\r\n return this._valueCreated;\r\n }\r\n\r\n async getValue(): Promise<Nullable<T>> {\r\n if (!this._valueCreated) {\r\n this._value = await promisify(this._factoryMethod);\r\n this._valueCreated = true;\r\n }\r\n return this._value;\r\n }\r\n\r\n reset(): void {\r\n this._valueCreated = false;\r\n this._value = null;\r\n }\r\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.esm.js
CHANGED
|
@@ -5,6 +5,8 @@ class Pair {
|
|
|
5
5
|
get key() {
|
|
6
6
|
return this._key;
|
|
7
7
|
}
|
|
8
|
+
_key;
|
|
9
|
+
_value;
|
|
8
10
|
constructor(key, value) {
|
|
9
11
|
this._key = key;
|
|
10
12
|
this._value = value;
|
|
@@ -16,9 +18,9 @@ function isIterable(obj) {
|
|
|
16
18
|
return obj[Symbol.iterator] === 'function';
|
|
17
19
|
}
|
|
18
20
|
function clamp(n, min, max) {
|
|
19
|
-
if (n
|
|
21
|
+
if (n <= min)
|
|
20
22
|
return min;
|
|
21
|
-
if (n
|
|
23
|
+
if (n >= max)
|
|
22
24
|
return max;
|
|
23
25
|
return n;
|
|
24
26
|
}
|
|
@@ -97,15 +99,15 @@ function isEmptyOrWhitespace(value) {
|
|
|
97
99
|
(typeof value === 'string' && value.trim() === '') ||
|
|
98
100
|
value === null || typeof value === 'undefined';
|
|
99
101
|
}
|
|
100
|
-
function ajaxSubmit(selectorOrElement) {
|
|
102
|
+
async function ajaxSubmit(selectorOrElement) {
|
|
101
103
|
const form = typeof selectorOrElement === 'string'
|
|
102
104
|
? document.querySelector(selectorOrElement)
|
|
103
105
|
: selectorOrElement;
|
|
104
106
|
if (!(form instanceof HTMLFormElement)) {
|
|
105
|
-
|
|
107
|
+
throw new Error("Invalid element.");
|
|
106
108
|
}
|
|
107
109
|
// Crear un objeto FormData a partir del formulario
|
|
108
|
-
return fetch(form.action, {
|
|
110
|
+
return await fetch(form.action, {
|
|
109
111
|
method: form.method,
|
|
110
112
|
body: new FormData(form),
|
|
111
113
|
});
|
|
@@ -120,7 +122,7 @@ function toPairs(obj) {
|
|
|
120
122
|
function promisify(thing) {
|
|
121
123
|
if (thing instanceof Promise)
|
|
122
124
|
return thing;
|
|
123
|
-
if (thing
|
|
125
|
+
if (isFunction(thing)) {
|
|
124
126
|
return new Promise((resolve, reject) => {
|
|
125
127
|
try {
|
|
126
128
|
const result = thing();
|
|
@@ -131,11 +133,6 @@ function promisify(thing) {
|
|
|
131
133
|
}
|
|
132
134
|
});
|
|
133
135
|
}
|
|
134
|
-
if (typeof thing.done === 'function' && typeof thing.fail === 'function') {
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
thing.done(resolve).fail(reject);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
136
|
return Promise.resolve(thing);
|
|
140
137
|
}
|
|
141
138
|
function ajaxSubmission(selectorOrElement, onSuccess = null, onFailure = null) {
|
|
@@ -146,9 +143,14 @@ function ajaxSubmission(selectorOrElement, onSuccess = null, onFailure = null) {
|
|
|
146
143
|
return;
|
|
147
144
|
}
|
|
148
145
|
form.addEventListener('submit', async (event) => {
|
|
149
|
-
var _a;
|
|
150
146
|
event.preventDefault();
|
|
151
|
-
|
|
147
|
+
let promise = ajaxSubmit(form);
|
|
148
|
+
if (promise) {
|
|
149
|
+
if (onSuccess)
|
|
150
|
+
promise = promise.then(onSuccess);
|
|
151
|
+
if (onFailure)
|
|
152
|
+
promise.catch(onFailure);
|
|
153
|
+
}
|
|
152
154
|
});
|
|
153
155
|
}
|
|
154
156
|
function deepClone(obj) {
|
|
@@ -207,6 +209,10 @@ function objectToFormData(data) {
|
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
class CacheDictionary {
|
|
212
|
+
fallback;
|
|
213
|
+
cache;
|
|
214
|
+
defaultDuration;
|
|
215
|
+
expiration;
|
|
210
216
|
constructor(fallback = null, defaultDuration = null) {
|
|
211
217
|
this.fallback = fallback;
|
|
212
218
|
this.cache = {};
|
|
@@ -302,6 +308,7 @@ class From {
|
|
|
302
308
|
}
|
|
303
309
|
return true;
|
|
304
310
|
}
|
|
311
|
+
_fn;
|
|
305
312
|
constructor(fn) {
|
|
306
313
|
this._fn = fn;
|
|
307
314
|
}
|
|
@@ -704,6 +711,7 @@ class From {
|
|
|
704
711
|
}
|
|
705
712
|
}
|
|
706
713
|
class Grouping extends From {
|
|
714
|
+
_key;
|
|
707
715
|
get key() {
|
|
708
716
|
return this._key;
|
|
709
717
|
}
|
|
@@ -714,6 +722,9 @@ class Grouping extends From {
|
|
|
714
722
|
}
|
|
715
723
|
|
|
716
724
|
class Timer {
|
|
725
|
+
_callback;
|
|
726
|
+
_interval;
|
|
727
|
+
_intervalId;
|
|
717
728
|
/**
|
|
718
729
|
* @param callback Callback
|
|
719
730
|
* @param interval Seconds between calls
|
|
@@ -765,6 +776,7 @@ class Timer {
|
|
|
765
776
|
}
|
|
766
777
|
|
|
767
778
|
class TimeSpan {
|
|
779
|
+
milliseconds;
|
|
768
780
|
constructor(milliseconds) {
|
|
769
781
|
this.milliseconds = milliseconds;
|
|
770
782
|
}
|
|
@@ -917,6 +929,8 @@ class TimeSpan {
|
|
|
917
929
|
abs() {
|
|
918
930
|
return new TimeSpan(Math.abs(this.milliseconds));
|
|
919
931
|
}
|
|
932
|
+
static INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
933
|
+
static NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
920
934
|
isInfinite() {
|
|
921
935
|
return this.milliseconds === Number.POSITIVE_INFINITY || this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
922
936
|
}
|
|
@@ -929,13 +943,12 @@ class TimeSpan {
|
|
|
929
943
|
return this.milliseconds === Number.NEGATIVE_INFINITY;
|
|
930
944
|
}
|
|
931
945
|
}
|
|
932
|
-
TimeSpan.INFINITE = new TimeSpan(Number.POSITIVE_INFINITY);
|
|
933
|
-
TimeSpan.NEGATIVE_INFINITE = new TimeSpan(Number.NEGATIVE_INFINITY);
|
|
934
946
|
|
|
935
947
|
class Lazy {
|
|
948
|
+
_valueCreated = false;
|
|
949
|
+
_value = null;
|
|
950
|
+
_factoryMethod;
|
|
936
951
|
constructor(getter) {
|
|
937
|
-
this._valueCreated = false;
|
|
938
|
-
this._value = null;
|
|
939
952
|
this._factoryMethod = getter;
|
|
940
953
|
}
|
|
941
954
|
get valueCreated() {
|