@ls-stack/utils 3.65.0 → 3.66.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/dist/{arrayUtils.d.cts → arrayUtils.d.mts} +24 -23
- package/dist/arrayUtils.mjs +249 -0
- package/dist/assertions-qMxfVhSu.mjs +207 -0
- package/dist/{assertions.d.ts → assertions.d.mts} +4 -3
- package/dist/assertions.mjs +3 -0
- package/dist/asyncQueue.d.mts +497 -0
- package/dist/asyncQueue.mjs +757 -0
- package/dist/{awaitDebounce.d.cts → awaitDebounce.d.mts} +11 -6
- package/dist/awaitDebounce.mjs +54 -0
- package/dist/{cache.d.ts → cache.d.mts} +76 -68
- package/dist/cache.mjs +355 -0
- package/dist/castValues-DfICShCc.mjs +19 -0
- package/dist/{castValues.d.cts → castValues.d.mts} +3 -2
- package/dist/castValues.mjs +3 -0
- package/dist/{concurrentCalls.d.ts → concurrentCalls.d.mts} +74 -65
- package/dist/concurrentCalls.mjs +295 -0
- package/dist/consoleFmt.d.mts +55 -0
- package/dist/consoleFmt.mjs +63 -0
- package/dist/conversions-DTmwEMIu.mjs +12 -0
- package/dist/conversions.d.mts +4 -0
- package/dist/conversions.mjs +3 -0
- package/dist/createThrottleController.d.mts +18 -0
- package/dist/createThrottleController.mjs +40 -0
- package/dist/debounce.d.mts +47 -0
- package/dist/debounce.mjs +117 -0
- package/dist/dedent.d.mts +74 -0
- package/dist/dedent.mjs +80 -0
- package/dist/deepEqual-C7EZEixx.mjs +78 -0
- package/dist/{deepEqual.d.cts → deepEqual.d.mts} +3 -2
- package/dist/deepEqual.mjs +3 -0
- package/dist/{deepReplaceValues.d.cts → deepReplaceValues.d.mts} +4 -3
- package/dist/deepReplaceValues.mjs +61 -0
- package/dist/diffParser.d.mts +63 -0
- package/dist/diffParser.mjs +410 -0
- package/dist/enhancedMap.d.mts +21 -0
- package/dist/enhancedMap.mjs +69 -0
- package/dist/exhaustiveMatch.d.mts +10 -0
- package/dist/exhaustiveMatch.mjs +48 -0
- package/dist/{filterObjectOrArrayKeys.d.cts → filterObjectOrArrayKeys.d.mts} +15 -8
- package/dist/filterObjectOrArrayKeys.mjs +497 -0
- package/dist/{getAutoIncrementId.d.cts → getAutoIncrementId.d.mts} +9 -5
- package/dist/getAutoIncrementId.mjs +53 -0
- package/dist/{getCompositeKey.d.cts → getCompositeKey.d.mts} +3 -2
- package/dist/getCompositeKey.mjs +50 -0
- package/dist/{getValueStableKey.d.cts → getValueStableKey.d.mts} +5 -3
- package/dist/getValueStableKey.mjs +17 -0
- package/dist/{hash.d.cts → hash.d.mts} +3 -2
- package/dist/hash.mjs +28 -0
- package/dist/interpolate.d.mts +17 -0
- package/dist/interpolate.mjs +28 -0
- package/dist/{iteratorUtils.d.cts → iteratorUtils.d.mts} +5 -4
- package/dist/iteratorUtils.mjs +39 -0
- package/dist/keepPrevIfUnchanged.d.mts +12 -0
- package/dist/keepPrevIfUnchanged.mjs +9 -0
- package/dist/keyedMap.d.mts +76 -0
- package/dist/keyedMap.mjs +139 -0
- package/dist/keyedSet.d.mts +77 -0
- package/dist/keyedSet.mjs +129 -0
- package/dist/{levenshtein.d.cts → levenshtein.d.mts} +3 -2
- package/dist/levenshtein.mjs +121 -0
- package/dist/main.d.mts +4 -0
- package/dist/main.mjs +7 -0
- package/dist/matchPath.d.mts +50 -0
- package/dist/matchPath.mjs +81 -0
- package/dist/mathUtils-BDP1lM_z.mjs +81 -0
- package/dist/{mathUtils.d.cts → mathUtils.d.mts} +3 -2
- package/dist/mathUtils.mjs +3 -0
- package/dist/{mutationUtils.d.cts → mutationUtils.d.mts} +6 -5
- package/dist/mutationUtils.mjs +44 -0
- package/dist/{objUtils.d.ts → objUtils.d.mts} +8 -6
- package/dist/objUtils.mjs +115 -0
- package/dist/parallelAsyncCalls.d.mts +83 -0
- package/dist/parallelAsyncCalls.mjs +121 -0
- package/dist/partialEqual.d.mts +139 -0
- package/dist/partialEqual.mjs +1055 -0
- package/dist/promiseUtils.d.mts +9 -0
- package/dist/promiseUtils.mjs +17 -0
- package/dist/regexUtils.d.mts +18 -0
- package/dist/regexUtils.mjs +34 -0
- package/dist/{retryOnError.d.cts → retryOnError.d.mts} +38 -37
- package/dist/retryOnError.mjs +91 -0
- package/dist/{runShellCmd.d.ts → runShellCmd.d.mts} +24 -15
- package/dist/runShellCmd.mjs +151 -0
- package/dist/{safeJson.d.cts → safeJson.d.mts} +3 -2
- package/dist/safeJson.mjs +30 -0
- package/dist/{saferTyping.d.cts → saferTyping.d.mts} +4 -3
- package/dist/saferTyping.mjs +45 -0
- package/dist/serializeXML.d.mts +23 -0
- package/dist/serializeXML.mjs +74 -0
- package/dist/{shallowEqual.d.cts → shallowEqual.d.mts} +3 -2
- package/dist/shallowEqual.mjs +54 -0
- package/dist/sleep.d.mts +4 -0
- package/dist/sleep.mjs +7 -0
- package/dist/stringUtils-DjhWOiYn.mjs +113 -0
- package/dist/{stringUtils.d.cts → stringUtils.d.mts} +3 -2
- package/dist/stringUtils.mjs +3 -0
- package/dist/{testUtils.d.ts → testUtils.d.mts} +83 -52
- package/dist/testUtils.mjs +310 -0
- package/dist/{throttle.d.ts → throttle.d.mts} +18 -17
- package/dist/throttle.mjs +102 -0
- package/dist/time-sr2lhQRw.mjs +67 -0
- package/dist/{time.d.ts → time.d.mts} +8 -7
- package/dist/time.mjs +3 -0
- package/dist/{timers.d.cts → timers.d.mts} +22 -13
- package/dist/timers.mjs +220 -0
- package/dist/{tsResult.d.cts → tsResult.d.mts} +52 -48
- package/dist/tsResult.mjs +142 -0
- package/dist/typeGuards-B1mzA-Rz.mjs +128 -0
- package/dist/{typeGuards.d.cts → typeGuards.d.mts} +3 -2
- package/dist/typeGuards.mjs +3 -0
- package/dist/{typeUtils.d.ts → typeUtils.d.mts} +13 -34
- package/dist/typeUtils.mjs +1 -0
- package/dist/{typedStrings.d.cts → typedStrings.d.mts} +5 -4
- package/dist/typedStrings.mjs +131 -0
- package/dist/typingFnUtils-Bb8drgKF.mjs +101 -0
- package/dist/{typingFnUtils.d.cts → typingFnUtils.d.mts} +13 -22
- package/dist/typingFnUtils.mjs +3 -0
- package/dist/{typingTestUtils.d.cts → typingTestUtils.d.mts} +11 -15
- package/dist/typingTestUtils.mjs +80 -0
- package/dist/typingUtils.d.mts +20 -0
- package/dist/typingUtils.mjs +1 -0
- package/dist/yamlStringify.d.mts +17 -0
- package/dist/yamlStringify.mjs +189 -0
- package/package.json +65 -242
- package/dist/arrayUtils.cjs +0 -229
- package/dist/arrayUtils.d.ts +0 -171
- package/dist/arrayUtils.js +0 -42
- package/dist/assertions.cjs +0 -107
- package/dist/assertions.d.cts +0 -192
- package/dist/assertions.js +0 -25
- package/dist/asyncQueue.cjs +0 -672
- package/dist/asyncQueue.d.cts +0 -488
- package/dist/asyncQueue.d.ts +0 -488
- package/dist/asyncQueue.js +0 -631
- package/dist/awaitDebounce.cjs +0 -106
- package/dist/awaitDebounce.d.ts +0 -41
- package/dist/awaitDebounce.js +0 -28
- package/dist/cache.cjs +0 -367
- package/dist/cache.d.cts +0 -228
- package/dist/cache.js +0 -19
- package/dist/castValues.cjs +0 -50
- package/dist/castValues.d.ts +0 -4
- package/dist/castValues.js +0 -8
- package/dist/chunk-5DZT3Z5Z.js +0 -8
- package/dist/chunk-6FBIEPWU.js +0 -96
- package/dist/chunk-6FIBVC2P.js +0 -56
- package/dist/chunk-7CQPOM5I.js +0 -100
- package/dist/chunk-B6DNOZCP.js +0 -369
- package/dist/chunk-BM4PYVOX.js +0 -109
- package/dist/chunk-C2SVCIWE.js +0 -57
- package/dist/chunk-CCUPDGSZ.js +0 -132
- package/dist/chunk-DBOWTYR4.js +0 -49
- package/dist/chunk-DFXNVEH6.js +0 -14
- package/dist/chunk-DX2524CZ.js +0 -314
- package/dist/chunk-GMJTLFM6.js +0 -60
- package/dist/chunk-IATIXMCE.js +0 -20
- package/dist/chunk-II4R3VVX.js +0 -25
- package/dist/chunk-JF2MDHOJ.js +0 -40
- package/dist/chunk-JQFUKJU5.js +0 -71
- package/dist/chunk-MI4UE2PQ.js +0 -561
- package/dist/chunk-PUKVXYYL.js +0 -52
- package/dist/chunk-QQS7I7ZL.js +0 -16
- package/dist/chunk-VAAMRG4K.js +0 -20
- package/dist/chunk-WFQJUJTC.js +0 -182
- package/dist/chunk-ZXIKIA5B.js +0 -178
- package/dist/concurrentCalls.cjs +0 -406
- package/dist/concurrentCalls.d.cts +0 -116
- package/dist/concurrentCalls.js +0 -346
- package/dist/consoleFmt.cjs +0 -85
- package/dist/consoleFmt.d.cts +0 -54
- package/dist/consoleFmt.d.ts +0 -54
- package/dist/consoleFmt.js +0 -60
- package/dist/conversions.cjs +0 -44
- package/dist/conversions.d.cts +0 -3
- package/dist/conversions.d.ts +0 -3
- package/dist/conversions.js +0 -6
- package/dist/createThrottleController.cjs +0 -193
- package/dist/createThrottleController.d.cts +0 -13
- package/dist/createThrottleController.d.ts +0 -13
- package/dist/createThrottleController.js +0 -61
- package/dist/debounce.cjs +0 -157
- package/dist/debounce.d.cts +0 -46
- package/dist/debounce.d.ts +0 -46
- package/dist/debounce.js +0 -8
- package/dist/dedent.cjs +0 -104
- package/dist/dedent.d.cts +0 -73
- package/dist/dedent.d.ts +0 -73
- package/dist/dedent.js +0 -79
- package/dist/deepEqual.cjs +0 -96
- package/dist/deepEqual.d.ts +0 -21
- package/dist/deepEqual.js +0 -8
- package/dist/deepReplaceValues.cjs +0 -87
- package/dist/deepReplaceValues.d.ts +0 -27
- package/dist/deepReplaceValues.js +0 -7
- package/dist/enhancedMap.cjs +0 -131
- package/dist/enhancedMap.d.cts +0 -20
- package/dist/enhancedMap.d.ts +0 -20
- package/dist/enhancedMap.js +0 -10
- package/dist/exhaustiveMatch.cjs +0 -66
- package/dist/exhaustiveMatch.d.cts +0 -9
- package/dist/exhaustiveMatch.d.ts +0 -9
- package/dist/exhaustiveMatch.js +0 -40
- package/dist/filterObjectOrArrayKeys.cjs +0 -619
- package/dist/filterObjectOrArrayKeys.d.ts +0 -88
- package/dist/filterObjectOrArrayKeys.js +0 -9
- package/dist/getAutoIncrementId.cjs +0 -44
- package/dist/getAutoIncrementId.d.ts +0 -46
- package/dist/getAutoIncrementId.js +0 -18
- package/dist/getCompositeKey.cjs +0 -86
- package/dist/getCompositeKey.d.ts +0 -11
- package/dist/getCompositeKey.js +0 -8
- package/dist/getValueStableKey.cjs +0 -89
- package/dist/getValueStableKey.d.ts +0 -15
- package/dist/getValueStableKey.js +0 -11
- package/dist/hash.cjs +0 -57
- package/dist/hash.d.ts +0 -7
- package/dist/hash.js +0 -32
- package/dist/interpolate.cjs +0 -88
- package/dist/interpolate.d.cts +0 -11
- package/dist/interpolate.d.ts +0 -11
- package/dist/interpolate.js +0 -46
- package/dist/iteratorUtils.cjs +0 -73
- package/dist/iteratorUtils.d.ts +0 -10
- package/dist/iteratorUtils.js +0 -44
- package/dist/keepPrevIfUnchanged.cjs +0 -102
- package/dist/keepPrevIfUnchanged.d.cts +0 -7
- package/dist/keepPrevIfUnchanged.d.ts +0 -7
- package/dist/keepPrevIfUnchanged.js +0 -7
- package/dist/keyedMap.cjs +0 -224
- package/dist/keyedMap.d.cts +0 -75
- package/dist/keyedMap.d.ts +0 -75
- package/dist/keyedMap.js +0 -145
- package/dist/keyedSet.cjs +0 -205
- package/dist/keyedSet.d.cts +0 -76
- package/dist/keyedSet.d.ts +0 -76
- package/dist/keyedSet.js +0 -126
- package/dist/levenshtein.cjs +0 -180
- package/dist/levenshtein.d.ts +0 -5
- package/dist/levenshtein.js +0 -153
- package/dist/main.cjs +0 -32
- package/dist/main.d.cts +0 -3
- package/dist/main.d.ts +0 -3
- package/dist/main.js +0 -7
- package/dist/matchPath.cjs +0 -155
- package/dist/matchPath.d.cts +0 -53
- package/dist/matchPath.d.ts +0 -53
- package/dist/matchPath.js +0 -108
- package/dist/mathUtils.cjs +0 -81
- package/dist/mathUtils.d.ts +0 -54
- package/dist/mathUtils.js +0 -22
- package/dist/mutationUtils.cjs +0 -153
- package/dist/mutationUtils.d.ts +0 -15
- package/dist/mutationUtils.js +0 -55
- package/dist/objUtils.cjs +0 -242
- package/dist/objUtils.d.cts +0 -28
- package/dist/objUtils.js +0 -38
- package/dist/parallelAsyncCalls.cjs +0 -162
- package/dist/parallelAsyncCalls.d.cts +0 -82
- package/dist/parallelAsyncCalls.d.ts +0 -82
- package/dist/parallelAsyncCalls.js +0 -126
- package/dist/partialEqual.cjs +0 -1196
- package/dist/partialEqual.d.cts +0 -141
- package/dist/partialEqual.d.ts +0 -141
- package/dist/partialEqual.js +0 -1168
- package/dist/promiseUtils.cjs +0 -38
- package/dist/promiseUtils.d.cts +0 -8
- package/dist/promiseUtils.d.ts +0 -8
- package/dist/promiseUtils.js +0 -6
- package/dist/regexUtils.cjs +0 -60
- package/dist/regexUtils.d.cts +0 -17
- package/dist/regexUtils.d.ts +0 -17
- package/dist/regexUtils.js +0 -33
- package/dist/retryOnError.cjs +0 -130
- package/dist/retryOnError.d.ts +0 -83
- package/dist/retryOnError.js +0 -101
- package/dist/runShellCmd.cjs +0 -127
- package/dist/runShellCmd.d.cts +0 -90
- package/dist/runShellCmd.js +0 -98
- package/dist/safeJson.cjs +0 -45
- package/dist/safeJson.d.ts +0 -16
- package/dist/safeJson.js +0 -8
- package/dist/saferTyping.cjs +0 -52
- package/dist/saferTyping.d.ts +0 -47
- package/dist/saferTyping.js +0 -23
- package/dist/serializeXML.cjs +0 -154
- package/dist/serializeXML.d.cts +0 -22
- package/dist/serializeXML.d.ts +0 -22
- package/dist/serializeXML.js +0 -116
- package/dist/shallowEqual.cjs +0 -88
- package/dist/shallowEqual.d.ts +0 -4
- package/dist/shallowEqual.js +0 -63
- package/dist/sleep.cjs +0 -32
- package/dist/sleep.d.cts +0 -3
- package/dist/sleep.d.ts +0 -3
- package/dist/sleep.js +0 -6
- package/dist/stringUtils.cjs +0 -155
- package/dist/stringUtils.d.ts +0 -55
- package/dist/stringUtils.js +0 -50
- package/dist/testUtils.cjs +0 -1490
- package/dist/testUtils.d.cts +0 -133
- package/dist/testUtils.js +0 -359
- package/dist/throttle.cjs +0 -282
- package/dist/throttle.d.cts +0 -98
- package/dist/throttle.js +0 -38
- package/dist/time.cjs +0 -152
- package/dist/time.d.cts +0 -25
- package/dist/time.js +0 -38
- package/dist/timers.cjs +0 -194
- package/dist/timers.d.ts +0 -121
- package/dist/timers.js +0 -156
- package/dist/tsResult.cjs +0 -226
- package/dist/tsResult.d.ts +0 -114
- package/dist/tsResult.js +0 -180
- package/dist/typeGuards.cjs +0 -70
- package/dist/typeGuards.d.ts +0 -111
- package/dist/typeGuards.js +0 -18
- package/dist/typeUtils.cjs +0 -18
- package/dist/typeUtils.d.cts +0 -61
- package/dist/typeUtils.js +0 -0
- package/dist/typedStrings.cjs +0 -90
- package/dist/typedStrings.d.ts +0 -163
- package/dist/typedStrings.js +0 -57
- package/dist/typingFnUtils.cjs +0 -96
- package/dist/typingFnUtils.d.ts +0 -100
- package/dist/typingFnUtils.js +0 -30
- package/dist/typingTestUtils.cjs +0 -52
- package/dist/typingTestUtils.d.ts +0 -79
- package/dist/typingTestUtils.js +0 -27
- package/dist/typingUtils.cjs +0 -18
- package/dist/typingUtils.d.cts +0 -35
- package/dist/typingUtils.d.ts +0 -35
- package/dist/typingUtils.js +0 -0
- package/dist/yamlStringify.cjs +0 -423
- package/dist/yamlStringify.d.cts +0 -10
- package/dist/yamlStringify.d.ts +0 -10
- package/dist/yamlStringify.js +0 -9
package/dist/typingUtils.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/** @deprecated Use `PartialRecord` from `@ls-stack/utils/typeUtils` instead */
|
|
2
|
-
type PartialRecord<K extends keyof any, T> = {
|
|
3
|
-
[P in K]?: T;
|
|
4
|
-
};
|
|
5
|
-
/** @deprecated Use `NonPartial` from `@ls-stack/utils/typeUtils` instead */
|
|
6
|
-
type NonPartial<T> = {
|
|
7
|
-
[K in keyof Required<T>]: T[K];
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* @deprecated Use `ObjKeysWithValuesOfType` from `@ls-stack/utils/typeUtils`
|
|
11
|
-
* instead
|
|
12
|
-
*/
|
|
13
|
-
type ObjKeysWithValuesOfType<Obj extends Record<PropertyKey, unknown>, ValueType> = {
|
|
14
|
-
[K in keyof Obj]: Obj[K] extends ValueType ? K : never;
|
|
15
|
-
}[keyof Obj];
|
|
16
|
-
/** @deprecated Use `IsAny` from `@ls-stack/utils/typeUtils` instead */
|
|
17
|
-
type IsAny<T> = unknown extends T ? [
|
|
18
|
-
keyof T
|
|
19
|
-
] extends [never] ? false : true : false;
|
|
20
|
-
/** @deprecated Use `DeepPrettify` from `@ls-stack/utils/typeUtils` instead */
|
|
21
|
-
type Prettify<T extends Record<string, unknown>> = {
|
|
22
|
-
[P in keyof T]: T[P];
|
|
23
|
-
} & {};
|
|
24
|
-
/** @deprecated Use `DeepPrettify` from `@ls-stack/utils/typeUtils` instead */
|
|
25
|
-
type DeepPrettify<T> = {
|
|
26
|
-
[K in keyof T]: T[K] extends Record<string, unknown> ? DeepPrettify<T[K]> : T[K];
|
|
27
|
-
} & {};
|
|
28
|
-
type AddPrefixToObjKeys<T extends Record<string, unknown>, Prefix extends string> = {
|
|
29
|
-
[K in keyof T & string as `${Prefix}${K}`]: T[K];
|
|
30
|
-
};
|
|
31
|
-
type AddSuffixToObjKeys<T extends Record<string, unknown>, Suffix extends string> = {
|
|
32
|
-
[K in keyof T & string as `${K}${Suffix}`]: T[K];
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export type { AddPrefixToObjKeys, AddSuffixToObjKeys, DeepPrettify, IsAny, NonPartial, ObjKeysWithValuesOfType, PartialRecord, Prettify };
|
package/dist/typingUtils.js
DELETED
|
File without changes
|
package/dist/yamlStringify.cjs
DELETED
|
@@ -1,423 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/yamlStringify.ts
|
|
21
|
-
var yamlStringify_exports = {};
|
|
22
|
-
__export(yamlStringify_exports, {
|
|
23
|
-
yamlStringify: () => yamlStringify
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(yamlStringify_exports);
|
|
26
|
-
|
|
27
|
-
// src/conversions.ts
|
|
28
|
-
function bytesToHumanReadable(bytes) {
|
|
29
|
-
if (bytes < 1024) {
|
|
30
|
-
return `${bytes} B`;
|
|
31
|
-
}
|
|
32
|
-
const kb = bytes / 1024;
|
|
33
|
-
if (kb < 1024) {
|
|
34
|
-
return `${kb.toFixed(2)} KB`;
|
|
35
|
-
}
|
|
36
|
-
const mb = kb / 1024;
|
|
37
|
-
if (mb < 1024) {
|
|
38
|
-
return `${mb.toFixed(2)} MB`;
|
|
39
|
-
}
|
|
40
|
-
const gb = mb / 1024;
|
|
41
|
-
return `${gb.toFixed(2)} GB`;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// src/stringUtils.ts
|
|
45
|
-
function truncateString(str, length, ellipsis = "\u2026") {
|
|
46
|
-
if (str.length <= length) return str;
|
|
47
|
-
return str.slice(0, length - 1) + ellipsis;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// src/typeGuards.ts
|
|
51
|
-
function isObject(value) {
|
|
52
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
53
|
-
}
|
|
54
|
-
function isPlainObject(value) {
|
|
55
|
-
if (!value || typeof value !== "object") return false;
|
|
56
|
-
const proto = Object.getPrototypeOf(value);
|
|
57
|
-
if (proto === null) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
const Ctor = Object.hasOwnProperty.call(proto, "constructor") && proto.constructor;
|
|
61
|
-
if (Ctor === Object) return true;
|
|
62
|
-
const objectCtorString = Object.prototype.constructor.toString();
|
|
63
|
-
return typeof Ctor == "function" && Function.toString.call(Ctor) === objectCtorString;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// src/yamlStringify.ts
|
|
67
|
-
function yamlStringify(obj, {
|
|
68
|
-
maxLineLength = 100,
|
|
69
|
-
showUndefined,
|
|
70
|
-
maxDepth = 50,
|
|
71
|
-
collapseObjects = false,
|
|
72
|
-
addRootObjSpaces = "beforeAndAfter"
|
|
73
|
-
} = {}) {
|
|
74
|
-
if (isObject(obj) || Array.isArray(obj) || typeof obj === "function") {
|
|
75
|
-
return `${stringifyValue(obj, "", maxLineLength, !!showUndefined, maxDepth, 0, collapseObjects, addRootObjSpaces, false)}
|
|
76
|
-
`;
|
|
77
|
-
}
|
|
78
|
-
return JSON.stringify(obj) || "undefined";
|
|
79
|
-
}
|
|
80
|
-
function stringifyValue(value, indent, maxLineLength, showUndefined, maxDepth, depth, collapseObjects, addObjSpaces, isArrayItem) {
|
|
81
|
-
let result = "";
|
|
82
|
-
const childIndent = `${indent} `;
|
|
83
|
-
if (isPlainObject(value)) {
|
|
84
|
-
if (Object.keys(value).length === 0) {
|
|
85
|
-
return "{}";
|
|
86
|
-
}
|
|
87
|
-
if (collapseObjects && depth > 0) {
|
|
88
|
-
const entries = Object.entries(value).filter(
|
|
89
|
-
([, val]) => val !== void 0 || showUndefined
|
|
90
|
-
);
|
|
91
|
-
const isSimpleObject = entries.every(([, val]) => {
|
|
92
|
-
if (typeof val === "string") {
|
|
93
|
-
return !val.includes("'") && !val.includes('"') && !val.includes("\\");
|
|
94
|
-
}
|
|
95
|
-
return typeof val === "number" || typeof val === "boolean" || val === null || val === void 0;
|
|
96
|
-
});
|
|
97
|
-
const shouldCollapse = isArrayItem ? entries.length > 1 : entries.length > 0;
|
|
98
|
-
if (isSimpleObject && shouldCollapse) {
|
|
99
|
-
let line = "{ ";
|
|
100
|
-
line += entries.map(([key, val]) => {
|
|
101
|
-
let valueStr;
|
|
102
|
-
if (typeof val === "string") {
|
|
103
|
-
if (val.includes("'") && !val.includes('"')) {
|
|
104
|
-
valueStr = `"${val}"`;
|
|
105
|
-
} else if (val.includes('"') && !val.includes("'")) {
|
|
106
|
-
valueStr = `'${val}'`;
|
|
107
|
-
} else if (val.includes("'") && val.includes('"')) {
|
|
108
|
-
valueStr = `"${val.replace(/"/g, '\\"')}"`;
|
|
109
|
-
} else {
|
|
110
|
-
valueStr = `'${val}'`;
|
|
111
|
-
}
|
|
112
|
-
} else {
|
|
113
|
-
valueStr = String(val);
|
|
114
|
-
}
|
|
115
|
-
return `${key}: ${valueStr}`;
|
|
116
|
-
}).join(", ");
|
|
117
|
-
line += " }";
|
|
118
|
-
if (line.length <= maxLineLength) {
|
|
119
|
-
return line;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
let prevValue;
|
|
124
|
-
let afterSpaceWasAdded = false;
|
|
125
|
-
for (let [key, objVal] of Object.entries(value)) {
|
|
126
|
-
if (objVal === void 0 && !showUndefined) {
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
if (depth > maxDepth) {
|
|
130
|
-
objVal = `{max depth reached}`;
|
|
131
|
-
}
|
|
132
|
-
const normalizedValue2 = normalizeValue(objVal);
|
|
133
|
-
if (normalizedValue2 !== null) {
|
|
134
|
-
objVal = normalizedValue2[1];
|
|
135
|
-
key = `${key}{${normalizedValue2[0]}}`;
|
|
136
|
-
}
|
|
137
|
-
const valueString = stringifyValue(
|
|
138
|
-
objVal,
|
|
139
|
-
childIndent,
|
|
140
|
-
maxLineLength,
|
|
141
|
-
showUndefined,
|
|
142
|
-
maxDepth,
|
|
143
|
-
depth + 1,
|
|
144
|
-
collapseObjects,
|
|
145
|
-
addObjSpaces,
|
|
146
|
-
false
|
|
147
|
-
);
|
|
148
|
-
const willBeCollapsed = isObject(objVal) && (Object.keys(objVal).length === 0 || collapseObjects && depth + 1 > 0 && (() => {
|
|
149
|
-
const filteredEntries = Object.entries(objVal).filter(
|
|
150
|
-
([, val]) => val !== void 0 || showUndefined
|
|
151
|
-
);
|
|
152
|
-
const shouldCollapseThis = isArrayItem ? filteredEntries.length > 1 : filteredEntries.length > 0;
|
|
153
|
-
return shouldCollapseThis && filteredEntries.every(([, val]) => {
|
|
154
|
-
if (typeof val === "string") {
|
|
155
|
-
return !val.includes("'") && !val.includes('"') && !val.includes("\\");
|
|
156
|
-
}
|
|
157
|
-
return typeof val === "number" || typeof val === "boolean" || val === null || val === void 0;
|
|
158
|
-
});
|
|
159
|
-
})());
|
|
160
|
-
const prevWasCollapsed = prevValue && isObject(prevValue) && (Object.keys(prevValue).length === 0 || collapseObjects && depth + 1 > 0 && (() => {
|
|
161
|
-
const filteredEntries = Object.entries(prevValue).filter(
|
|
162
|
-
([, val]) => val !== void 0 || showUndefined
|
|
163
|
-
);
|
|
164
|
-
const shouldCollapseThis = isArrayItem ? filteredEntries.length > 1 : filteredEntries.length > 0;
|
|
165
|
-
return shouldCollapseThis && filteredEntries.every(([, val]) => {
|
|
166
|
-
if (typeof val === "string") {
|
|
167
|
-
return !val.includes("'") && !val.includes('"') && !val.includes("\\");
|
|
168
|
-
}
|
|
169
|
-
return typeof val === "number" || typeof val === "boolean" || val === null || val === void 0;
|
|
170
|
-
});
|
|
171
|
-
})());
|
|
172
|
-
if (!afterSpaceWasAdded && indent === "" && isObject(objVal) && !willBeCollapsed && prevValue && !prevWasCollapsed && (addObjSpaces === "before" || addObjSpaces === "beforeAndAfter")) {
|
|
173
|
-
result += "\n";
|
|
174
|
-
}
|
|
175
|
-
if (Array.isArray(objVal)) {
|
|
176
|
-
const arrayIsSingleLine = valueString.split("\n").length === 1;
|
|
177
|
-
if (arrayIsSingleLine && !valueString.trim().startsWith("-")) {
|
|
178
|
-
result += `${indent}${key}: `;
|
|
179
|
-
} else {
|
|
180
|
-
result += `${indent}${key}:
|
|
181
|
-
`;
|
|
182
|
-
}
|
|
183
|
-
} else if (isObject(objVal)) {
|
|
184
|
-
const isCollapsedObject = valueString.startsWith("{") && !valueString.includes("\n");
|
|
185
|
-
if (Object.keys(objVal).length === 0 || isCollapsedObject) {
|
|
186
|
-
result += `${indent}${key}: `;
|
|
187
|
-
} else {
|
|
188
|
-
result += `${indent}${key}:
|
|
189
|
-
`;
|
|
190
|
-
}
|
|
191
|
-
} else {
|
|
192
|
-
result += `${indent}${key}: `;
|
|
193
|
-
}
|
|
194
|
-
result += valueString;
|
|
195
|
-
result += "\n";
|
|
196
|
-
if (indent === "") {
|
|
197
|
-
const isCollapsedObject = valueString.startsWith("{") && !valueString.includes("\n") && valueString.length > 2;
|
|
198
|
-
if (isObject(objVal) && !isCollapsedObject) {
|
|
199
|
-
if (addObjSpaces === "after" || addObjSpaces === "beforeAndAfter") {
|
|
200
|
-
result += "\n";
|
|
201
|
-
afterSpaceWasAdded = true;
|
|
202
|
-
} else {
|
|
203
|
-
afterSpaceWasAdded = false;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
prevValue = objVal;
|
|
208
|
-
}
|
|
209
|
-
return result.trimEnd();
|
|
210
|
-
}
|
|
211
|
-
if (Array.isArray(value)) {
|
|
212
|
-
let arrayWasAdded = false;
|
|
213
|
-
if (value.length === 0 || value.every(
|
|
214
|
-
(item) => typeof item === "string" || typeof item === "number" || typeof item === "boolean" || item === null || item === void 0
|
|
215
|
-
)) {
|
|
216
|
-
let line = "";
|
|
217
|
-
line += `[`;
|
|
218
|
-
line += value.map((item) => {
|
|
219
|
-
let valueToUse = item;
|
|
220
|
-
if (depth > maxDepth) {
|
|
221
|
-
valueToUse = `{max depth reached}`;
|
|
222
|
-
}
|
|
223
|
-
if (typeof valueToUse === "string" && valueToUse.includes("\n")) {
|
|
224
|
-
valueToUse = valueToUse.replace(/\n/g, "\\n");
|
|
225
|
-
}
|
|
226
|
-
return stringifyValue(
|
|
227
|
-
valueToUse,
|
|
228
|
-
"",
|
|
229
|
-
maxLineLength,
|
|
230
|
-
showUndefined,
|
|
231
|
-
maxDepth,
|
|
232
|
-
depth + 1,
|
|
233
|
-
collapseObjects,
|
|
234
|
-
addObjSpaces,
|
|
235
|
-
true
|
|
236
|
-
);
|
|
237
|
-
}).join(", ");
|
|
238
|
-
line += "]";
|
|
239
|
-
if (line.length <= maxLineLength) {
|
|
240
|
-
result += line;
|
|
241
|
-
arrayWasAdded = true;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
if (!arrayWasAdded) {
|
|
245
|
-
for (let item of value) {
|
|
246
|
-
if (depth > maxDepth) {
|
|
247
|
-
item = `{max depth reached}`;
|
|
248
|
-
}
|
|
249
|
-
result += `${indent}- `;
|
|
250
|
-
if (Array.isArray(item) || isObject(item)) {
|
|
251
|
-
let arrayString = stringifyValue(
|
|
252
|
-
item,
|
|
253
|
-
childIndent,
|
|
254
|
-
maxLineLength,
|
|
255
|
-
showUndefined,
|
|
256
|
-
maxDepth,
|
|
257
|
-
depth + 1,
|
|
258
|
-
collapseObjects,
|
|
259
|
-
addObjSpaces,
|
|
260
|
-
true
|
|
261
|
-
);
|
|
262
|
-
arrayString = arrayString.trimStart();
|
|
263
|
-
result += arrayString;
|
|
264
|
-
} else {
|
|
265
|
-
result += stringifyValue(
|
|
266
|
-
item,
|
|
267
|
-
childIndent,
|
|
268
|
-
maxLineLength,
|
|
269
|
-
showUndefined,
|
|
270
|
-
maxDepth,
|
|
271
|
-
depth + 1,
|
|
272
|
-
collapseObjects,
|
|
273
|
-
addObjSpaces,
|
|
274
|
-
true
|
|
275
|
-
);
|
|
276
|
-
}
|
|
277
|
-
result += "\n";
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return result.trimEnd();
|
|
281
|
-
}
|
|
282
|
-
if (typeof value === "string") {
|
|
283
|
-
if (value.includes("\n")) {
|
|
284
|
-
const lines = value.split("\n");
|
|
285
|
-
for (const [i, line] of lines.entries()) {
|
|
286
|
-
if (i === 0) {
|
|
287
|
-
if (value.endsWith("\n")) {
|
|
288
|
-
result += `|`;
|
|
289
|
-
} else {
|
|
290
|
-
result += `|-`;
|
|
291
|
-
}
|
|
292
|
-
result += `
|
|
293
|
-
${indent}${line}
|
|
294
|
-
`;
|
|
295
|
-
} else {
|
|
296
|
-
result += `${indent}${line}
|
|
297
|
-
`;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
} else {
|
|
301
|
-
if (value.includes("'") && !value.includes('"')) {
|
|
302
|
-
result += `"${value}"`;
|
|
303
|
-
} else if (value.includes('"') && !value.includes("'")) {
|
|
304
|
-
result += `'${value}'`;
|
|
305
|
-
} else if (value.includes("'") && value.includes('"')) {
|
|
306
|
-
result += `"${value.replace(/"/g, '\\"')}"`;
|
|
307
|
-
} else {
|
|
308
|
-
result += `'${value}'`;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
return result.trimEnd();
|
|
312
|
-
}
|
|
313
|
-
if (typeof value === "number" || typeof value === "boolean" || value === null || value === void 0) {
|
|
314
|
-
return String(value).trimEnd();
|
|
315
|
-
}
|
|
316
|
-
const normalizedValue = normalizeValue(value);
|
|
317
|
-
if (normalizedValue !== null) {
|
|
318
|
-
return stringifyValue(
|
|
319
|
-
{
|
|
320
|
-
[`${normalizedValue[0]}#`]: normalizedValue[1]
|
|
321
|
-
},
|
|
322
|
-
indent,
|
|
323
|
-
maxLineLength,
|
|
324
|
-
showUndefined,
|
|
325
|
-
maxDepth,
|
|
326
|
-
depth + 1,
|
|
327
|
-
collapseObjects,
|
|
328
|
-
addObjSpaces,
|
|
329
|
-
false
|
|
330
|
-
);
|
|
331
|
-
}
|
|
332
|
-
return JSON.stringify(value);
|
|
333
|
-
}
|
|
334
|
-
function normalizeValue(value) {
|
|
335
|
-
if (value === null || isPlainObject(value) || Array.isArray(value)) {
|
|
336
|
-
return null;
|
|
337
|
-
}
|
|
338
|
-
if (value instanceof Map) {
|
|
339
|
-
const mapEntries = Array.from(value.entries());
|
|
340
|
-
let mapValue;
|
|
341
|
-
if (mapEntries.every(([key]) => typeof key === "string")) {
|
|
342
|
-
const mapObjValue = {};
|
|
343
|
-
for (const [key, val] of mapEntries) {
|
|
344
|
-
mapObjValue[key] = val;
|
|
345
|
-
}
|
|
346
|
-
mapValue = mapObjValue;
|
|
347
|
-
} else {
|
|
348
|
-
mapValue = mapEntries.map(([key, val]) => ({
|
|
349
|
-
key,
|
|
350
|
-
value: val
|
|
351
|
-
}));
|
|
352
|
-
}
|
|
353
|
-
return ["Map", mapValue];
|
|
354
|
-
}
|
|
355
|
-
if (value instanceof Set) {
|
|
356
|
-
const setValue = Array.from(value);
|
|
357
|
-
return ["Set", setValue];
|
|
358
|
-
}
|
|
359
|
-
if (value instanceof Date) {
|
|
360
|
-
return ["Date", value.toISOString()];
|
|
361
|
-
}
|
|
362
|
-
if (value instanceof RegExp) {
|
|
363
|
-
return ["RegExp", value.toString()];
|
|
364
|
-
}
|
|
365
|
-
if (value instanceof Error) {
|
|
366
|
-
return [
|
|
367
|
-
"Error",
|
|
368
|
-
{
|
|
369
|
-
message: value.message,
|
|
370
|
-
name: value.name,
|
|
371
|
-
stack: value.stack
|
|
372
|
-
}
|
|
373
|
-
];
|
|
374
|
-
}
|
|
375
|
-
if (value instanceof File) {
|
|
376
|
-
return [
|
|
377
|
-
"File",
|
|
378
|
-
{
|
|
379
|
-
name: value.name,
|
|
380
|
-
type: value.type,
|
|
381
|
-
lastModified: new Date(value.lastModified).toISOString(),
|
|
382
|
-
size: bytesToHumanReadable(value.size)
|
|
383
|
-
}
|
|
384
|
-
];
|
|
385
|
-
}
|
|
386
|
-
if (typeof value === "object") {
|
|
387
|
-
if ("toJSON" in value && typeof value.toJSON === "function") {
|
|
388
|
-
return [value.constructor.name, value.toJSON()];
|
|
389
|
-
}
|
|
390
|
-
if ("toString" in value && typeof value.toString === "function") {
|
|
391
|
-
const stringValue = value.toString();
|
|
392
|
-
if (stringValue.toString() !== "[object Object]") {
|
|
393
|
-
return [value.constructor.name, stringValue];
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
const objectValue = { ...value };
|
|
397
|
-
const displayValue = {};
|
|
398
|
-
let addedKeys = 0;
|
|
399
|
-
for (const [key, item] of Object.entries(objectValue)) {
|
|
400
|
-
if (addedKeys > 4) {
|
|
401
|
-
displayValue["...and more properties"] = Object.keys(objectValue).length - 4;
|
|
402
|
-
break;
|
|
403
|
-
}
|
|
404
|
-
if (typeof item === "string" || typeof item === "number" || typeof item === "boolean" || item === null || item === void 0) {
|
|
405
|
-
displayValue[key] = item;
|
|
406
|
-
addedKeys++;
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
return [String(value.constructor.name), displayValue];
|
|
410
|
-
}
|
|
411
|
-
if (typeof value === "function") {
|
|
412
|
-
const functionString = value.toString();
|
|
413
|
-
return [
|
|
414
|
-
`Function`,
|
|
415
|
-
functionString.includes("\n") ? truncateString(functionString.split("\n").join(""), 40) : functionString
|
|
416
|
-
];
|
|
417
|
-
}
|
|
418
|
-
return null;
|
|
419
|
-
}
|
|
420
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
421
|
-
0 && (module.exports = {
|
|
422
|
-
yamlStringify
|
|
423
|
-
});
|
package/dist/yamlStringify.d.cts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
type YamlStringifyOptions = {
|
|
2
|
-
maxLineLength?: number;
|
|
3
|
-
showUndefined?: boolean;
|
|
4
|
-
maxDepth?: number;
|
|
5
|
-
collapseObjects?: boolean;
|
|
6
|
-
addRootObjSpaces?: 'before' | 'after' | 'beforeAndAfter' | false;
|
|
7
|
-
};
|
|
8
|
-
declare function yamlStringify(obj: unknown, { maxLineLength, showUndefined, maxDepth, collapseObjects, addRootObjSpaces, }?: YamlStringifyOptions): string;
|
|
9
|
-
|
|
10
|
-
export { type YamlStringifyOptions, yamlStringify };
|
package/dist/yamlStringify.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
type YamlStringifyOptions = {
|
|
2
|
-
maxLineLength?: number;
|
|
3
|
-
showUndefined?: boolean;
|
|
4
|
-
maxDepth?: number;
|
|
5
|
-
collapseObjects?: boolean;
|
|
6
|
-
addRootObjSpaces?: 'before' | 'after' | 'beforeAndAfter' | false;
|
|
7
|
-
};
|
|
8
|
-
declare function yamlStringify(obj: unknown, { maxLineLength, showUndefined, maxDepth, collapseObjects, addRootObjSpaces, }?: YamlStringifyOptions): string;
|
|
9
|
-
|
|
10
|
-
export { type YamlStringifyOptions, yamlStringify };
|