@ezez/utils 1.8.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -1
- package/README.md +3 -0
- package/dist/deserialize.d.ts +13 -0
- package/dist/deserialize.d.ts.map +1 -0
- package/dist/deserialize.js +42 -0
- package/dist/deserialize.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/omit.js +3 -1
- package/dist/omit.js.map +1 -1
- package/dist/removeCommonProperties.d.ts +4 -0
- package/dist/removeCommonProperties.d.ts.map +1 -0
- package/dist/removeCommonProperties.js +15 -0
- package/dist/removeCommonProperties.js.map +1 -0
- package/dist/replace.d.ts.map +1 -1
- package/dist/replace.js.map +1 -1
- package/dist/replaceDeep.d.ts +3 -0
- package/dist/replaceDeep.d.ts.map +1 -0
- package/dist/replaceDeep.js +26 -0
- package/dist/replaceDeep.js.map +1 -0
- package/dist/safe.d.ts.map +1 -1
- package/dist/safe.js +1 -1
- package/dist/safe.js.map +1 -1
- package/dist/serialize.d.ts +16 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +61 -0
- package/dist/serialize.js.map +1 -0
- package/dist/setImmutable.js +1 -1
- package/dist/setImmutable.js.map +1 -1
- package/dist/sortBy.js +1 -2
- package/dist/sortBy.js.map +1 -1
- package/dist/sortProps.d.ts.map +1 -1
- package/dist/sortProps.js.map +1 -1
- package/dist/throttle.js +5 -7
- package/dist/throttle.js.map +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/functions/cap.html +12 -6
- package/docs/functions/capitalize.html +12 -6
- package/docs/functions/coalesce.html +12 -6
- package/docs/functions/compareArrays.html +12 -6
- package/docs/functions/compareProps.html +12 -6
- package/docs/functions/deserialize.html +148 -0
- package/docs/functions/ensureArray.html +12 -6
- package/docs/functions/ensureDate.html +12 -6
- package/docs/functions/ensureError.html +12 -6
- package/docs/functions/ensurePrefix.html +12 -6
- package/docs/functions/ensureSuffix.html +12 -6
- package/docs/functions/ensureTimestamp.html +12 -6
- package/docs/functions/escapeRegExp.html +12 -6
- package/docs/functions/formatDate.html +12 -6
- package/docs/functions/get.html +12 -6
- package/docs/functions/getMultiple.html +12 -6
- package/docs/functions/insertSeparator.html +12 -6
- package/docs/functions/isEmpty.html +12 -6
- package/docs/functions/isNumericString.html +12 -6
- package/docs/functions/isPlainObject.html +12 -6
- package/docs/functions/last.html +12 -6
- package/docs/functions/later-1.html +12 -6
- package/docs/functions/mapAsync.html +12 -6
- package/docs/functions/mapValues.html +12 -6
- package/docs/functions/match.html +12 -6
- package/docs/functions/merge.html +20 -14
- package/docs/functions/mostFrequent.html +12 -6
- package/docs/functions/noop.html +12 -6
- package/docs/functions/occurrences.html +12 -6
- package/docs/functions/omit.html +12 -6
- package/docs/functions/pick.html +12 -6
- package/docs/functions/pull.html +12 -6
- package/docs/functions/remove.html +12 -6
- package/docs/functions/removeCommonProperties.html +156 -0
- package/docs/functions/replace.html +12 -6
- package/docs/functions/replaceDeep.html +153 -0
- package/docs/functions/rethrow.html +12 -6
- package/docs/functions/safe.html +13 -7
- package/docs/functions/scale.html +12 -6
- package/docs/functions/seq.html +12 -6
- package/docs/functions/seqEarlyBreak.html +12 -6
- package/docs/functions/serialize.html +153 -0
- package/docs/functions/set.html +12 -6
- package/docs/functions/setImmutable.html +12 -6
- package/docs/functions/sortBy.html +12 -6
- package/docs/functions/sortProps.html +15 -7
- package/docs/functions/stripPrefix.html +12 -6
- package/docs/functions/stripSuffix.html +12 -6
- package/docs/functions/throttle.html +12 -6
- package/docs/functions/truthy.html +12 -6
- package/docs/functions/unique.html +12 -6
- package/docs/functions/wait.html +12 -6
- package/docs/functions/waitFor.html +12 -6
- package/docs/functions/waitSync.html +12 -6
- package/docs/index.html +14 -5
- package/docs/interfaces/ComparePropsOptions.html +6 -6
- package/docs/interfaces/GetMultipleSource.html +12 -6
- package/docs/interfaces/GetSource.html +12 -6
- package/docs/interfaces/IsNumericStringOptions.html +9 -9
- package/docs/interfaces/OccurencesOptions.html +6 -6
- package/docs/interfaces/SetImmutableSource.html +12 -6
- package/docs/interfaces/SetSource.html +12 -6
- package/docs/interfaces/ThrottleOptions.html +7 -7
- package/docs/interfaces/ThrottledFunctionExtras.html +7 -7
- package/docs/modules.html +17 -5
- package/docs/pages/CHANGELOG.html +76 -38
- package/docs/pages/Introduction.html +11 -5
- package/docs/types/CustomDeserializers.html +151 -0
- package/docs/types/CustomSerializers.html +151 -0
- package/docs/types/Later.html +12 -6
- package/docs/types/MapValuesFn.html +12 -6
- package/docs/types/MatchCallback.html +12 -6
- package/docs/types/SeqEarlyBreaker.html +12 -6
- package/docs/types/SeqFn.html +12 -6
- package/docs/types/SeqFunctions.html +12 -6
- package/docs/types/SetImmutablePath.html +12 -6
- package/docs/types/ThrottledFunction.html +12 -6
- package/docs/variables/mapValuesUNSET.html +12 -6
- package/docs/variables/mergeUNSET.html +12 -6
- package/esm/deserialize.d.ts +13 -0
- package/esm/deserialize.d.ts.map +1 -0
- package/esm/deserialize.js +39 -0
- package/esm/deserialize.js.map +1 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -0
- package/esm/index.js.map +1 -1
- package/esm/removeCommonProperties.d.ts +4 -0
- package/esm/removeCommonProperties.d.ts.map +1 -0
- package/esm/removeCommonProperties.js +12 -0
- package/esm/removeCommonProperties.js.map +1 -0
- package/esm/replace.d.ts.map +1 -1
- package/esm/replace.js.map +1 -1
- package/esm/replaceDeep.d.ts +3 -0
- package/esm/replaceDeep.d.ts.map +1 -0
- package/esm/replaceDeep.js +23 -0
- package/esm/replaceDeep.js.map +1 -0
- package/esm/safe.d.ts.map +1 -1
- package/esm/safe.js.map +1 -1
- package/esm/serialize.d.ts +16 -0
- package/esm/serialize.d.ts.map +1 -0
- package/esm/serialize.js +58 -0
- package/esm/serialize.js.map +1 -0
- package/esm/sortBy.js +1 -2
- package/esm/sortBy.js.map +1 -1
- package/esm/sortProps.d.ts.map +1 -1
- package/esm/sortProps.js.map +1 -1
- package/esm/throttle.js +5 -7
- package/esm/throttle.js.map +1 -1
- package/package.json +28 -27
- package/pnpm-lock.yaml +5223 -0
- package/src/deserialize.spec.ts +69 -0
- package/src/deserialize.ts +74 -0
- package/src/index.ts +4 -0
- package/src/removeCommonProperties.spec.ts +34 -0
- package/src/removeCommonProperties.ts +39 -0
- package/src/replace.ts +0 -1
- package/src/replaceDeep.spec.ts +71 -0
- package/src/replaceDeep.ts +44 -0
- package/src/safe.ts +0 -1
- package/src/serialize.spec.ts +83 -0
- package/src/serialize.ts +102 -0
- package/src/sortProps.ts +4 -1
- package/babel.config.cjs +0 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeCommonProperties.js","sourceRoot":"","sources":["../src/removeCommonProperties.ts"],"names":[],"mappings":"AAwBA,MAAM,sBAAsB,GAAG,CAAC,MAAW,EAAE,OAAY,EAAE,GAAG,OAAc,EAAE,EAAE;IAC5E,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1G,IAAI,UAAU,EAAE;YAEZ,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACnD;KACJ;AACL,CAAC,CAAC;AAEF,OAAO,EACH,sBAAsB,GACzB,CAAC"}
|
package/esm/replace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,OAAO,WAAY,MAAM,cAAc,OAAO,MAAM,EAAE,MAAM,CAAC,WAQlE,CAAC;AAEF,OAAO,EACH,OAAO,GACV,CAAC"}
|
package/esm/replace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,UAAkC,EAAE,EAAE;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACnB,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAE,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,OAAO,EACH,OAAO,GACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceDeep.d.ts","sourceRoot":"","sources":["../src/replaceDeep.ts"],"names":[],"mappings":"AAaA,QAAA,MAAM,WAAW,yBAA0B,OAAO,SAAS,OAAO,MA0BjE,CAAC;AAEF,OAAO,EACH,WAAW,GACd,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const replaceDeep = (source, search, value) => {
|
|
2
|
+
if (Object.is(source, search)) {
|
|
3
|
+
return value;
|
|
4
|
+
}
|
|
5
|
+
if (source == null) {
|
|
6
|
+
return source;
|
|
7
|
+
}
|
|
8
|
+
if (typeof source === "object") {
|
|
9
|
+
if (Array.isArray(source)) {
|
|
10
|
+
for (let i = 0; i < source.length; i++) {
|
|
11
|
+
source[i] = replaceDeep(source[i], search, value);
|
|
12
|
+
}
|
|
13
|
+
return source;
|
|
14
|
+
}
|
|
15
|
+
return Object.keys(source).reduce((acc, key) => {
|
|
16
|
+
acc[key] = replaceDeep(source[key], search, value);
|
|
17
|
+
return acc;
|
|
18
|
+
}, {});
|
|
19
|
+
}
|
|
20
|
+
return source;
|
|
21
|
+
};
|
|
22
|
+
export { replaceDeep, };
|
|
23
|
+
//# sourceMappingURL=replaceDeep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceDeep.js","sourceRoot":"","sources":["../src/replaceDeep.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,GAAG,CAAI,MAAS,EAAE,MAAe,EAAE,KAAc,EAAK,EAAE;IACrE,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAC3B,OAAO,KAAU,CAAC;KACrB;IAED,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,OAAO,MAAM,CAAC;KACjB;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEpC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;aACrD;YACD,OAAO,MAAM,CAAC;SACjB;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAEpE,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAE,MAAkC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAM,CAAC;KACf;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EACH,WAAW,GACd,CAAC"}
|
package/esm/safe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"AAAA,iBAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC7C,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"AAAA,iBAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC7C,iBAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAqBhD,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/esm/safe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.js","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe.js","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"AAYA,SAAS,IAAI,CAAO,EAAW,EAAE,GAAO;IAEpC,IAAI;QACA,OAAO,EAAE,EAAE,CAAC;KACf;IACD,MAAM;QACF,OAAO,GAAG,CAAC;KACd;AACL,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type CustomSerializers = {
|
|
2
|
+
[key: string]: (data: unknown) => (string | null);
|
|
3
|
+
s?: never;
|
|
4
|
+
n?: never;
|
|
5
|
+
u?: never;
|
|
6
|
+
l?: never;
|
|
7
|
+
b?: never;
|
|
8
|
+
i?: never;
|
|
9
|
+
};
|
|
10
|
+
type Options = {
|
|
11
|
+
sortProps?: boolean;
|
|
12
|
+
};
|
|
13
|
+
declare const serialize: (data: unknown, customSerializers?: CustomSerializers, options?: Options) => string;
|
|
14
|
+
export type { CustomSerializers };
|
|
15
|
+
export { serialize };
|
|
16
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAEA,KAAK,iBAAiB,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,OAAO,GAAG;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAoBF,QAAA,MAAM,SAAS,SAAU,OAAO,sBAAsB,iBAAiB,YAAY,OAAO,WAgEzF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/esm/serialize.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { sortProps } from "./sortProps.js";
|
|
2
|
+
const serialize = (data, customSerializers, options) => {
|
|
3
|
+
const replacer = (_key, value) => {
|
|
4
|
+
if (typeof value === "string") {
|
|
5
|
+
return `s:${value}`;
|
|
6
|
+
}
|
|
7
|
+
if (typeof value === "number") {
|
|
8
|
+
return `n:${value}`;
|
|
9
|
+
}
|
|
10
|
+
if (typeof value === "bigint") {
|
|
11
|
+
return `i:${value}`;
|
|
12
|
+
}
|
|
13
|
+
if (typeof value === "undefined") {
|
|
14
|
+
return "u:";
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === "boolean") {
|
|
17
|
+
return "b:" + (value ? "1" : "");
|
|
18
|
+
}
|
|
19
|
+
if (value === null) {
|
|
20
|
+
return "l:";
|
|
21
|
+
}
|
|
22
|
+
const serializerKeys = Object.keys(customSerializers ?? {});
|
|
23
|
+
for (const key of serializerKeys) {
|
|
24
|
+
const serialized = customSerializers[key](value);
|
|
25
|
+
if (typeof serialized === "string") {
|
|
26
|
+
return `${key}:${serialized}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (typeof value === "object") {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`Unsupported data type: ${typeof value}`);
|
|
33
|
+
};
|
|
34
|
+
if (data == null
|
|
35
|
+
|| typeof data === "string"
|
|
36
|
+
|| typeof data === "number"
|
|
37
|
+
|| typeof data === "bigint"
|
|
38
|
+
|| typeof data === "undefined"
|
|
39
|
+
|| typeof data === "boolean"
|
|
40
|
+
|| Array.isArray(data)) {
|
|
41
|
+
return JSON.stringify(data, replacer);
|
|
42
|
+
}
|
|
43
|
+
const serializerKeysGlobal = Object.keys(customSerializers ?? {});
|
|
44
|
+
for (const key of serializerKeysGlobal) {
|
|
45
|
+
const serialized = customSerializers[key](data);
|
|
46
|
+
if (typeof serialized === "string") {
|
|
47
|
+
return `"${key}:${serialized}"`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (typeof data === "object") {
|
|
51
|
+
return JSON.stringify(options?.sortProps === false
|
|
52
|
+
? data
|
|
53
|
+
: sortProps(data), replacer);
|
|
54
|
+
}
|
|
55
|
+
throw new Error(`Unsupported data type: ${typeof data}`);
|
|
56
|
+
};
|
|
57
|
+
export { serialize };
|
|
58
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkC3C,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,iBAAqC,EAAE,OAAiB,EAAE,EAAE;IAC1F,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,KAAK,EAAE,CAAC;SACvB;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,KAAK,EAAE,CAAC;SACvB;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,KAAK,EAAE,CAAC;SACvB;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9B,OAAO,IAAI,CAAC;SACf;QACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAC5B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC;SACf;QACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;YAC9B,MAAM,UAAU,GAAG,iBAAkB,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBAChC,OAAO,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;aACjC;SACJ;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,IACI,IAAI,IAAI,IAAI;WACT,OAAO,IAAI,KAAK,QAAQ;WACxB,OAAO,IAAI,KAAK,QAAQ;WACxB,OAAO,IAAI,KAAK,QAAQ;WACxB,OAAO,IAAI,KAAK,WAAW;WAC3B,OAAO,IAAI,KAAK,SAAS;WACzB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACxB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACzC;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAClE,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;QACpC,MAAM,UAAU,GAAG,iBAAkB,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAChC,OAAO,IAAI,GAAG,IAAI,UAAU,GAAG,CAAC;SACnC;KACJ;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,OAAO,IAAI,CAAC,SAAS,CACjB,OAAO,EAAE,SAAS,KAAK,KAAK;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,SAAS,CAAC,IAA+B,CAAC,EAChD,QAAQ,CACX,CAAC;KACL;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/esm/sortBy.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
const sortBy = (propertyName, asc = true, defaultValue = null) => (a, b) => {
|
|
2
|
-
var _a, _b;
|
|
3
2
|
if (a[propertyName] === b[propertyName]) {
|
|
4
3
|
return 0;
|
|
5
4
|
}
|
|
6
|
-
if ((
|
|
5
|
+
if ((a[propertyName] ?? defaultValue) > (b[propertyName] ?? defaultValue)) {
|
|
7
6
|
return asc ? 1 : -1;
|
|
8
7
|
}
|
|
9
8
|
return asc ? -1 : 1;
|
package/esm/sortBy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortBy.js","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,GAAG,CAAI,YAAqB,EAAE,GAAG,GAAG,IAAI,EAAE,eAAwB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"sortBy.js","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,GAAG,CAAI,YAAqB,EAAE,GAAG,GAAG,IAAI,EAAE,eAAwB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;IAClG,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE;QACrC,OAAO,CAAC,CAAC;KACZ;IAGD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,EAAE;QAEvE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvB;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,OAAO,EACH,MAAM,GACT,CAAC"}
|
package/esm/sortProps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortProps.d.ts","sourceRoot":"","sources":["../src/sortProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortProps.d.ts","sourceRoot":"","sources":["../src/sortProps.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,SAAS,oEASd,CAAC;AAEF,OAAO,EACH,SAAS,GACZ,CAAC"}
|
package/esm/sortProps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortProps.js","sourceRoot":"","sources":["../src/sortProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortProps.js","sourceRoot":"","sources":["../src/sortProps.ts"],"names":[],"mappings":"AAUA,MAAM,SAAS,GAAG,CAAoC,MAAS,EAAE,GAAG,GAAG,IAAI,EAAK,EAAE;IAC9E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,GAAG,EAAE;QAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KAAE;SACpB;QAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;KAAE;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,MAAW,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EACH,SAAS,GACZ,CAAC"}
|
package/esm/throttle.js
CHANGED
|
@@ -3,10 +3,9 @@ const defaultOptions = {
|
|
|
3
3
|
trailing: true,
|
|
4
4
|
};
|
|
5
5
|
const throttle = (fn, time = 0, options) => {
|
|
6
|
-
var _a, _b;
|
|
7
6
|
const opts = {
|
|
8
|
-
leading:
|
|
9
|
-
trailing:
|
|
7
|
+
leading: options?.leading ?? defaultOptions.leading,
|
|
8
|
+
trailing: options?.trailing ?? defaultOptions.trailing,
|
|
10
9
|
};
|
|
11
10
|
if (!opts.trailing && !opts.leading) {
|
|
12
11
|
throw new TypeError("Throttle with trailing & leading options `false` won't do anything.");
|
|
@@ -18,7 +17,6 @@ const throttle = (fn, time = 0, options) => {
|
|
|
18
17
|
let lastRun = 0, timeoutId = null, lastResult, lastArgs, lastTime = typeof time === "number" ? time : time[0], leadingCalled = false;
|
|
19
18
|
const times = typeof time === "number" ? [time] : [...time];
|
|
20
19
|
const throttledFn = ((...args) => {
|
|
21
|
-
var _a, _b, _c;
|
|
22
20
|
lastArgs = args;
|
|
23
21
|
if (timeoutId !== null) {
|
|
24
22
|
return lastResult;
|
|
@@ -27,20 +25,20 @@ const throttle = (fn, time = 0, options) => {
|
|
|
27
25
|
if (Date.now() - lastRun < lastTime) {
|
|
28
26
|
return lastResult;
|
|
29
27
|
}
|
|
30
|
-
lastTime =
|
|
28
|
+
lastTime = times.shift() ?? finalTime;
|
|
31
29
|
lastRun = Date.now();
|
|
32
30
|
lastResult = fn(...args);
|
|
33
31
|
return lastResult;
|
|
34
32
|
}
|
|
35
33
|
const diffLastRun = Date.now() - lastRun;
|
|
36
|
-
if (opts.leading && (!leadingCalled || typeof time === "number") && diffLastRun >= (
|
|
34
|
+
if (opts.leading && (!leadingCalled || typeof time === "number") && diffLastRun >= (times[0] ?? finalTime)) {
|
|
37
35
|
lastRun = Date.now();
|
|
38
36
|
lastResult = fn(...args);
|
|
39
37
|
leadingCalled = true;
|
|
40
38
|
return lastResult;
|
|
41
39
|
}
|
|
42
40
|
if (lastRun || !opts.leading) {
|
|
43
|
-
lastTime =
|
|
41
|
+
lastTime = times.shift() ?? finalTime;
|
|
44
42
|
}
|
|
45
43
|
timeoutId = setTimeout(() => {
|
|
46
44
|
timeoutId = null;
|
package/esm/throttle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"AAsBA,MAAM,cAAc,GAAmB;IACnC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACjB,CAAC;AAuBF,MAAM,QAAQ,GAAG,CACb,EAAK,EAAE,OAAuC,CAAC,EAAE,OAAc,EACjC,EAAE
|
|
1
|
+
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"AAsBA,MAAM,cAAc,GAAmB;IACnC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACjB,CAAC;AAuBF,MAAM,QAAQ,GAAG,CACb,EAAK,EAAE,OAAuC,CAAC,EAAE,OAAc,EACjC,EAAE;IAChC,MAAM,IAAI,GAAmB;QACzB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC,OAAO;QACnD,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,cAAc,CAAC,QAAQ;KACzD,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjC,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;KAC9F;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAC1C,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;KAC5E;IAED,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAE3E,IAAI,OAAO,GAAG,CAAC,EACX,SAAS,GAAyC,IAAI,EACtD,UAA0B,EAC1B,QAAuB,EACvB,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EACpD,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAG5D,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC5C,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,SAAS,KAAK,IAAI,EAAE;YACpB,OAAO,UAAU,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE;gBACjC,OAAO,UAAU,CAAC;aACrB;YACD,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC;YACtC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACzB,OAAO,UAAU,CAAC;SACrB;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE;YAExG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACzB,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,UAAU,CAAC;SACrB;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC1B,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC;SACzC;QACD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEtD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAqC,CAAC;IAEvC,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;QACtB,SAAS,KAAK,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,GAAG,IAAI,CAAC;QACjB,OAAO,GAAG,CAAC,CAAC;QACZ,UAAU,GAAG,SAAS,CAAC;QAIvB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;aACI;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACvB;QACD,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IACF,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE;QACrB,IAAI,SAAS,KAAK,IAAI,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,UAAU,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC7B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC;SACnC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EACH,QAAQ,GACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ezez/utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"repository": "https://github.com/dzek69/bottom-line.git",
|
|
5
5
|
"author": "Jacek Nowacki @dzek69 <git-public@dzek.eu>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,20 +8,20 @@
|
|
|
8
8
|
"test": "NODE_ENV=test jest",
|
|
9
9
|
"test:lodashImports": "node test/lodash-tree.cjs",
|
|
10
10
|
"docs": "typedoc src/index.ts --skipErrorChecking --out docs --includeVersion",
|
|
11
|
-
"compile": "
|
|
11
|
+
"compile": "pnpm run compile:esm && pnpm run compile:cjs",
|
|
12
12
|
"compile:esm": "rm -rf esm && tsc --project tsconfig.esm.json && node ./build-scripts/compile.esm.after.mjs",
|
|
13
13
|
"compile:cjs": "rm -rf dist && tsc --project tsconfig.cjs.json && node ./build-scripts/compile.cjs.after.mjs",
|
|
14
14
|
"typecheck": "tsc --noEmit",
|
|
15
15
|
"lint": "eslint src --ext .ts,.tsx,.js,.jsx,.mjs",
|
|
16
|
-
"lint:fix": "
|
|
17
|
-
"prepack": "
|
|
18
|
-
"prepublishOnly": "
|
|
16
|
+
"lint:fix": "pnpm run lint --fix",
|
|
17
|
+
"prepack": "pnpm run compile",
|
|
18
|
+
"prepublishOnly": "pnpm run lint && pnpm run test && pnpm run docs",
|
|
19
19
|
"start:dev": "nodemon",
|
|
20
|
-
"start:dev:compatibility": "TS_NODE_FILES=true
|
|
20
|
+
"start:dev:compatibility": "TS_NODE_FILES=true pnpm run start:dev",
|
|
21
21
|
"prepare": "husky install",
|
|
22
|
-
"updates": "
|
|
23
|
-
"updates:dev": "
|
|
24
|
-
"updates:all": "
|
|
22
|
+
"updates": "pnpm dlx npm-check-updates --dep prod",
|
|
23
|
+
"updates:dev": "pnpm dlx npm-check-updates --dep dev",
|
|
24
|
+
"updates:all": "pnpm dlx npm-check-updates"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
@@ -34,41 +34,42 @@
|
|
|
34
34
|
"types": "./esm/index.d.ts",
|
|
35
35
|
"module": "./esm/index.js",
|
|
36
36
|
"type": "module",
|
|
37
|
-
"dependencies": {},
|
|
38
37
|
"devDependencies": {
|
|
39
|
-
"@babel/core": "^7.22.
|
|
40
|
-
"@babel/preset-env": "^7.22.
|
|
41
|
-
"@babel/preset-typescript": "^7.
|
|
42
|
-
"@dzek69/eslint-config-base": "^2.
|
|
43
|
-
"@dzek69/eslint-config-import": "^1.
|
|
44
|
-
"@dzek69/eslint-config-import-typescript": "^1.0.
|
|
45
|
-
"@dzek69/eslint-config-typescript": "^1.1.
|
|
38
|
+
"@babel/core": "^7.22.20",
|
|
39
|
+
"@babel/preset-env": "^7.22.20",
|
|
40
|
+
"@babel/preset-typescript": "^7.22.15",
|
|
41
|
+
"@dzek69/eslint-config-base": "^2.5.0",
|
|
42
|
+
"@dzek69/eslint-config-import": "^1.3.0",
|
|
43
|
+
"@dzek69/eslint-config-import-typescript": "^1.0.1",
|
|
44
|
+
"@dzek69/eslint-config-typescript": "^1.1.1",
|
|
46
45
|
"@knodes/typedoc-plugin-pages": "^0.23.4",
|
|
47
|
-
"@types/jest": "^29.5.
|
|
46
|
+
"@types/jest": "^29.5.5",
|
|
48
47
|
"@types/lodash": "^4.14.168",
|
|
49
|
-
"@
|
|
50
|
-
"@typescript-eslint/
|
|
48
|
+
"@types/node": "^20.8.3",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^5.61.0",
|
|
50
|
+
"@typescript-eslint/parser": "^5.61.0",
|
|
51
51
|
"babel-plugin-module-extension": "^0.1.3",
|
|
52
|
-
"eslint": "^8.
|
|
53
|
-
"eslint-plugin-import": "^2.
|
|
52
|
+
"eslint": "^8.44.0",
|
|
53
|
+
"eslint-plugin-import": "^2.28.1",
|
|
54
54
|
"fs-extra": "^11.1.1",
|
|
55
55
|
"husky": "^8.0.3",
|
|
56
|
-
"jest": "^29.
|
|
56
|
+
"jest": "^29.7.0",
|
|
57
57
|
"lodash": "^4.17.21",
|
|
58
58
|
"must": "^0.13.4",
|
|
59
|
-
"nodemon": "^
|
|
59
|
+
"nodemon": "^3.0.1",
|
|
60
60
|
"prettier": "^2.8.8",
|
|
61
|
+
"resolve-tspaths": "^0.8.15",
|
|
61
62
|
"ts-node": "^10.9.1",
|
|
62
63
|
"typedoc": "^0.23.28",
|
|
63
|
-
"typescript": "
|
|
64
|
+
"typescript": "5.0.4"
|
|
64
65
|
},
|
|
65
66
|
"husky": {
|
|
66
67
|
"hooks": {
|
|
67
|
-
"pre-push": "
|
|
68
|
+
"pre-push": "pnpm run prepublishOnly && pnpm run compile"
|
|
68
69
|
}
|
|
69
70
|
},
|
|
70
71
|
"libraryTemplate": {
|
|
71
|
-
"version": "3.
|
|
72
|
+
"version": "3.11.2",
|
|
72
73
|
"language": "typescript",
|
|
73
74
|
"fixDefaultForCommonJS": false,
|
|
74
75
|
"jsx": false
|