@pawells/typescript-common 2.0.0 → 2.1.5
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/README.md +350 -224
- package/{build → dist}/array/array-chunk.d.ts +1 -1
- package/{build → dist}/array/array-chunk.js +2 -3
- package/{build → dist}/array/array-compact.d.ts +1 -1
- package/{build → dist}/array/array-compact.js +1 -2
- package/{build → dist}/array/array-contains.d.ts +1 -1
- package/{build → dist}/array/array-contains.js +2 -3
- package/{build → dist}/array/array-count-by.d.ts +1 -1
- package/{build → dist}/array/array-count-by.js +2 -3
- package/{build → dist}/array/array-difference.d.ts +12 -5
- package/dist/array/array-difference.d.ts.map +1 -0
- package/dist/array/array-difference.js +70 -0
- package/dist/array/array-element.js +1 -0
- package/{build → dist}/array/array-filter.d.ts +1 -1
- package/{build → dist}/array/array-filter.js +1 -2
- package/{build → dist}/array/array-flatten.d.ts +2 -2
- package/{build → dist}/array/array-flatten.d.ts.map +1 -1
- package/{build → dist}/array/array-flatten.js +1 -2
- package/{build → dist}/array/array-group-by.d.ts +1 -1
- package/{build → dist}/array/array-group-by.d.ts.map +1 -1
- package/{build → dist}/array/array-group-by.js +10 -9
- package/{build → dist}/array/array-intersection.d.ts +12 -5
- package/dist/array/array-intersection.d.ts.map +1 -0
- package/dist/array/array-intersection.js +79 -0
- package/{build → dist}/array/array-partition.d.ts +1 -1
- package/{build → dist}/array/array-partition.js +2 -3
- package/{build → dist}/array/array-range.d.ts +1 -1
- package/{build → dist}/array/array-range.js +1 -2
- package/{build → dist}/array/array-sample.d.ts +2 -2
- package/{build → dist}/array/array-sample.js +3 -5
- package/{build → dist}/array/array-shuffle.d.ts +1 -1
- package/{build → dist}/array/array-shuffle.js +1 -2
- package/{build → dist}/array/array-sort-by.d.ts +1 -1
- package/{build → dist}/array/array-sort-by.js +1 -2
- package/{build → dist}/array/array-zip.d.ts +1 -1
- package/{build → dist}/array/array-zip.js +1 -2
- package/{build → dist}/array/assert.d.ts +5 -5
- package/{build → dist}/array/assert.d.ts.map +1 -1
- package/{build → dist}/array/assert.js +13 -14
- package/{build → dist}/array/index.js +0 -1
- package/{build → dist}/array/types.d.ts +20 -2
- package/{build → dist}/array/types.d.ts.map +1 -1
- package/dist/array/types.js +1 -0
- package/{build → dist}/array/unique.d.ts +1 -1
- package/{build → dist}/array/unique.js +1 -2
- package/dist/asserts/errors.d.ts.map +1 -0
- package/{build → dist}/asserts/errors.js +5 -3
- package/{build → dist}/asserts/generic.d.ts +23 -3
- package/dist/asserts/generic.d.ts.map +1 -0
- package/{build → dist}/asserts/generic.js +33 -7
- package/dist/asserts/index.d.ts +47 -0
- package/dist/asserts/index.d.ts.map +1 -0
- package/dist/asserts/index.js +46 -0
- package/{build → dist}/asserts/internal-utils.d.ts.map +1 -1
- package/{build → dist}/asserts/internal-utils.js +0 -1
- package/{build → dist}/asserts/types.d.ts +56 -17
- package/dist/asserts/types.d.ts.map +1 -0
- package/dist/asserts/types.js +1 -0
- package/{build → dist}/asserts/utils.d.ts +5 -21
- package/dist/asserts/utils.d.ts.map +1 -0
- package/{build → dist}/asserts/utils.js +12 -36
- package/{build → dist}/boolean/assert.d.ts +1 -2
- package/{build → dist}/boolean/assert.d.ts.map +1 -1
- package/{build → dist}/boolean/assert.js +1 -3
- package/dist/boolean/index.d.ts +13 -0
- package/dist/boolean/index.d.ts.map +1 -0
- package/dist/boolean/index.js +12 -0
- package/{build → dist}/enum/enum-entries.d.ts +1 -1
- package/dist/enum/enum-entries.d.ts.map +1 -0
- package/{build → dist}/enum/enum-entries.js +0 -1
- package/{build → dist}/enum/enum-key-by-value.d.ts +1 -1
- package/dist/enum/enum-key-by-value.d.ts.map +1 -0
- package/{build → dist}/enum/enum-key-by-value.js +0 -1
- package/{build → dist}/enum/enum-keys.js +0 -1
- package/{build → dist}/enum/enum-safe-value.d.ts +1 -1
- package/dist/enum/enum-safe-value.d.ts.map +1 -0
- package/{build → dist}/enum/enum-safe-value.js +0 -1
- package/{build → dist}/enum/enum-values.js +0 -1
- package/{build → dist}/enum/index.d.ts +1 -1
- package/dist/enum/index.d.ts.map +1 -0
- package/{build → dist}/enum/index.js +1 -2
- package/dist/enum/types.js +1 -0
- package/{build → dist}/enum/validate-enum-value.d.ts +1 -1
- package/dist/enum/validate-enum-value.d.ts.map +1 -0
- package/{build → dist}/enum/validate-enum-value.js +0 -1
- package/{build → dist}/function/compose.d.ts +6 -0
- package/dist/function/compose.d.ts.map +1 -0
- package/{build → dist}/function/compose.js +0 -1
- package/{build → dist}/function/debounce.d.ts +6 -0
- package/dist/function/debounce.d.ts.map +1 -0
- package/{build → dist}/function/debounce.js +6 -1
- package/{build → dist}/function/index.js +0 -1
- package/dist/function/memoize.d.ts +43 -0
- package/dist/function/memoize.d.ts.map +1 -0
- package/dist/function/memoize.js +59 -0
- package/{build → dist}/function/once.d.ts.map +1 -1
- package/{build → dist}/function/once.js +1 -1
- package/{build → dist}/function/sleep.js +0 -1
- package/{build → dist}/function/throttle.d.ts +7 -0
- package/dist/function/throttle.d.ts.map +1 -0
- package/{build → dist}/function/throttle.js +7 -1
- package/dist/function/types.d.ts +18 -0
- package/dist/function/types.d.ts.map +1 -0
- package/dist/function/types.js +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/{build → dist}/lru-cache.d.ts +19 -0
- package/dist/lru-cache.d.ts.map +1 -0
- package/{build → dist}/lru-cache.js +24 -2
- package/{build → dist}/number/assert.js +0 -1
- package/dist/number/index.d.ts +13 -0
- package/dist/number/index.d.ts.map +1 -0
- package/dist/number/index.js +12 -0
- package/{build → dist}/object/assert-object.d.ts +5 -1
- package/{build → dist}/object/assert-object.d.ts.map +1 -1
- package/{build → dist}/object/assert-object.js +4 -1
- package/{build → dist}/object/assert.d.ts +1 -1
- package/dist/object/assert.d.ts.map +1 -0
- package/{build → dist}/object/assert.js +7 -29
- package/{build → dist}/object/clone.d.ts.map +1 -1
- package/{build → dist}/object/clone.js +8 -5
- package/{build → dist}/object/equals.d.ts.map +1 -1
- package/{build → dist}/object/equals.js +3 -7
- package/dist/object/filter-cached.d.ts +44 -0
- package/{build → dist}/object/filter-cached.d.ts.map +1 -1
- package/{build → dist}/object/filter-cached.js +41 -2
- package/{build → dist}/object/filter.d.ts.map +1 -1
- package/{build → dist}/object/filter.js +12 -5
- package/{build → dist}/object/has-circular-reference.d.ts.map +1 -1
- package/{build → dist}/object/has-circular-reference.js +4 -2
- package/{build → dist}/object/hash.d.ts +4 -0
- package/dist/object/hash.d.ts.map +1 -0
- package/{build → dist}/object/hash.js +20 -7
- package/{build → dist}/object/index.d.ts +2 -2
- package/{build → dist}/object/index.d.ts.map +1 -1
- package/{build → dist}/object/index.js +1 -2
- package/{build → dist}/object/json-circular-replacer.d.ts.map +1 -1
- package/{build → dist}/object/json-circular-replacer.js +0 -1
- package/{build → dist}/object/key-value-pairs.js +0 -1
- package/dist/object/map-cached.d.ts +31 -0
- package/dist/object/map-cached.d.ts.map +1 -0
- package/{build → dist}/object/map-cached.js +34 -6
- package/{build → dist}/object/map.js +0 -1
- package/{build → dist}/object/merge.d.ts.map +1 -1
- package/{build → dist}/object/merge.js +7 -7
- package/{build → dist}/object/object-diff.d.ts +2 -2
- package/{build → dist}/object/object-diff.d.ts.map +1 -1
- package/{build → dist}/object/object-diff.js +11 -5
- package/{build → dist}/object/object-flatten.d.ts +1 -1
- package/{build → dist}/object/object-flatten.d.ts.map +1 -1
- package/{build → dist}/object/object-flatten.js +6 -4
- package/{build → dist}/object/object-invert.js +0 -1
- package/{build → dist}/object/omit.js +0 -1
- package/{build → dist}/object/pick.js +0 -1
- package/{build → dist}/object/property-paths.js +6 -7
- package/dist/object/security-utils.d.ts +193 -0
- package/dist/object/security-utils.d.ts.map +1 -0
- package/dist/object/security-utils.js +297 -0
- package/{build → dist}/object/sort-keys.d.ts +1 -1
- package/{build → dist}/object/sort-keys.d.ts.map +1 -1
- package/{build → dist}/object/sort-keys.js +18 -11
- package/{build → dist}/object/types.d.ts +60 -19
- package/dist/object/types.d.ts.map +1 -0
- package/dist/object/types.js +1 -0
- package/{build → dist}/string/assert.d.ts +5 -0
- package/dist/string/assert.d.ts.map +1 -0
- package/{build → dist}/string/assert.js +11 -1
- package/{build → dist}/string/case-conversion.js +0 -1
- package/{build → dist}/string/comparison.d.ts.map +1 -1
- package/{build → dist}/string/comparison.js +3 -1
- package/{build → dist}/string/formatting.d.ts.map +1 -1
- package/{build → dist}/string/formatting.js +5 -3
- package/{build → dist}/string/index.js +0 -1
- package/{build → dist}/string/transformation.js +0 -1
- package/dist/string/types.d.ts +118 -0
- package/dist/string/types.d.ts.map +1 -0
- package/dist/string/types.js +1 -0
- package/{build → dist}/string/validation.js +0 -1
- package/dist/time/elapsed-time/constants.d.ts +36 -0
- package/{build → dist}/time/elapsed-time/constants.d.ts.map +1 -1
- package/{build → dist}/time/elapsed-time/constants.js +32 -3
- package/{build → dist}/time/elapsed-time/elapsed-time.d.ts +67 -15
- package/dist/time/elapsed-time/elapsed-time.d.ts.map +1 -0
- package/{build → dist}/time/elapsed-time/elapsed-time.js +172 -78
- package/dist/time/elapsed-time/types.d.ts +336 -0
- package/dist/time/elapsed-time/types.d.ts.map +1 -0
- package/dist/time/elapsed-time/types.js +1 -0
- package/{build → dist}/time/elapsed-time/utils.d.ts +1 -1
- package/dist/time/elapsed-time/utils.d.ts.map +1 -0
- package/{build → dist}/time/elapsed-time/utils.js +0 -1
- package/{build → dist}/time/index.d.ts +0 -2
- package/{build → dist}/time/index.d.ts.map +1 -1
- package/{build → dist}/time/index.js +0 -2
- package/{build → dist}/time/stopwatch/entry.d.ts +1 -1
- package/dist/time/stopwatch/entry.d.ts.map +1 -0
- package/{build → dist}/time/stopwatch/entry.js +0 -1
- package/{build → dist}/time/stopwatch/stopwatch.d.ts +9 -3
- package/dist/time/stopwatch/stopwatch.d.ts.map +1 -0
- package/{build → dist}/time/stopwatch/stopwatch.js +9 -4
- package/package.json +58 -81
- package/LICENSE +0 -21
- package/build/array/array-chunk.js.map +0 -1
- package/build/array/array-compact.js.map +0 -1
- package/build/array/array-contains.js.map +0 -1
- package/build/array/array-count-by.js.map +0 -1
- package/build/array/array-difference.d.ts.map +0 -1
- package/build/array/array-difference.js +0 -51
- package/build/array/array-difference.js.map +0 -1
- package/build/array/array-element.js +0 -2
- package/build/array/array-element.js.map +0 -1
- package/build/array/array-filter.js.map +0 -1
- package/build/array/array-flatten.js.map +0 -1
- package/build/array/array-group-by.js.map +0 -1
- package/build/array/array-intersection.d.ts.map +0 -1
- package/build/array/array-intersection.js +0 -57
- package/build/array/array-intersection.js.map +0 -1
- package/build/array/array-partition.js.map +0 -1
- package/build/array/array-range.js.map +0 -1
- package/build/array/array-sample.js.map +0 -1
- package/build/array/array-shuffle.js.map +0 -1
- package/build/array/array-sort-by.js.map +0 -1
- package/build/array/array-zip.js.map +0 -1
- package/build/array/assert.js.map +0 -1
- package/build/array/index.js.map +0 -1
- package/build/array/types.js +0 -2
- package/build/array/types.js.map +0 -1
- package/build/array/unique.js.map +0 -1
- package/build/asserts/errors.d.ts.map +0 -1
- package/build/asserts/errors.js.map +0 -1
- package/build/asserts/generic.d.ts.map +0 -1
- package/build/asserts/generic.js.map +0 -1
- package/build/asserts/index.d.ts +0 -41
- package/build/asserts/index.d.ts.map +0 -1
- package/build/asserts/index.js +0 -41
- package/build/asserts/index.js.map +0 -1
- package/build/asserts/internal-utils.js.map +0 -1
- package/build/asserts/types.d.ts.map +0 -1
- package/build/asserts/types.js +0 -2
- package/build/asserts/types.js.map +0 -1
- package/build/asserts/utils.d.ts.map +0 -1
- package/build/asserts/utils.js.map +0 -1
- package/build/boolean/assert.js.map +0 -1
- package/build/boolean/index.d.ts +0 -9
- package/build/boolean/index.d.ts.map +0 -1
- package/build/boolean/index.js +0 -9
- package/build/boolean/index.js.map +0 -1
- package/build/enum/enum-entries.d.ts.map +0 -1
- package/build/enum/enum-entries.js.map +0 -1
- package/build/enum/enum-key-by-value.d.ts.map +0 -1
- package/build/enum/enum-key-by-value.js.map +0 -1
- package/build/enum/enum-keys.js.map +0 -1
- package/build/enum/enum-safe-value.d.ts.map +0 -1
- package/build/enum/enum-safe-value.js.map +0 -1
- package/build/enum/enum-values.js.map +0 -1
- package/build/enum/index.d.ts.map +0 -1
- package/build/enum/index.js.map +0 -1
- package/build/enum/types.js +0 -2
- package/build/enum/types.js.map +0 -1
- package/build/enum/validate-enum-value.d.ts.map +0 -1
- package/build/enum/validate-enum-value.js.map +0 -1
- package/build/function/compose.d.ts.map +0 -1
- package/build/function/compose.js.map +0 -1
- package/build/function/debounce.d.ts.map +0 -1
- package/build/function/debounce.js.map +0 -1
- package/build/function/index.js.map +0 -1
- package/build/function/memoize.d.ts +0 -30
- package/build/function/memoize.d.ts.map +0 -1
- package/build/function/memoize.js +0 -44
- package/build/function/memoize.js.map +0 -1
- package/build/function/once.js.map +0 -1
- package/build/function/sleep.js.map +0 -1
- package/build/function/throttle.d.ts.map +0 -1
- package/build/function/throttle.js.map +0 -1
- package/build/function/types.d.ts +0 -5
- package/build/function/types.d.ts.map +0 -1
- package/build/function/types.js +0 -2
- package/build/function/types.js.map +0 -1
- package/build/index.d.ts +0 -38
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -64
- package/build/index.js.map +0 -1
- package/build/lru-cache.d.ts.map +0 -1
- package/build/lru-cache.js.map +0 -1
- package/build/number/assert.js.map +0 -1
- package/build/number/index.d.ts +0 -9
- package/build/number/index.d.ts.map +0 -1
- package/build/number/index.js +0 -9
- package/build/number/index.js.map +0 -1
- package/build/object/assert-object.js.map +0 -1
- package/build/object/assert.d.ts.map +0 -1
- package/build/object/assert.js.map +0 -1
- package/build/object/clone.js.map +0 -1
- package/build/object/equals.js.map +0 -1
- package/build/object/filter-cached.d.ts +0 -21
- package/build/object/filter-cached.js.map +0 -1
- package/build/object/filter.js.map +0 -1
- package/build/object/has-circular-reference.js.map +0 -1
- package/build/object/hash.d.ts.map +0 -1
- package/build/object/hash.js.map +0 -1
- package/build/object/index.js.map +0 -1
- package/build/object/json-circular-replacer.js.map +0 -1
- package/build/object/key-value-pairs.js.map +0 -1
- package/build/object/map-cached.d.ts +0 -20
- package/build/object/map-cached.d.ts.map +0 -1
- package/build/object/map-cached.js.map +0 -1
- package/build/object/map.js.map +0 -1
- package/build/object/merge.js.map +0 -1
- package/build/object/object-diff.js.map +0 -1
- package/build/object/object-flatten.js.map +0 -1
- package/build/object/object-invert.js.map +0 -1
- package/build/object/omit.js.map +0 -1
- package/build/object/pick.js.map +0 -1
- package/build/object/property-paths.js.map +0 -1
- package/build/object/security-utils.d.ts +0 -59
- package/build/object/security-utils.d.ts.map +0 -1
- package/build/object/security-utils.js +0 -161
- package/build/object/security-utils.js.map +0 -1
- package/build/object/sort-keys.js.map +0 -1
- package/build/object/types.d.ts.map +0 -1
- package/build/object/types.js +0 -6
- package/build/object/types.js.map +0 -1
- package/build/string/assert.d.ts.map +0 -1
- package/build/string/assert.js.map +0 -1
- package/build/string/case-conversion.js.map +0 -1
- package/build/string/comparison.js.map +0 -1
- package/build/string/formatting.js.map +0 -1
- package/build/string/index.js.map +0 -1
- package/build/string/transformation.js.map +0 -1
- package/build/string/types.d.ts +0 -44
- package/build/string/types.d.ts.map +0 -1
- package/build/string/types.js +0 -2
- package/build/string/types.js.map +0 -1
- package/build/string/validation.js.map +0 -1
- package/build/time/elapsed-time/constants.d.ts +0 -10
- package/build/time/elapsed-time/constants.js.map +0 -1
- package/build/time/elapsed-time/elapsed-time.d.ts.map +0 -1
- package/build/time/elapsed-time/elapsed-time.js.map +0 -1
- package/build/time/elapsed-time/types.d.ts +0 -150
- package/build/time/elapsed-time/types.d.ts.map +0 -1
- package/build/time/elapsed-time/types.js +0 -2
- package/build/time/elapsed-time/types.js.map +0 -1
- package/build/time/elapsed-time/utils.d.ts.map +0 -1
- package/build/time/elapsed-time/utils.js.map +0 -1
- package/build/time/index.js.map +0 -1
- package/build/time/stopwatch/entry-types.d.ts +0 -13
- package/build/time/stopwatch/entry-types.d.ts.map +0 -1
- package/build/time/stopwatch/entry-types.js +0 -2
- package/build/time/stopwatch/entry-types.js.map +0 -1
- package/build/time/stopwatch/entry.d.ts.map +0 -1
- package/build/time/stopwatch/entry.js.map +0 -1
- package/build/time/stopwatch/stopwatch.d.ts.map +0 -1
- package/build/time/stopwatch/stopwatch.js.map +0 -1
- /package/{build → dist}/array/array-chunk.d.ts.map +0 -0
- /package/{build → dist}/array/array-compact.d.ts.map +0 -0
- /package/{build → dist}/array/array-contains.d.ts.map +0 -0
- /package/{build → dist}/array/array-count-by.d.ts.map +0 -0
- /package/{build → dist}/array/array-element.d.ts +0 -0
- /package/{build → dist}/array/array-element.d.ts.map +0 -0
- /package/{build → dist}/array/array-filter.d.ts.map +0 -0
- /package/{build → dist}/array/array-partition.d.ts.map +0 -0
- /package/{build → dist}/array/array-range.d.ts.map +0 -0
- /package/{build → dist}/array/array-sample.d.ts.map +0 -0
- /package/{build → dist}/array/array-shuffle.d.ts.map +0 -0
- /package/{build → dist}/array/array-sort-by.d.ts.map +0 -0
- /package/{build → dist}/array/array-zip.d.ts.map +0 -0
- /package/{build → dist}/array/index.d.ts +0 -0
- /package/{build → dist}/array/index.d.ts.map +0 -0
- /package/{build → dist}/array/unique.d.ts.map +0 -0
- /package/{build → dist}/asserts/errors.d.ts +0 -0
- /package/{build → dist}/asserts/internal-utils.d.ts +0 -0
- /package/{build → dist}/enum/enum-keys.d.ts +0 -0
- /package/{build → dist}/enum/enum-keys.d.ts.map +0 -0
- /package/{build → dist}/enum/enum-values.d.ts +0 -0
- /package/{build → dist}/enum/enum-values.d.ts.map +0 -0
- /package/{build → dist}/enum/types.d.ts +0 -0
- /package/{build → dist}/enum/types.d.ts.map +0 -0
- /package/{build → dist}/function/index.d.ts +0 -0
- /package/{build → dist}/function/index.d.ts.map +0 -0
- /package/{build → dist}/function/once.d.ts +0 -0
- /package/{build → dist}/function/sleep.d.ts +0 -0
- /package/{build → dist}/function/sleep.d.ts.map +0 -0
- /package/{build → dist}/number/assert.d.ts +0 -0
- /package/{build → dist}/number/assert.d.ts.map +0 -0
- /package/{build → dist}/object/clone.d.ts +0 -0
- /package/{build → dist}/object/equals.d.ts +0 -0
- /package/{build → dist}/object/filter.d.ts +0 -0
- /package/{build → dist}/object/has-circular-reference.d.ts +0 -0
- /package/{build → dist}/object/json-circular-replacer.d.ts +0 -0
- /package/{build → dist}/object/key-value-pairs.d.ts +0 -0
- /package/{build → dist}/object/key-value-pairs.d.ts.map +0 -0
- /package/{build → dist}/object/map.d.ts +0 -0
- /package/{build → dist}/object/map.d.ts.map +0 -0
- /package/{build → dist}/object/merge.d.ts +0 -0
- /package/{build → dist}/object/object-invert.d.ts +0 -0
- /package/{build → dist}/object/object-invert.d.ts.map +0 -0
- /package/{build → dist}/object/omit.d.ts +0 -0
- /package/{build → dist}/object/omit.d.ts.map +0 -0
- /package/{build → dist}/object/pick.d.ts +0 -0
- /package/{build → dist}/object/pick.d.ts.map +0 -0
- /package/{build → dist}/object/property-paths.d.ts +0 -0
- /package/{build → dist}/object/property-paths.d.ts.map +0 -0
- /package/{build → dist}/string/case-conversion.d.ts +0 -0
- /package/{build → dist}/string/case-conversion.d.ts.map +0 -0
- /package/{build → dist}/string/comparison.d.ts +0 -0
- /package/{build → dist}/string/formatting.d.ts +0 -0
- /package/{build → dist}/string/index.d.ts +0 -0
- /package/{build → dist}/string/index.d.ts.map +0 -0
- /package/{build → dist}/string/transformation.d.ts +0 -0
- /package/{build → dist}/string/transformation.d.ts.map +0 -0
- /package/{build → dist}/string/validation.d.ts +0 -0
- /package/{build → dist}/string/validation.d.ts.map +0 -0
|
@@ -59,7 +59,7 @@ export interface IAssertArray2DArgs {
|
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Asserts that a value is an array, optionally validating its size.
|
|
62
|
-
* @template T The type of array elements.
|
|
62
|
+
* @template T - The type of array elements.
|
|
63
63
|
* @param value - The value to validate.
|
|
64
64
|
* @param args - Optional size constraints.
|
|
65
65
|
* @param exception - Optional custom exception to throw.
|
|
@@ -68,7 +68,7 @@ export interface IAssertArray2DArgs {
|
|
|
68
68
|
export declare function AssertArray<T = unknown>(value: unknown, args?: IAssertArrayArgs, exception?: IAssertException): asserts value is T[];
|
|
69
69
|
/**
|
|
70
70
|
* Asserts that a value is a 2D array, optionally validating its dimensions.
|
|
71
|
-
* @template T The type of array elements.
|
|
71
|
+
* @template T - The type of array elements.
|
|
72
72
|
* @param value - The value to validate.
|
|
73
73
|
* @param args - Optional dimension constraints.
|
|
74
74
|
* @param exception - Optional custom exception to throw.
|
|
@@ -77,7 +77,7 @@ export declare function AssertArray<T = unknown>(value: unknown, args?: IAssertA
|
|
|
77
77
|
export declare function AssertArray2D<T = unknown>(value: unknown, args?: IAssertArray2DArgs, exception?: IAssertException): asserts value is T[][];
|
|
78
78
|
/**
|
|
79
79
|
* Asserts that an array is not empty.
|
|
80
|
-
* @template T The type of array elements.
|
|
80
|
+
* @template T - The type of array elements.
|
|
81
81
|
* @param value - The array to validate.
|
|
82
82
|
* @param exception - Optional custom exception to throw.
|
|
83
83
|
* @throws {ArrayError} If the array is empty.
|
|
@@ -89,7 +89,7 @@ export declare function AssertArrayNotEmpty<T>(value: T[] | unknown, exception?:
|
|
|
89
89
|
* Uses `array.every()` to check if all elements satisfy the predicate condition.
|
|
90
90
|
* Throws an error if any element fails the test.
|
|
91
91
|
*
|
|
92
|
-
* @template T The type of array elements.
|
|
92
|
+
* @template T - The type of array elements.
|
|
93
93
|
* @param array - The array to validate.
|
|
94
94
|
* @param predicate - A function to test each element.
|
|
95
95
|
* @param exception - Optional custom exception to throw.
|
|
@@ -102,7 +102,7 @@ export declare function AssertArrayAll<T>(array: T[], predicate: (el: T, idx: nu
|
|
|
102
102
|
* Uses `array.some()` to check if any element satisfies the predicate condition.
|
|
103
103
|
* Throws an error if no elements pass the test.
|
|
104
104
|
*
|
|
105
|
-
* @template T The type of array elements.
|
|
105
|
+
* @template T - The type of array elements.
|
|
106
106
|
* @param array - The array to validate.
|
|
107
107
|
* @param predicate - A function to test each element.
|
|
108
108
|
* @param exception - Optional custom exception to throw.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,WAAW;gBAC9B,OAAO,CAAC,EAAE,MAAM;CAG5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAClC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CA2BxI;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,kBAAuB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,WAAW;gBAC9B,OAAO,CAAC,EAAE,MAAM;CAG5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAClC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CA2BxI;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,kBAAuB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAqElJ;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAYnH;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAO1I;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAO1I"}
|
|
@@ -13,7 +13,7 @@ export class ArrayError extends SimpleError {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Asserts that a value is an array, optionally validating its size.
|
|
16
|
-
* @template T The type of array elements.
|
|
16
|
+
* @template T - The type of array elements.
|
|
17
17
|
* @param value - The value to validate.
|
|
18
18
|
* @param args - Optional size constraints.
|
|
19
19
|
* @param exception - Optional custom exception to throw.
|
|
@@ -44,7 +44,7 @@ export function AssertArray(value, args, exception = {}) {
|
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Asserts that a value is a 2D array, optionally validating its dimensions.
|
|
47
|
-
* @template T The type of array elements.
|
|
47
|
+
* @template T - The type of array elements.
|
|
48
48
|
* @param value - The value to validate.
|
|
49
49
|
* @param args - Optional dimension constraints.
|
|
50
50
|
* @param exception - Optional custom exception to throw.
|
|
@@ -57,14 +57,14 @@ export function AssertArray2D(value, args = {}, exception = {}) {
|
|
|
57
57
|
AssertValueType(value, 'array', exception);
|
|
58
58
|
// Type cast is safe after array validation
|
|
59
59
|
const array = value;
|
|
60
|
-
// Validate that all elements are arrays (making it 2D)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
// Validate that all elements are arrays (making it 2D) with single-pass collection of invalid positions
|
|
61
|
+
const invalidPositions = [];
|
|
62
|
+
for (let i = 0; i < array.length; i++) {
|
|
63
|
+
if (!Array.isArray(array[i])) {
|
|
64
|
+
invalidPositions.push(i);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (invalidPositions.length > 0) {
|
|
68
68
|
SetExceptionMessage(exception, `Expected 2D array but found non-array elements at positions: ${invalidPositions.join(', ')}`);
|
|
69
69
|
ThrowException(exception);
|
|
70
70
|
}
|
|
@@ -111,7 +111,7 @@ export function AssertArray2D(value, args = {}, exception = {}) {
|
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
113
|
* Asserts that an array is not empty.
|
|
114
|
-
* @template T The type of array elements.
|
|
114
|
+
* @template T - The type of array elements.
|
|
115
115
|
* @param value - The array to validate.
|
|
116
116
|
* @param exception - Optional custom exception to throw.
|
|
117
117
|
* @throws {ArrayError} If the array is empty.
|
|
@@ -141,7 +141,7 @@ function assertIsArray(array, exception) {
|
|
|
141
141
|
* Uses `array.every()` to check if all elements satisfy the predicate condition.
|
|
142
142
|
* Throws an error if any element fails the test.
|
|
143
143
|
*
|
|
144
|
-
* @template T The type of array elements.
|
|
144
|
+
* @template T - The type of array elements.
|
|
145
145
|
* @param array - The array to validate.
|
|
146
146
|
* @param predicate - A function to test each element.
|
|
147
147
|
* @param exception - Optional custom exception to throw.
|
|
@@ -161,7 +161,7 @@ export function AssertArrayAll(array, predicate, exception = {}) {
|
|
|
161
161
|
* Uses `array.some()` to check if any element satisfies the predicate condition.
|
|
162
162
|
* Throws an error if no elements pass the test.
|
|
163
163
|
*
|
|
164
|
-
* @template T The type of array elements.
|
|
164
|
+
* @template T - The type of array elements.
|
|
165
165
|
* @param array - The array to validate.
|
|
166
166
|
* @param predicate - A function to test each element.
|
|
167
167
|
* @param exception - Optional custom exception to throw.
|
|
@@ -175,4 +175,3 @@ export function AssertArrayAny(array, predicate, exception = {}) {
|
|
|
175
175
|
ThrowException(exception);
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
//# sourceMappingURL=assert.js.map
|
|
@@ -35,9 +35,27 @@ export type TEqualityComparator<T> = (a: T, b: T) => boolean;
|
|
|
35
35
|
*
|
|
36
36
|
* @template T - The type of array elements
|
|
37
37
|
*/
|
|
38
|
+
/**
|
|
39
|
+
* Comparison options for array operations.
|
|
40
|
+
*
|
|
41
|
+
* Provides a discriminated union where callers must choose exactly one strategy:
|
|
42
|
+
* - `comparator`: Custom equality function for specialized comparison logic
|
|
43
|
+
* - `useDeepEqual`: Deep structural equality checking
|
|
44
|
+
* - `keyFn`: Function to extract a primitive key for O(n+m) Set-based lookup
|
|
45
|
+
*
|
|
46
|
+
* Mutually exclusive at compile time via `never` literals.
|
|
47
|
+
*/
|
|
38
48
|
export type TArrayComparisonOptions<T> = {
|
|
39
|
-
comparator
|
|
49
|
+
comparator: TEqualityComparator<T>;
|
|
50
|
+
useDeepEqual?: never;
|
|
51
|
+
keyFn?: never;
|
|
52
|
+
} | {
|
|
53
|
+
useDeepEqual: true;
|
|
54
|
+
comparator?: never;
|
|
55
|
+
keyFn?: never;
|
|
40
56
|
} | {
|
|
41
|
-
|
|
57
|
+
keyFn: (item: T) => unknown;
|
|
58
|
+
comparator?: never;
|
|
59
|
+
useDeepEqual?: never;
|
|
42
60
|
};
|
|
43
61
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/array/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAClC;IAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/array/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAE7D;;;;;GAKG;AACH;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAClC;IAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC3E;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACzD;IAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @template T - The type of array elements
|
|
7
7
|
* @param array - The input array
|
|
8
|
-
* @returns A new array containing only unique values (preserves first occurrence order)
|
|
8
|
+
* @returns A new array containing only unique values (preserves first occurrence order). Returns `[]` if `array` is `null`, `undefined`, or empty.
|
|
9
9
|
*
|
|
10
10
|
* @remarks Uses reference equality for objects. Two distinct objects with
|
|
11
11
|
* identical property values are **not** considered equal and will both be kept.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @template T - The type of array elements
|
|
7
7
|
* @param array - The input array
|
|
8
|
-
* @returns A new array containing only unique values (preserves first occurrence order)
|
|
8
|
+
* @returns A new array containing only unique values (preserves first occurrence order). Returns `[]` if `array` is `null`, `undefined`, or empty.
|
|
9
9
|
*
|
|
10
10
|
* @remarks Uses reference equality for objects. Two distinct objects with
|
|
11
11
|
* identical property values are **not** considered equal and will both be kept.
|
|
@@ -23,4 +23,3 @@ export function Unique(array) {
|
|
|
23
23
|
}
|
|
24
24
|
return [...new Set(array)];
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=unique.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/asserts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAM3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAE7D;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAkB5E;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC7C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC5C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAClD;;;;OAIG;gBACS,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnF;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC/C;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGhE;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C;;;OAGG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG3D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IACjD;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D"}
|
|
@@ -55,9 +55,12 @@ export class BaseError extends Error {
|
|
|
55
55
|
this.name = this.constructor.name;
|
|
56
56
|
this.Code = code;
|
|
57
57
|
this.Context = context;
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
59
|
+
const ErrorWithCapture = Error;
|
|
60
|
+
if (typeof ErrorWithCapture.captureStackTrace === 'function') {
|
|
61
|
+
ErrorWithCapture.captureStackTrace(this, this.constructor);
|
|
60
62
|
}
|
|
63
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
@@ -173,4 +176,3 @@ export class BufferOverflowError extends BaseError {
|
|
|
173
176
|
super(`Buffer overflow: maximum size ${maxSize} exceeded`, 'BUFFER_OVERFLOW', context);
|
|
174
177
|
}
|
|
175
178
|
}
|
|
176
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import type { IAssertException, TGuard, TValidationPredicate } from './types.js';
|
|
2
2
|
import { SimpleError } from './errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Serializes a value to a human-readable string, safe for any value type.
|
|
5
|
+
*
|
|
6
|
+
* Prevents sensitive data exposure in error messages by:
|
|
7
|
+
* - Masking object contents (shows type name only, not property values)
|
|
8
|
+
* - Truncating long strings with a clear indication
|
|
9
|
+
* - Handling non-serializable values gracefully
|
|
10
|
+
*
|
|
11
|
+
* @param value - The value to serialize for display
|
|
12
|
+
* @param maxLength - Maximum characters to display for primitives (default: 50, capped at 10,000)
|
|
13
|
+
* @returns A safe string representation (at most maxLength chars plus "[truncated]" suffix)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* safeDisplay({ apiKey: 'secret123', username: 'john' }); // '[Object]'
|
|
17
|
+
* safeDisplay('x'.repeat(100)); // 'xxx....[truncated]'
|
|
18
|
+
* safeDisplay(circularRef); // '[non-serializable]'
|
|
19
|
+
*
|
|
20
|
+
* @internal Used internally by assertion functions to safely display values in error messages
|
|
21
|
+
*/
|
|
22
|
+
export declare function safeDisplay(value: unknown, maxLength?: number): string;
|
|
3
23
|
/**
|
|
4
24
|
* Gets the display type of a value including null and undefined.
|
|
5
25
|
* Used for error messages in null/undefined assertions and type checking.
|
|
@@ -13,7 +33,7 @@ export declare function GetValueType(value: unknown): string;
|
|
|
13
33
|
* Type alias for constructor functions.
|
|
14
34
|
* Represents any class constructor that can be instantiated.
|
|
15
35
|
*/
|
|
16
|
-
export type TConstructorFunction<T =
|
|
36
|
+
export type TConstructorFunction<T = unknown> = new (...args: any[]) => T;
|
|
17
37
|
/**
|
|
18
38
|
* Error thrown when a nullish assertion fails — the value is not null or undefined
|
|
19
39
|
* but was expected to be. Used by {@link AssertNull} when the provided value is a
|
|
@@ -403,7 +423,7 @@ export declare function AssertInstanceOf<T>(value: unknown, constructor: TConstr
|
|
|
403
423
|
* AssertFunction(123); // ✗ Throws FunctionError
|
|
404
424
|
* AssertFunction(null); // ✗ Throws FunctionError
|
|
405
425
|
*/
|
|
406
|
-
export declare function AssertFunction(value: unknown, exception?: IAssertException): asserts value is (...args:
|
|
426
|
+
export declare function AssertFunction(value: unknown, exception?: IAssertException): asserts value is (...args: unknown[]) => unknown;
|
|
407
427
|
/**
|
|
408
428
|
* Asserts that a value is a symbol.
|
|
409
429
|
*
|
|
@@ -440,5 +460,5 @@ export declare function AssertSymbol(value: unknown, exception?: IAssertExceptio
|
|
|
440
460
|
* AssertExtends(Derived, Base); // ✓ Valid
|
|
441
461
|
* AssertExtends(Base, Derived); // ✗ Throws ExtendsError
|
|
442
462
|
*/
|
|
443
|
-
export declare function AssertExtends(derived: abstract new (...args: any[]) =>
|
|
463
|
+
export declare function AssertExtends(derived: abstract new (...args: any[]) => unknown, base: abstract new (...args: any[]) => unknown, exception?: IAssertException): void;
|
|
444
464
|
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/asserts/generic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,41 @@
|
|
|
1
1
|
import { ObjectEquals } from './internal-utils.js';
|
|
2
2
|
import { SetExceptionClass, SetExceptionMessage, ThrowException } from './utils.js';
|
|
3
3
|
import { AssertionError, SimpleError } from './errors.js';
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Serializes a value to a human-readable string, safe for any value type.
|
|
6
|
+
*
|
|
7
|
+
* Prevents sensitive data exposure in error messages by:
|
|
8
|
+
* - Masking object contents (shows type name only, not property values)
|
|
9
|
+
* - Truncating long strings with a clear indication
|
|
10
|
+
* - Handling non-serializable values gracefully
|
|
11
|
+
*
|
|
12
|
+
* @param value - The value to serialize for display
|
|
13
|
+
* @param maxLength - Maximum characters to display for primitives (default: 50, capped at 10,000)
|
|
14
|
+
* @returns A safe string representation (at most maxLength chars plus "[truncated]" suffix)
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* safeDisplay({ apiKey: 'secret123', username: 'john' }); // '[Object]'
|
|
18
|
+
* safeDisplay('x'.repeat(100)); // 'xxx....[truncated]'
|
|
19
|
+
* safeDisplay(circularRef); // '[non-serializable]'
|
|
20
|
+
*
|
|
21
|
+
* @internal Used internally by assertion functions to safely display values in error messages
|
|
22
|
+
*/
|
|
23
|
+
export function safeDisplay(value, maxLength = 50) {
|
|
24
|
+
// Cap maxLength to prevent memory exhaustion from extremely large values
|
|
25
|
+
const effectiveMaxLength = Math.min(maxLength, 10_000);
|
|
26
|
+
// For objects, use type name instead of full serialization to avoid leaking structure
|
|
27
|
+
if (typeof value === 'object' && value !== null) {
|
|
28
|
+
return `[${Object.getPrototypeOf(value)?.constructor?.name ?? 'Object'}]`;
|
|
29
|
+
}
|
|
30
|
+
// For primitives, truncate with clear indication
|
|
8
31
|
try {
|
|
9
|
-
|
|
32
|
+
const serialized = JSON.stringify(value) ?? String(value);
|
|
33
|
+
return serialized.length > effectiveMaxLength
|
|
34
|
+
? serialized.slice(0, effectiveMaxLength) + '...[truncated]'
|
|
35
|
+
: serialized;
|
|
10
36
|
}
|
|
11
37
|
catch {
|
|
12
|
-
return
|
|
38
|
+
return '[non-serializable]';
|
|
13
39
|
}
|
|
14
40
|
}
|
|
15
41
|
/**
|
|
@@ -535,6 +561,7 @@ export function AssertSymbol(value, exception = {}) {
|
|
|
535
561
|
* AssertExtends(Derived, Base); // ✓ Valid
|
|
536
562
|
* AssertExtends(Base, Derived); // ✗ Throws ExtendsError
|
|
537
563
|
*/
|
|
564
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
538
565
|
export function AssertExtends(derived, base, exception = {}) {
|
|
539
566
|
SetExceptionClass(exception, ExtendsError);
|
|
540
567
|
if (typeof derived !== 'function' || typeof base !== 'function') {
|
|
@@ -556,4 +583,3 @@ export function AssertExtends(derived, base, exception = {}) {
|
|
|
556
583
|
ThrowException(exception);
|
|
557
584
|
}
|
|
558
585
|
}
|
|
559
|
-
//# sourceMappingURL=generic.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module asserts
|
|
3
|
+
* @description Aggregation barrel for all assertion functions.
|
|
4
|
+
* Exports both generic assertion primitives (like AssertNull, AssertNotNull, AssertEquals, etc.)
|
|
5
|
+
* and domain-specific validators (AssertArray, AssertBoolean, AssertNumber, AssertObject, AssertString).
|
|
6
|
+
*
|
|
7
|
+
* Domain-specific assertions are re-exported here as a convenience so callers can import
|
|
8
|
+
* all assertion functions from a single entry point. They originate from their respective
|
|
9
|
+
* domain modules (array/, boolean/, number/, object/, string/).
|
|
10
|
+
*
|
|
11
|
+
* Note: Internal utility functions (SetExceptionClass, SetExceptionMessage, ThrowException,
|
|
12
|
+
* AssertValueType, safeDisplay, GetValueType) are NOT exported from this barrel as they are
|
|
13
|
+
* part of the internal assertion implementation contract and should not be relied upon by external code.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Export all array assertion functions and types
|
|
17
|
+
*/
|
|
18
|
+
export * from '../array/assert.js';
|
|
19
|
+
/**
|
|
20
|
+
* Export all boolean assertion functions and types
|
|
21
|
+
*/
|
|
22
|
+
export * from '../boolean/assert.js';
|
|
23
|
+
/**
|
|
24
|
+
* Export generic assertion functions (but not internal utilities)
|
|
25
|
+
*/
|
|
26
|
+
export { AssertEquals, AssertNotEquals, AssertNull, AssertNotNull, AssertPredicate, AssertIsType, AssertInstanceOf, AssertFunction, AssertSymbol, AssertExtends, NullError, NotNullError, PredicateError, TypeGuardError, InstanceOfError, FunctionError, SymbolError, ExtendsError, type TConstructorFunction, } from './generic.js';
|
|
27
|
+
/**
|
|
28
|
+
* Export all number assertion functions and types
|
|
29
|
+
*/
|
|
30
|
+
export * from '../number/assert.js';
|
|
31
|
+
/**
|
|
32
|
+
* Export all object assertion functions and types
|
|
33
|
+
*/
|
|
34
|
+
export * from '../object/assert.js';
|
|
35
|
+
/**
|
|
36
|
+
* Export all string assertion functions and types
|
|
37
|
+
*/
|
|
38
|
+
export * from '../string/assert.js';
|
|
39
|
+
/**
|
|
40
|
+
* Export type definitions and interfaces
|
|
41
|
+
*/
|
|
42
|
+
export * from './types.js';
|
|
43
|
+
/**
|
|
44
|
+
* Export error classes for standardized error handling
|
|
45
|
+
*/
|
|
46
|
+
export * from './errors.js';
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/asserts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,cAAc,oBAAoB,CAAC;AAEnC;;GAEG;AACH,cAAc,sBAAsB,CAAC;AAErC;;GAEG;AACH,OAAO,EACN,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,KAAK,oBAAoB,GACzB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AACH,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AACH,cAAc,qBAAqB,CAAC;AAEpC;;GAEG;AACH,cAAc,YAAY,CAAC;AAE3B;;GAEG;AACH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module asserts
|
|
3
|
+
* @description Aggregation barrel for all assertion functions.
|
|
4
|
+
* Exports both generic assertion primitives (like AssertNull, AssertNotNull, AssertEquals, etc.)
|
|
5
|
+
* and domain-specific validators (AssertArray, AssertBoolean, AssertNumber, AssertObject, AssertString).
|
|
6
|
+
*
|
|
7
|
+
* Domain-specific assertions are re-exported here as a convenience so callers can import
|
|
8
|
+
* all assertion functions from a single entry point. They originate from their respective
|
|
9
|
+
* domain modules (array/, boolean/, number/, object/, string/).
|
|
10
|
+
*
|
|
11
|
+
* Note: Internal utility functions (SetExceptionClass, SetExceptionMessage, ThrowException,
|
|
12
|
+
* AssertValueType, safeDisplay, GetValueType) are NOT exported from this barrel as they are
|
|
13
|
+
* part of the internal assertion implementation contract and should not be relied upon by external code.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Export all array assertion functions and types
|
|
17
|
+
*/
|
|
18
|
+
export * from '../array/assert.js';
|
|
19
|
+
/**
|
|
20
|
+
* Export all boolean assertion functions and types
|
|
21
|
+
*/
|
|
22
|
+
export * from '../boolean/assert.js';
|
|
23
|
+
/**
|
|
24
|
+
* Export generic assertion functions (but not internal utilities)
|
|
25
|
+
*/
|
|
26
|
+
export { AssertEquals, AssertNotEquals, AssertNull, AssertNotNull, AssertPredicate, AssertIsType, AssertInstanceOf, AssertFunction, AssertSymbol, AssertExtends, NullError, NotNullError, PredicateError, TypeGuardError, InstanceOfError, FunctionError, SymbolError, ExtendsError, } from './generic.js';
|
|
27
|
+
/**
|
|
28
|
+
* Export all number assertion functions and types
|
|
29
|
+
*/
|
|
30
|
+
export * from '../number/assert.js';
|
|
31
|
+
/**
|
|
32
|
+
* Export all object assertion functions and types
|
|
33
|
+
*/
|
|
34
|
+
export * from '../object/assert.js';
|
|
35
|
+
/**
|
|
36
|
+
* Export all string assertion functions and types
|
|
37
|
+
*/
|
|
38
|
+
export * from '../string/assert.js';
|
|
39
|
+
/**
|
|
40
|
+
* Export type definitions and interfaces
|
|
41
|
+
*/
|
|
42
|
+
export * from './types.js';
|
|
43
|
+
/**
|
|
44
|
+
* Export error classes for standardized error handling
|
|
45
|
+
*/
|
|
46
|
+
export * from './errors.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-utils.d.ts","sourceRoot":"","sources":["../../src/asserts/internal-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;
|
|
1
|
+
{"version":3,"file":"internal-utils.d.ts","sourceRoot":"","sources":["../../src/asserts/internal-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AAEH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAGxF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
import { TConstructableObject } from './internal-utils.js';
|
|
2
|
-
/**
|
|
3
|
-
* Type alias for constraint union patterns.
|
|
4
|
-
* Represents common constraint combinations used across assertion modules.
|
|
5
|
-
*/
|
|
6
|
-
export type TConstraintValue = string | number | boolean | null | undefined;
|
|
7
|
-
/**
|
|
8
|
-
* Type alias for comparison operators.
|
|
9
|
-
* Represents the various comparison operations available in constraint validation.
|
|
10
|
-
*/
|
|
11
|
-
export type TComparisonOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte';
|
|
12
|
-
/**
|
|
13
|
-
* Type alias for validation result patterns.
|
|
14
|
-
* Represents the union of possible validation outcomes.
|
|
15
|
-
*/
|
|
16
|
-
export type TValidationResult = true | Error;
|
|
1
|
+
import type { TConstructableObject } from './internal-utils.js';
|
|
17
2
|
/**
|
|
18
3
|
* Configuration interface for assertion exception handling.
|
|
19
4
|
*
|
|
@@ -27,7 +12,6 @@ export type TValidationResult = true | Error;
|
|
|
27
12
|
* defaults for unconfigured options.
|
|
28
13
|
*
|
|
29
14
|
* @interface IAssertException
|
|
30
|
-
* @since 1.0.0
|
|
31
15
|
*
|
|
32
16
|
* @example
|
|
33
17
|
* Basic usage with custom messages:
|
|
@@ -139,6 +123,14 @@ export interface IAssertException {
|
|
|
139
123
|
* @template T - The type being guarded
|
|
140
124
|
* @param value - The value to check
|
|
141
125
|
* @returns true if value is of type T, false otherwise
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const isString: TGuard<string> = (value): value is string => typeof value === 'string';
|
|
130
|
+
* if (isString(input)) {
|
|
131
|
+
* // input is now typed as string
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
142
134
|
*/
|
|
143
135
|
export type TGuard<T> = (value: unknown) => value is T;
|
|
144
136
|
/**
|
|
@@ -146,6 +138,14 @@ export type TGuard<T> = (value: unknown) => value is T;
|
|
|
146
138
|
* @template T - The type of value being validated
|
|
147
139
|
* @param value - The value to validate
|
|
148
140
|
* @returns true if valid, false otherwise
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const isPositive: TValidationPredicate<number> = (value) => value > 0;
|
|
145
|
+
* if (isPositive(count)) {
|
|
146
|
+
* // count is valid
|
|
147
|
+
* }
|
|
148
|
+
* ```
|
|
149
149
|
*/
|
|
150
150
|
export type TValidationPredicate<T = unknown> = (value: T) => boolean;
|
|
151
151
|
/**
|
|
@@ -153,6 +153,15 @@ export type TValidationPredicate<T = unknown> = (value: T) => boolean;
|
|
|
153
153
|
* @template T - The element type
|
|
154
154
|
* @param value - The value to check
|
|
155
155
|
* @returns true if value is an array of type T[], false otherwise
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* const isStringArray: TArrayTypeGuard<string> = (value): value is string[] =>
|
|
160
|
+
* Array.isArray(value) && value.every(item => typeof item === 'string');
|
|
161
|
+
* if (isStringArray(items)) {
|
|
162
|
+
* // items is now typed as string[]
|
|
163
|
+
* }
|
|
164
|
+
* ```
|
|
156
165
|
*/
|
|
157
166
|
export type TArrayTypeGuard<T> = (value: unknown) => value is T[];
|
|
158
167
|
/**
|
|
@@ -160,6 +169,16 @@ export type TArrayTypeGuard<T> = (value: unknown) => value is T[];
|
|
|
160
169
|
* @template T - The object type
|
|
161
170
|
* @param value - The value to check
|
|
162
171
|
* @returns true if value is of object type T, false otherwise
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* interface User { id: number; name: string; }
|
|
176
|
+
* const isUser: TObjectTypeGuard<User> = (value): value is User =>
|
|
177
|
+
* typeof value === 'object' && value !== null && 'id' in value && 'name' in value;
|
|
178
|
+
* if (isUser(data)) {
|
|
179
|
+
* // data is now typed as User
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
163
182
|
*/
|
|
164
183
|
export type TObjectTypeGuard<T extends object> = (value: unknown) => value is T;
|
|
165
184
|
/**
|
|
@@ -167,6 +186,15 @@ export type TObjectTypeGuard<T extends object> = (value: unknown) => value is T;
|
|
|
167
186
|
* @template T - The non-null type
|
|
168
187
|
* @param value - The value to check
|
|
169
188
|
* @returns true if value is not null or undefined, false otherwise
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* const isDefined: TNonNullableGuard<string> = (value): value is string =>
|
|
193
|
+
* value !== null && value !== undefined;
|
|
194
|
+
* if (isDefined(maybeString)) {
|
|
195
|
+
* // maybeString is now typed as string
|
|
196
|
+
* }
|
|
197
|
+
* ```
|
|
170
198
|
*/
|
|
171
199
|
export type TNonNullableGuard<T> = (value: T | null | undefined) => value is T;
|
|
172
200
|
/**
|
|
@@ -175,6 +203,17 @@ export type TNonNullableGuard<T> = (value: T | null | undefined) => value is T;
|
|
|
175
203
|
* @param value - The value to assert
|
|
176
204
|
* @param message - Optional error message
|
|
177
205
|
* @throws IAssertException if assertion fails
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```typescript
|
|
209
|
+
* const AssertNumber: TAssertFunction<number> = (value, message) => {
|
|
210
|
+
* if (typeof value !== 'number') {
|
|
211
|
+
* throw new Error(message || 'Expected a number');
|
|
212
|
+
* }
|
|
213
|
+
* };
|
|
214
|
+
* AssertNumber(input);
|
|
215
|
+
* // input is now typed as number
|
|
216
|
+
* ```
|
|
178
217
|
*/
|
|
179
218
|
export type TAssertFunction<T = unknown> = (value: unknown, message?: string) => asserts value is T;
|
|
180
219
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/asserts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,24 +1,5 @@
|
|
|
1
|
-
import { TConstructableObject } from './internal-utils.js';
|
|
2
|
-
import { IAssertException } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Gets the actual type of a value for error messages.
|
|
5
|
-
* Handles primitives, objects, arrays, null, and undefined.
|
|
6
|
-
*
|
|
7
|
-
* @param value - The value to get the type of
|
|
8
|
-
* @returns A string representation suitable for error messages
|
|
9
|
-
* @internal Used by assertion functions for consistent type naming
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* GetActualType(null); // "null"
|
|
14
|
-
* GetActualType(undefined); // "undefined"
|
|
15
|
-
* GetActualType([1, 2, 3]); // "array"
|
|
16
|
-
* GetActualType({a: 1}); // "object"
|
|
17
|
-
* GetActualType("hello"); // "string"
|
|
18
|
-
* GetActualType(42); // "number"
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export declare function GetActualType(value: unknown): string;
|
|
1
|
+
import type { TConstructableObject } from './internal-utils.js';
|
|
2
|
+
import type { IAssertException } from './types.js';
|
|
22
3
|
/**
|
|
23
4
|
* Throws an exception using the configured error class and message.
|
|
24
5
|
*
|
|
@@ -29,6 +10,7 @@ export declare function GetActualType(value: unknown): string;
|
|
|
29
10
|
*
|
|
30
11
|
* @param exception - Exception configuration containing error class and/or message
|
|
31
12
|
* @throws {Error} The configured error class with the specified message, or generic Error if no class specified
|
|
13
|
+
* @internal
|
|
32
14
|
*
|
|
33
15
|
* @example
|
|
34
16
|
* ```typescript
|
|
@@ -59,6 +41,7 @@ export declare function ThrowException(exception: IAssertException): void;
|
|
|
59
41
|
* @param exception - Exception configuration object to modify
|
|
60
42
|
* @param errorClass - The error class constructor to set as default
|
|
61
43
|
* @param force - Whether to override existing error class configuration (default: false)
|
|
44
|
+
* @internal
|
|
62
45
|
*
|
|
63
46
|
* @example
|
|
64
47
|
* ```typescript
|
|
@@ -89,6 +72,7 @@ export declare function SetExceptionClass(exception: IAssertException, errorClas
|
|
|
89
72
|
* @param exception - Exception configuration object to modify
|
|
90
73
|
* @param message - The error message to set as default
|
|
91
74
|
* @param force - Whether to override existing error message configuration (default: false)
|
|
75
|
+
* @internal
|
|
92
76
|
*
|
|
93
77
|
* @example
|
|
94
78
|
* ```typescript
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/asserts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAKhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,UAAQ,GAAG,IAAI,CAGpH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,IAAI,CAGrG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,EAClE,SAAS,EAAE,gBAAgB,GACzB,OAAO,CAAC,KAAK,CAuCf"}
|