@splendidlabz/utils 1.10.2 → 1.10.4
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 +13 -0
- package/dist/cjs/dom/accessibility.cjs +0 -2
- package/dist/cjs/dom/actions/index.cjs +7 -391
- package/dist/cjs/dom/actions/masonry.cjs +6 -97
- package/dist/cjs/dom/actions/prefer-horizontal-scroll.cjs +14 -58
- package/dist/cjs/dom/actions/sticky.cjs +6 -126
- package/dist/cjs/dom/bounding-box.cjs +0 -2
- package/dist/cjs/dom/clipboard.cjs +0 -2
- package/dist/cjs/dom/cookie.cjs +1 -3
- package/dist/cjs/dom/css-vars.cjs +3 -13
- package/dist/cjs/dom/events.cjs +0 -2
- package/dist/cjs/dom/focusable.cjs +0 -2
- package/dist/cjs/dom/font-size.cjs +3 -15
- package/dist/cjs/dom/get-element.cjs +1 -3
- package/dist/cjs/dom/hash.cjs +0 -2
- package/dist/cjs/dom/index.cjs +47 -1248
- package/dist/cjs/dom/keyboard.cjs +0 -2
- package/dist/cjs/dom/local-store.cjs +1 -3
- package/dist/cjs/dom/media.cjs +0 -2
- package/dist/cjs/dom/observers/index.cjs +9 -235
- package/dist/cjs/dom/observers/intersection-observer.cjs +6 -38
- package/dist/cjs/dom/observers/mutation-observer.cjs +6 -38
- package/dist/cjs/dom/observers/observer.cjs +2 -12
- package/dist/cjs/dom/observers/resize-observer.cjs +6 -38
- package/dist/cjs/dom/observers/scroll-observer.cjs +3 -62
- package/dist/cjs/dom/pkce.cjs +3 -13
- package/dist/cjs/dom/query-params.cjs +1 -3
- package/dist/cjs/dom/random-string.cjs +0 -2
- package/dist/cjs/dom/sanitize.cjs +3 -27
- package/dist/cjs/dom/session-store.cjs +1 -3
- package/dist/cjs/dom/spam-prevention.cjs +0 -2
- package/dist/cjs/dom/trap-focus.cjs +9 -131
- package/dist/cjs/dom/ui/aria-current.cjs +0 -2
- package/dist/cjs/dom/ui/inconsistent-button-fix.cjs +0 -2
- package/dist/cjs/dom/ui/index.cjs +9 -87
- package/dist/cjs/dom/ui/scroll-container.cjs +0 -2
- package/dist/cjs/dom/ui/traverse-and-scramble.cjs +0 -2
- package/dist/cjs/lib/arrays/index.cjs +13 -121
- package/dist/cjs/lib/arrays/item-position.cjs +0 -2
- package/dist/cjs/lib/arrays/join.cjs +2 -10
- package/dist/cjs/lib/arrays/shuffle.cjs +0 -2
- package/dist/cjs/lib/arrays/sort.cjs +3 -11
- package/dist/cjs/lib/arrays/split-array.cjs +0 -2
- package/dist/cjs/lib/arrays/unique.cjs +0 -2
- package/dist/cjs/lib/auth/index.cjs +3 -35
- package/dist/cjs/lib/auth/route-manager.cjs +0 -2
- package/dist/cjs/lib/checks.cjs +0 -2
- package/dist/cjs/lib/date/days.cjs +1 -3
- package/dist/cjs/lib/date/index.cjs +7 -190
- package/dist/cjs/lib/date/months.cjs +1 -3
- package/dist/cjs/lib/date/time.cjs +2 -14
- package/dist/cjs/lib/form/form-data.cjs +0 -2
- package/dist/cjs/lib/form/index.cjs +5 -104
- package/dist/cjs/lib/form/sanitize.cjs +0 -2
- package/dist/cjs/lib/functions/callback.cjs +0 -2
- package/dist/cjs/lib/functions/debounce.cjs +0 -2
- package/dist/cjs/lib/functions/env.cjs +0 -2
- package/dist/cjs/lib/functions/functional.cjs +0 -2
- package/dist/cjs/lib/functions/index.cjs +11 -124
- package/dist/cjs/lib/functions/throttle.cjs +0 -2
- package/dist/cjs/lib/functions/timeout.cjs +0 -2
- package/dist/cjs/lib/hash.cjs +0 -2
- package/dist/cjs/lib/index.cjs +29 -1155
- package/dist/cjs/lib/numbers/index.cjs +4 -17
- package/dist/cjs/lib/numbers/math.cjs +0 -2
- package/dist/cjs/lib/objects/camelcase-keys.cjs +4 -45
- package/dist/cjs/lib/objects/empty.cjs +0 -2
- package/dist/cjs/lib/objects/equal.cjs +0 -2
- package/dist/cjs/lib/objects/extend.cjs +6 -117
- package/dist/cjs/lib/objects/flatten.cjs +3 -11
- package/dist/cjs/lib/objects/index.cjs +27 -360
- package/dist/cjs/lib/objects/json.cjs +0 -2
- package/dist/cjs/lib/objects/loop.cjs +0 -2
- package/dist/cjs/lib/objects/mix/mix.cjs +3 -5
- package/dist/cjs/lib/objects/nested-property.cjs +0 -2
- package/dist/cjs/lib/objects/normalize-object.cjs +4 -78
- package/dist/cjs/lib/objects/omit-empty.cjs +0 -2
- package/dist/cjs/lib/objects/size.cjs +0 -2
- package/dist/cjs/lib/objects/split.cjs +0 -2
- package/dist/cjs/lib/promises/index.cjs +3 -51
- package/dist/cjs/lib/promises/reject.cjs +2 -19
- package/dist/cjs/lib/sse.cjs +4 -29
- package/dist/cjs/lib/strings/convert-case/convert-case.cjs +0 -2
- package/dist/cjs/lib/strings/index.cjs +11 -179
- package/dist/cjs/lib/strings/markdown.cjs +1 -3
- package/dist/cjs/lib/strings/name.cjs +0 -2
- package/dist/cjs/lib/strings/pluralize.cjs +1 -3
- package/dist/cjs/lib/strings/query-string.cjs +0 -2
- package/dist/cjs/lib/style/index.cjs +2 -31
- package/dist/cjs/lib/symbols/index.cjs +3 -22
- package/dist/cjs/lib/symbols/symbols.cjs +0 -2
- package/dist/cjs/node/dirname.cjs +2 -4
- package/dist/cjs/node/env.cjs +30 -0
- package/dist/cjs/node/file-cache.cjs +3 -45
- package/dist/cjs/node/file.cjs +2 -4
- package/dist/cjs/node/hash.cjs +1 -3
- package/dist/cjs/node/index.cjs +17 -272
- package/dist/cjs/node/pkce.cjs +5 -15
- package/dist/cjs/node/random-string.cjs +1 -3
- package/dist/cjs/node/sanitize.cjs +3 -27
- package/dist/cjs/node/{common.cjs → uuid.cjs} +3 -5
- package/dist/esm/dom/accessibility.js +0 -1
- package/dist/esm/dom/actions/index.js +3 -381
- package/dist/esm/dom/actions/masonry.js +3 -91
- package/dist/esm/dom/actions/prefer-horizontal-scroll.js +4 -45
- package/dist/esm/dom/actions/sticky.js +3 -120
- package/dist/esm/dom/bounding-box.js +0 -1
- package/dist/esm/dom/clipboard.js +0 -1
- package/dist/esm/dom/cookie.js +1 -2
- package/dist/esm/dom/css-vars.js +1 -8
- package/dist/esm/dom/events.js +0 -1
- package/dist/esm/dom/focusable.js +0 -1
- package/dist/esm/dom/font-size.js +1 -10
- package/dist/esm/dom/get-element.js +1 -2
- package/dist/esm/dom/hash.js +0 -1
- package/dist/esm/dom/index.js +23 -1168
- package/dist/esm/dom/keyboard.js +0 -1
- package/dist/esm/dom/local-store.js +1 -2
- package/dist/esm/dom/media.js +0 -1
- package/dist/esm/dom/observers/index.js +4 -224
- package/dist/esm/dom/observers/intersection-observer.js +2 -31
- package/dist/esm/dom/observers/mutation-observer.js +3 -32
- package/dist/esm/dom/observers/observer.js +1 -8
- package/dist/esm/dom/observers/resize-observer.js +2 -31
- package/dist/esm/dom/observers/scroll-observer.js +2 -58
- package/dist/esm/dom/pkce.js +1 -8
- package/dist/esm/dom/query-params.js +1 -2
- package/dist/esm/dom/random-string.js +0 -1
- package/dist/esm/dom/sanitize.js +3 -26
- package/dist/esm/dom/session-store.js +1 -2
- package/dist/esm/dom/spam-prevention.js +0 -1
- package/dist/esm/dom/trap-focus.js +2 -121
- package/dist/esm/dom/ui/aria-current.js +0 -1
- package/dist/esm/dom/ui/inconsistent-button-fix.js +0 -1
- package/dist/esm/dom/ui/index.js +4 -75
- package/dist/esm/dom/ui/scroll-container.js +0 -1
- package/dist/esm/dom/ui/traverse-and-scramble.js +0 -1
- package/dist/esm/lib/arrays/index.js +6 -106
- package/dist/esm/lib/arrays/item-position.js +0 -1
- package/dist/esm/lib/arrays/join.js +1 -6
- package/dist/esm/lib/arrays/shuffle.js +0 -1
- package/dist/esm/lib/arrays/sort.js +1 -6
- package/dist/esm/lib/arrays/split-array.js +0 -1
- package/dist/esm/lib/arrays/unique.js +0 -1
- package/dist/esm/lib/auth/index.js +1 -26
- package/dist/esm/lib/auth/route-manager.js +0 -1
- package/dist/esm/lib/checks.js +0 -1
- package/dist/esm/lib/date/days.js +1 -2
- package/dist/esm/lib/date/index.js +3 -173
- package/dist/esm/lib/date/months.js +1 -2
- package/dist/esm/lib/date/time.js +1 -10
- package/dist/esm/lib/form/form-data.js +0 -1
- package/dist/esm/lib/form/index.js +2 -92
- package/dist/esm/lib/form/sanitize.js +0 -1
- package/dist/esm/lib/functions/callback.js +0 -1
- package/dist/esm/lib/functions/debounce.js +0 -1
- package/dist/esm/lib/functions/env.js +0 -1
- package/dist/esm/lib/functions/functional.js +0 -1
- package/dist/esm/lib/functions/index.js +5 -105
- package/dist/esm/lib/functions/throttle.js +0 -1
- package/dist/esm/lib/functions/timeout.js +0 -1
- package/dist/esm/lib/hash.js +0 -1
- package/dist/esm/lib/index.js +14 -1052
- package/dist/esm/lib/numbers/index.js +2 -12
- package/dist/esm/lib/numbers/math.js +0 -1
- package/dist/esm/lib/objects/camelcase-keys.js +2 -40
- package/dist/esm/lib/objects/empty.js +0 -1
- package/dist/esm/lib/objects/equal.js +0 -1
- package/dist/esm/lib/objects/extend.js +3 -111
- package/dist/esm/lib/objects/flatten.js +1 -6
- package/dist/esm/lib/objects/index.js +13 -323
- package/dist/esm/lib/objects/json.js +0 -1
- package/dist/esm/lib/objects/loop.js +0 -1
- package/dist/esm/lib/objects/mix/mix.js +3 -4
- package/dist/esm/lib/objects/nested-property.js +0 -1
- package/dist/esm/lib/objects/normalize-object.js +3 -74
- package/dist/esm/lib/objects/omit-empty.js +0 -1
- package/dist/esm/lib/objects/size.js +0 -1
- package/dist/esm/lib/objects/split.js +0 -1
- package/dist/esm/lib/promises/index.js +1 -33
- package/dist/esm/lib/promises/reject.js +1 -17
- package/dist/esm/lib/sse.js +2 -24
- package/dist/esm/lib/strings/convert-case/convert-case.js +0 -1
- package/dist/esm/lib/strings/index.js +5 -147
- package/dist/esm/lib/strings/markdown.js +1 -2
- package/dist/esm/lib/strings/name.js +0 -1
- package/dist/esm/lib/strings/pluralize.js +1 -2
- package/dist/esm/lib/strings/query-string.js +0 -1
- package/dist/esm/lib/style/index.js +1 -27
- package/dist/esm/lib/symbols/index.js +1 -13
- package/dist/esm/lib/symbols/symbols.js +0 -1
- package/dist/esm/node/dirname.js +2 -3
- package/dist/esm/node/env.js +6 -0
- package/dist/esm/node/file-cache.js +2 -43
- package/dist/esm/node/file.js +2 -3
- package/dist/esm/node/hash.js +1 -2
- package/dist/esm/node/index.js +8 -243
- package/dist/esm/node/pkce.js +3 -12
- package/dist/esm/node/random-string.js +1 -2
- package/dist/esm/node/sanitize.js +3 -26
- package/dist/esm/node/{common.js → uuid.js} +0 -1
- package/dist/types/node/env.d.cts +3 -0
- package/dist/types/node/index.d.cts +2 -1
- package/package.json +2 -1
- package/src/node/env.js +3 -0
- package/src/node/index.js +2 -1
- package/tsup.config.mjs +2 -0
- /package/dist/types/node/{common.d.cts → uuid.d.cts} +0 -0
- /package/src/node/{common.js → uuid.js} +0 -0
|
@@ -14,26 +14,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
14
|
}
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
17
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/numbers/index.js
|
|
20
19
|
var numbers_exports = {};
|
|
21
20
|
__export(numbers_exports, {
|
|
22
|
-
splitUnit: () => splitUnit
|
|
23
|
-
toDegrees: () => toDegrees,
|
|
24
|
-
toRadians: () => toRadians
|
|
21
|
+
splitUnit: () => splitUnit
|
|
25
22
|
});
|
|
26
23
|
module.exports = __toCommonJS(numbers_exports);
|
|
27
|
-
|
|
28
|
-
// src/lib/numbers/math.js
|
|
29
|
-
function toDegrees(angle) {
|
|
30
|
-
return angle * (180 / Math.PI);
|
|
31
|
-
}
|
|
32
|
-
function toRadians(angle) {
|
|
33
|
-
return angle * (Math.PI / 180);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// src/lib/numbers/index.js
|
|
24
|
+
__reExport(numbers_exports, require("./math.js"), module.exports);
|
|
37
25
|
function splitUnit(string) {
|
|
38
26
|
if (typeof string === "number") return [string, null];
|
|
39
27
|
const regex = /(-?\d*\.?\d+)\s*([a-z]+)/i;
|
|
@@ -44,6 +32,5 @@ function splitUnit(string) {
|
|
|
44
32
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45
33
|
0 && (module.exports = {
|
|
46
34
|
splitUnit,
|
|
47
|
-
|
|
48
|
-
toRadians
|
|
35
|
+
...require("./math.js")
|
|
49
36
|
});
|
|
@@ -15,8 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/numbers/math.js
|
|
20
18
|
var math_exports = {};
|
|
21
19
|
__export(math_exports, {
|
|
22
20
|
toDegrees: () => toDegrees,
|
|
@@ -15,61 +15,20 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/objects/camelcase-keys.js
|
|
20
18
|
var camelcase_keys_exports = {};
|
|
21
19
|
__export(camelcase_keys_exports, {
|
|
22
20
|
camelCaseKeys: () => camelCaseKeys
|
|
23
21
|
});
|
|
24
22
|
module.exports = __toCommonJS(camelcase_keys_exports);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
function objectForEach(object, callback) {
|
|
28
|
-
Object.entries(object).forEach(([key, value]) => {
|
|
29
|
-
callback({ key, value });
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// src/lib/strings/convert-case/convert-case.js
|
|
34
|
-
function toKebab(string) {
|
|
35
|
-
if (!string) return "";
|
|
36
|
-
return string.split("").map((letter, index) => {
|
|
37
|
-
const previousLetter = string[index - 1] || "";
|
|
38
|
-
const currentLetter = letter;
|
|
39
|
-
if (isDigit(currentLetter) && !isDigit(previousLetter)) {
|
|
40
|
-
return `-${currentLetter}`;
|
|
41
|
-
}
|
|
42
|
-
if (!isCaps(currentLetter)) return currentLetter;
|
|
43
|
-
if (previousLetter === "") {
|
|
44
|
-
return `${currentLetter.toLowerCase()}`;
|
|
45
|
-
}
|
|
46
|
-
if (isCaps(previousLetter)) {
|
|
47
|
-
return `${currentLetter.toLowerCase()}`;
|
|
48
|
-
}
|
|
49
|
-
return `-${currentLetter.toLowerCase()}`;
|
|
50
|
-
}).join("").trim().replace(/[-_\s]+/g, "-");
|
|
51
|
-
}
|
|
52
|
-
function toCamel(string) {
|
|
53
|
-
return toKebab(string).split("-").map((word, index) => {
|
|
54
|
-
if (index === 0) return word;
|
|
55
|
-
return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase();
|
|
56
|
-
}).join("");
|
|
57
|
-
}
|
|
58
|
-
function isCaps(char) {
|
|
59
|
-
return /\p{Lu}/u.test(char);
|
|
60
|
-
}
|
|
61
|
-
function isDigit(char) {
|
|
62
|
-
return /[0-9]/.test(char);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// src/lib/objects/camelcase-keys.js
|
|
23
|
+
var import_loop = require("./loop.js");
|
|
24
|
+
var import_convert_case = require("../strings/convert-case/convert-case.js");
|
|
66
25
|
function camelCaseKeys(obj) {
|
|
67
26
|
if (typeof obj !== "object" || obj === null) {
|
|
68
27
|
return obj;
|
|
69
28
|
}
|
|
70
29
|
const result = {};
|
|
71
|
-
objectForEach(obj, ({ key, value }) => {
|
|
72
|
-
const camelCaseKey = toCamel(key);
|
|
30
|
+
(0, import_loop.objectForEach)(obj, ({ key, value }) => {
|
|
31
|
+
const camelCaseKey = (0, import_convert_case.toCamel)(key);
|
|
73
32
|
result[camelCaseKey] = camelCaseKeys(value);
|
|
74
33
|
});
|
|
75
34
|
return result;
|
|
@@ -15,8 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/objects/empty.js
|
|
20
18
|
var empty_exports = {};
|
|
21
19
|
__export(empty_exports, {
|
|
22
20
|
isEmpty: () => isEmpty,
|
|
@@ -25,8 +25,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
mod
|
|
26
26
|
));
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
|
|
29
|
-
// src/lib/objects/equal.js
|
|
30
28
|
var equal_exports = {};
|
|
31
29
|
__export(equal_exports, {
|
|
32
30
|
isEqual: () => isEqual,
|
|
@@ -15,130 +15,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/objects/extend.js
|
|
20
18
|
var extend_exports = {};
|
|
21
19
|
__export(extend_exports, {
|
|
22
20
|
extendObject: () => extendObject
|
|
23
21
|
});
|
|
24
22
|
module.exports = __toCommonJS(extend_exports);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Object.entries(object).forEach(([key, value]) => {
|
|
29
|
-
callback({ key, value });
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function objectMap(object, callback) {
|
|
33
|
-
return Object.entries(object).map(([key, value]) => {
|
|
34
|
-
return callback({ key, value });
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// src/lib/functions/functional.js
|
|
39
|
-
function curry(fn) {
|
|
40
|
-
return function curried(...args) {
|
|
41
|
-
if (args.length >= fn.length) {
|
|
42
|
-
return fn.apply(this, args);
|
|
43
|
-
} else {
|
|
44
|
-
return function(...moreArgs) {
|
|
45
|
-
return curried.apply(this, args.concat(moreArgs));
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// src/lib/objects/mix/mix.js
|
|
52
|
-
var DEFAULT_OPTIONS = { array: "replace" };
|
|
53
|
-
var mix = createMix();
|
|
54
|
-
var concatMix = createMix({ array: "concat" });
|
|
55
|
-
function createMix(userOptions = {}) {
|
|
56
|
-
const options = { ...DEFAULT_OPTIONS, ...userOptions };
|
|
57
|
-
function _mix(...sources) {
|
|
58
|
-
const result = {};
|
|
59
|
-
for (const source of sources) {
|
|
60
|
-
if (source == null) continue;
|
|
61
|
-
merge(result, source, options);
|
|
62
|
-
}
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
return _mix;
|
|
66
|
-
}
|
|
67
|
-
function merge(output, input, options) {
|
|
68
|
-
const props = Object.keys(input);
|
|
69
|
-
for (const prop of props) {
|
|
70
|
-
if (prop === "__proto__") continue;
|
|
71
|
-
const descriptor = Object.getOwnPropertyDescriptor(input, prop);
|
|
72
|
-
const value = descriptor.value;
|
|
73
|
-
if (value) descriptor.value = cloneDescriptorValue(value);
|
|
74
|
-
if (!output[prop]) {
|
|
75
|
-
Object.defineProperty(output, prop, descriptor);
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
if (typeof output[prop] !== "object") {
|
|
79
|
-
Object.defineProperty(output, prop, descriptor);
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (descriptor.value == null || typeof descriptor.value !== "object") {
|
|
83
|
-
Object.defineProperty(output, prop, descriptor);
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if (objectType(descriptor.value) === "[object Array]") {
|
|
87
|
-
output[prop] = options.array === "replace" ? descriptor.value.slice() : output[prop].concat(descriptor.value);
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
merge(output[prop], descriptor.value, options);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function cloneDescriptorValue(value) {
|
|
94
|
-
if (objectType(value) === "[object Array]") {
|
|
95
|
-
const array = [];
|
|
96
|
-
for (let v of value) {
|
|
97
|
-
v = cloneDescriptorValue(v);
|
|
98
|
-
array.push(v);
|
|
99
|
-
}
|
|
100
|
-
return array;
|
|
101
|
-
}
|
|
102
|
-
if (objectType(value) === "[object Object]") {
|
|
103
|
-
const obj = {};
|
|
104
|
-
const props = Object.keys(value);
|
|
105
|
-
for (const prop of props) {
|
|
106
|
-
const descriptor = Object.getOwnPropertyDescriptor(value, prop);
|
|
107
|
-
if (descriptor.value)
|
|
108
|
-
descriptor.value = cloneDescriptorValue(descriptor.value);
|
|
109
|
-
Object.defineProperty(obj, prop, descriptor);
|
|
110
|
-
}
|
|
111
|
-
return obj;
|
|
112
|
-
}
|
|
113
|
-
if (objectType(value) === "[object Date]") {
|
|
114
|
-
return new Date(value.getTime());
|
|
115
|
-
}
|
|
116
|
-
if (objectType(value) === "[object Map]") {
|
|
117
|
-
const map = /* @__PURE__ */ new Map();
|
|
118
|
-
for (const entry of value) {
|
|
119
|
-
map.set(entry[0], cloneDescriptorValue(entry[1]));
|
|
120
|
-
}
|
|
121
|
-
return map;
|
|
122
|
-
}
|
|
123
|
-
if (objectType(value) === "[object Set]") {
|
|
124
|
-
const set = /* @__PURE__ */ new Set();
|
|
125
|
-
for (const entry of value.entries()) {
|
|
126
|
-
set.add(cloneDescriptorValue(entry[0]));
|
|
127
|
-
}
|
|
128
|
-
return set;
|
|
129
|
-
}
|
|
130
|
-
return value;
|
|
131
|
-
}
|
|
132
|
-
function objectType(value) {
|
|
133
|
-
return Object.prototype.toString.call(value);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// src/lib/objects/extend.js
|
|
23
|
+
var import_loop = require("./loop.js");
|
|
24
|
+
var import_functional = require("../functions/functional.js");
|
|
25
|
+
var import_mix = require("./mix/mix.js");
|
|
137
26
|
function extendObject(object) {
|
|
138
27
|
const orig = object;
|
|
139
|
-
const extended = mix({}, object);
|
|
140
|
-
extended.forEach = curry(objectForEach)(orig);
|
|
141
|
-
extended.map = curry(objectMap)(orig);
|
|
28
|
+
const extended = (0, import_mix.mix)({}, object);
|
|
29
|
+
extended.forEach = (0, import_functional.curry)(import_loop.objectForEach)(orig);
|
|
30
|
+
extended.map = (0, import_functional.curry)(import_loop.objectMap)(orig);
|
|
142
31
|
return { orig, extended };
|
|
143
32
|
}
|
|
144
33
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -15,25 +15,17 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
|
|
19
|
-
// src/lib/objects/flatten.js
|
|
20
18
|
var flatten_exports = {};
|
|
21
19
|
__export(flatten_exports, {
|
|
22
20
|
flattenObject: () => flattenObject
|
|
23
21
|
});
|
|
24
22
|
module.exports = __toCommonJS(flatten_exports);
|
|
25
|
-
|
|
26
|
-
// src/lib/checks.js
|
|
27
|
-
function isObject(x) {
|
|
28
|
-
return typeof x === "object" && !Array.isArray(x) && x !== null;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// src/lib/objects/flatten.js
|
|
23
|
+
var import_checks = require("../checks.js");
|
|
32
24
|
function flattenObject(obj, { separator, prefix = "" }) {
|
|
33
25
|
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
34
26
|
const newKey = prefix ? `${prefix}${separator}${key}` : key;
|
|
35
|
-
const isAnObject = isObject(value);
|
|
36
|
-
const hasNestedObject = isAnObject && Object.values(value).some(isObject);
|
|
27
|
+
const isAnObject = (0, import_checks.isObject)(value);
|
|
28
|
+
const hasNestedObject = isAnObject && Object.values(value).some(import_checks.isObject);
|
|
37
29
|
if (hasNestedObject) {
|
|
38
30
|
Object.assign(acc, flattenObject(value, { separator, prefix: newKey }));
|
|
39
31
|
} else {
|