@ezez/utils 4.6.0 → 4.7.1
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/.github/workflows/docs.yml +4 -3
- package/CHANGELOG.md +11 -0
- package/README.md +21 -6
- package/dist/assertProps.d.ts +6 -0
- package/dist/assertProps.d.ts.map +1 -0
- package/dist/assertProps.js +11 -0
- package/dist/assertProps.js.map +1 -0
- package/dist/hasProps.d.ts +3 -0
- package/dist/hasProps.d.ts.map +1 -0
- package/dist/hasProps.js +16 -0
- package/dist/hasProps.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/match.d.ts.map +1 -1
- package/dist/match.js.map +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/documents/Changelog.html +93 -83
- package/docs/functions/index.assertProps.html +6 -0
- package/docs/functions/index.cap.html +2 -2
- package/docs/functions/index.capitalize.html +2 -2
- package/docs/functions/index.coalesce.html +2 -2
- package/docs/functions/index.compareArrays.html +2 -2
- package/docs/functions/index.compareProps.html +2 -2
- package/docs/functions/index.deserialize.html +2 -2
- package/docs/functions/index.ensureArray.html +2 -2
- package/docs/functions/index.ensureDate.html +2 -2
- package/docs/functions/index.ensureError.html +2 -2
- package/docs/functions/index.ensurePrefix.html +2 -2
- package/docs/functions/index.ensureSuffix.html +2 -2
- package/docs/functions/index.ensureTimestamp.html +2 -2
- package/docs/functions/index.escapeRegExp.html +2 -2
- package/docs/functions/index.formatDate.html +2 -2
- package/docs/functions/index.get.html +2 -2
- package/docs/functions/index.getMultiple.html +2 -2
- package/docs/functions/index.hasProps.html +6 -0
- package/docs/functions/index.ignore.html +2 -2
- package/docs/functions/index.insertSeparator.html +2 -2
- package/docs/functions/index.isEmpty.html +2 -2
- package/docs/functions/index.isNumericString.html +2 -2
- package/docs/functions/index.isPlainObject.html +2 -2
- package/docs/functions/index.last.html +2 -2
- package/docs/functions/index.later-1.html +2 -2
- package/docs/functions/index.mapAsync.html +2 -2
- package/docs/functions/index.mapValues.html +2 -2
- package/docs/functions/index.match.html +6 -3
- package/docs/functions/index.memoize.html +2 -2
- package/docs/functions/index.merge.html +2 -2
- package/docs/functions/index.mostFrequent.html +2 -2
- package/docs/functions/index.noop.html +2 -2
- package/docs/functions/index.occurrences.html +2 -2
- package/docs/functions/index.omit.html +2 -2
- package/docs/functions/index.pick.html +2 -2
- package/docs/functions/index.pull.html +2 -2
- package/docs/functions/index.race.html +2 -2
- package/docs/functions/index.remove.html +2 -2
- package/docs/functions/index.removeCommonProperties.html +2 -2
- package/docs/functions/index.replace.html +2 -2
- package/docs/functions/index.replaceDeep.html +2 -2
- package/docs/functions/index.rethrow.html +2 -2
- package/docs/functions/index.retry.html +2 -2
- package/docs/functions/index.round.html +2 -2
- package/docs/functions/index.safe.html +2 -2
- package/docs/functions/index.sample.html +2 -2
- package/docs/functions/index.samples.html +2 -2
- package/docs/functions/index.scale.html +2 -2
- package/docs/functions/index.seq.html +2 -2
- package/docs/functions/index.seqEarlyBreak.html +2 -2
- package/docs/functions/index.serialize.html +2 -2
- package/docs/functions/index.serializeToBuffer.html +2 -2
- package/docs/functions/index.set.html +2 -2
- package/docs/functions/index.setImmutable.html +2 -2
- package/docs/functions/index.shuffle.html +2 -2
- package/docs/functions/index.sortBy.html +2 -2
- package/docs/functions/index.sortByMultiple.html +2 -2
- package/docs/functions/index.sortProps.html +2 -2
- package/docs/functions/index.stripPrefix.html +2 -2
- package/docs/functions/index.stripSuffix.html +2 -2
- package/docs/functions/index.throttle.html +2 -2
- package/docs/functions/index.toggle.html +2 -2
- package/docs/functions/index.trim.html +2 -2
- package/docs/functions/index.trimEnd.html +2 -2
- package/docs/functions/index.trimStart.html +2 -2
- package/docs/functions/index.truthy.html +2 -2
- package/docs/functions/index.unique.html +2 -2
- package/docs/functions/index.unserializeFromBuffer.html +2 -2
- package/docs/functions/index.wait.html +2 -2
- package/docs/functions/index.waitFor.html +2 -2
- package/docs/functions/index.waitSync.html +2 -2
- package/docs/index.html +23 -8
- package/docs/interfaces/index.ComparePropsOptions.html +3 -3
- package/docs/interfaces/index.GetMultipleSource.html +2 -2
- package/docs/interfaces/index.GetSource.html +2 -2
- package/docs/interfaces/index.IsNumericStringOptions.html +2 -2
- package/docs/interfaces/index.OccurencesOptions.html +2 -2
- package/docs/interfaces/index.SetImmutableSource.html +2 -2
- package/docs/interfaces/index.SetSource.html +2 -2
- package/docs/interfaces/index.ThrottleOptions.html +3 -3
- package/docs/interfaces/index.ThrottledFunctionExtras.html +3 -3
- package/docs/modules/index.html +1 -1
- package/docs/modules.html +1 -1
- package/docs/types/index.CustomDeserializers.html +1 -1
- package/docs/types/index.CustomSerializers.html +1 -1
- package/docs/types/index.Later.html +2 -2
- package/docs/types/index.MapValuesFn.html +2 -2
- package/docs/types/index.MatchCallback.html +1 -1
- package/docs/types/index.MergeTwo.html +2 -2
- package/docs/types/index.SeqEarlyBreaker.html +2 -2
- package/docs/types/index.SeqFn.html +2 -2
- package/docs/types/index.SeqFunctions.html +2 -2
- package/docs/types/index.SetImmutablePath.html +2 -2
- package/docs/types/index.ThrottledFunction.html +1 -1
- package/docs/variables/index.mapValuesUNSET.html +2 -2
- package/docs/variables/index.mergeUNSET.html +2 -2
- package/esm/assertProps.d.ts +6 -0
- package/esm/assertProps.d.ts.map +1 -0
- package/esm/assertProps.js +8 -0
- package/esm/assertProps.js.map +1 -0
- package/esm/hasProps.d.ts +3 -0
- package/esm/hasProps.d.ts.map +1 -0
- package/esm/hasProps.js +13 -0
- package/esm/hasProps.js.map +1 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/match.d.ts.map +1 -1
- package/esm/match.js.map +1 -1
- package/package.json +1 -1
- package/src/assertProps.spec.ts +128 -0
- package/src/assertProps.ts +37 -0
- package/src/hasProps.spec.ts +122 -0
- package/src/hasProps.ts +36 -0
- package/src/index.ts +2 -0
- package/src/match.ts +1 -0
|
@@ -29,22 +29,23 @@ jobs:
|
|
|
29
29
|
|
|
30
30
|
- name: Deploy versioned documentation
|
|
31
31
|
uses: easingthemes/ssh-deploy@main
|
|
32
|
-
|
|
32
|
+
with:
|
|
33
33
|
SSH_PRIVATE_KEY: ${{ secrets.DOCS_SERVER_PRIVATE_KEY }}
|
|
34
34
|
REMOTE_HOST: ${{ secrets.DOCS_SERVER_HOST }}
|
|
35
35
|
REMOTE_USER: ${{ secrets.DOCS_SERVER_USER }}
|
|
36
36
|
REMOTE_PORT: ${{ secrets.DOCS_SERVER_PORT }}
|
|
37
37
|
SOURCE: "docs/"
|
|
38
38
|
TARGET: "/docs/${{ env.PROJECT_NAME }}/${{ env.APP_VERSION }}"
|
|
39
|
+
ARGS: "-rltgoDzvO"
|
|
39
40
|
|
|
40
41
|
- name: Deploy latest documentation
|
|
41
42
|
uses: easingthemes/ssh-deploy@main
|
|
42
|
-
|
|
43
|
+
with:
|
|
43
44
|
SSH_PRIVATE_KEY: ${{ secrets.DOCS_SERVER_PRIVATE_KEY }}
|
|
44
45
|
REMOTE_HOST: ${{ secrets.DOCS_SERVER_HOST }}
|
|
45
46
|
REMOTE_USER: ${{ secrets.DOCS_SERVER_USER }}
|
|
46
47
|
REMOTE_PORT: ${{ secrets.DOCS_SERVER_PORT }}
|
|
47
|
-
ARGS: "-
|
|
48
|
+
ARGS: "-rlgoDzv --delete"
|
|
48
49
|
SOURCE: "docs/"
|
|
49
50
|
TARGET: "/docs/${{ env.PROJECT_NAME }}/latest"
|
|
50
51
|
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
6
6
|
## [UNRELEASED]
|
|
7
7
|
- (nothing yet)
|
|
8
8
|
|
|
9
|
+
## [4.7.1] - 2025-10-16
|
|
10
|
+
### Fixed
|
|
11
|
+
- added missing exports of `hasProps` and `assertProps`
|
|
12
|
+
|
|
13
|
+
## [4.7.0] - 2025-10-16
|
|
14
|
+
### Added
|
|
15
|
+
- `hasProps` method
|
|
16
|
+
- `assertProps` method
|
|
17
|
+
### Changed
|
|
18
|
+
- deprecated `match`
|
|
19
|
+
|
|
9
20
|
## [4.6.0] - 2025-10-10
|
|
10
21
|
### Added
|
|
11
22
|
- `ignore` method
|
package/README.md
CHANGED
|
@@ -30,14 +30,17 @@ object, with just some properties copied. Easy, right? Few lines of code? Lodash
|
|
|
30
30
|
## Supported methods
|
|
31
31
|
|
|
32
32
|
### String related
|
|
33
|
-
- `addPrefix` - add prefix to a string if not already present
|
|
34
|
-
- `addSuffix` - add suffix to a string if not already present
|
|
35
33
|
- `capitalize` - capitalize a string, optionally lower casing the rest
|
|
34
|
+
- `ensurePrefix` - add prefix to a string if not already present
|
|
35
|
+
- `ensureSuffix` - add suffix to a string if not already present
|
|
36
36
|
- `isNumericString` - check if given value is a numeric string, features configurable
|
|
37
37
|
- `occurrences` - count occurrences of a substring in a string, optionally allow overlapping
|
|
38
38
|
- `replace` - replace all occurrences of a substring using a map of replacements
|
|
39
39
|
- `stripPrefix` - strip prefix from a string
|
|
40
40
|
- `stripSuffix` - strip suffix from a string
|
|
41
|
+
- `trim` - remove given characters from both sides of a string
|
|
42
|
+
- `trimEnd` - remove given characters from the end of a string
|
|
43
|
+
- `trimStart` - remove given characters from the start of a string
|
|
41
44
|
|
|
42
45
|
### Number related
|
|
43
46
|
- `cap` - cap a value between lower and upper bound
|
|
@@ -53,7 +56,12 @@ object, with just some properties copied. Easy, right? Few lines of code? Lodash
|
|
|
53
56
|
- `mostFrequent` - find most frequent value in an array
|
|
54
57
|
- `pull` - remove values from an array (by mutating)
|
|
55
58
|
- `remove` - remove values from an array (by mutating) using predicate function and return removed values
|
|
59
|
+
- `sample` - pick a random element from an array
|
|
60
|
+
- `samples` - pick multiple random elements from an array without duplicates
|
|
61
|
+
- `shuffle` - shuffle an array, returning a new array
|
|
56
62
|
- `sortBy` - sort an array by given property (create callback function for `Array.prototype.sort`)
|
|
63
|
+
- `sortByMultiple` - sort an array by multiple properties with individual sort directions
|
|
64
|
+
- `toggle` - toggle an item in an array (add if missing, remove if present)
|
|
57
65
|
- `unique` - get unique values from an array
|
|
58
66
|
|
|
59
67
|
### Object related
|
|
@@ -64,9 +72,11 @@ object, with just some properties copied. Easy, right? Few lines of code? Lodash
|
|
|
64
72
|
- `merge` - merge two objects shallowly, allowing to remove properties while doing so
|
|
65
73
|
- `omit` - omit properties from an object
|
|
66
74
|
- `pick` - pick some properties from an object
|
|
75
|
+
- `removeCommonProperties` - remove properties from targets that have the same value as in source
|
|
67
76
|
- `replaceDeep` - recursively replace all occurrences of a value in an object/array
|
|
68
|
-
- `
|
|
77
|
+
- `replaceDeepByFn` - recursively replace values in an object/array using a callback function
|
|
69
78
|
- `serialize` - like JSON.stringify but any data type is allowed
|
|
79
|
+
- `sortProps` - sort object properties by key
|
|
70
80
|
|
|
71
81
|
### Date related
|
|
72
82
|
- `ensureDate` - ensure that given value is a Date instance
|
|
@@ -78,24 +88,29 @@ object, with just some properties copied. Easy, right? Few lines of code? Lodash
|
|
|
78
88
|
- `ensureError` - ensure that given value is an error
|
|
79
89
|
- `escapeRegExp` - escape a string to be used in a regular expression
|
|
80
90
|
- `safe` - runs function and returns its result or default value if function throws an error
|
|
91
|
+
- `hasProps` - runtime check and type guard to ensure that given object has specified properties
|
|
92
|
+
- `assertProps` - like `hasProps` but throws if check fails
|
|
81
93
|
|
|
82
94
|
### Flow related
|
|
95
|
+
- `ignore` - execute a callback and ignore its result, errors, or promise rejections
|
|
83
96
|
- `later` - create a promise you can resolve later, outside of Promise constructor
|
|
84
97
|
- `mapAsync` - map an array asynchronously if sync version blocks your event loop for too long
|
|
85
98
|
- `noop` - do nothing
|
|
99
|
+
- `race` - timeout your promises while keeping TypeScript types correct
|
|
86
100
|
- `rethrow` - throw given value
|
|
87
|
-
- `seq` - sequentially execute Promise-returning functions until one returns a value
|
|
88
101
|
- `retry` - execute Promise-returning in a loop until it resolves
|
|
102
|
+
- `seq` - sequentially execute Promise-returning functions until one returns a value
|
|
89
103
|
- `wait` - wait given amount of time (async)
|
|
90
|
-
- `waitSync` - wait given amount of time (sync)
|
|
91
104
|
- `waitFor` - wait for a condition to be true, checking every given amount of time
|
|
105
|
+
- `waitSync` - wait given amount of time (sync)
|
|
92
106
|
|
|
93
107
|
### Various
|
|
94
108
|
- `get` - extract a value from a deep object using specified path, optionally with a default value
|
|
95
109
|
- `getMultiple` - same as above, but test multiple paths
|
|
110
|
+
- `isEmpty` - check if given value is empty
|
|
111
|
+
- `memoize` - memoize a function, caching the result of the last call
|
|
96
112
|
- `set` - set a value in a deep object using specified path
|
|
97
113
|
- `setImmutable` - set a value in a deep object using specified path, but return a new object
|
|
98
|
-
- `isEmpty` - check if given value is empty
|
|
99
114
|
- `throttle` - throttle a function, very configurable
|
|
100
115
|
- `truthy` - is value truthy? (useful for filtering with more correct TypeScript support than `filter(Boolean)`)
|
|
101
116
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type AssertPropsFn = <T extends Record<string, "string" | "number" | "boolean">>(obj: unknown, schema: T) => asserts obj is {
|
|
2
|
+
[K in keyof T]: T[K] extends "string" ? string : T[K] extends "number" ? number : T[K] extends "boolean" ? boolean : never;
|
|
3
|
+
};
|
|
4
|
+
declare const assertProps: AssertPropsFn;
|
|
5
|
+
export { assertProps, };
|
|
6
|
+
//# sourceMappingURL=assertProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertProps.d.ts","sourceRoot":"","sources":["../src/assertProps.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAC3E,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,CAAC,KACR,OAAO,CAAC,GAAG,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GACxB,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC1B,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,OAAO,GAC5B,KAAK;CACtB,CAAC;AAcF,QAAA,MAAM,WAAW,EAAE,aAOlB,CAAC;AAEF,OAAO,EACH,WAAW,GACd,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertProps = void 0;
|
|
4
|
+
const hasProps_1 = require("./hasProps");
|
|
5
|
+
const assertProps = (obj, schema) => {
|
|
6
|
+
if (!(0, hasProps_1.hasProps)(obj, schema)) {
|
|
7
|
+
throw new Error("Object does not match the required schema");
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
exports.assertProps = assertProps;
|
|
11
|
+
//# sourceMappingURL=assertProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertProps.js","sourceRoot":"","sources":["../src/assertProps.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAyBtC,MAAM,WAAW,GAAkB,CAC/B,GAAY,EACZ,MAAS,EACX,EAAE;IACA,IAAI,CAAC,IAAA,mBAAQ,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;AACL,CAAC,CAAC;AAGE,kCAAW"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const hasProps: <T extends Record<string, "string" | "number" | "boolean">>(obj: unknown, schema: T) => obj is { [K in keyof T]: T[K] extends "string" ? string : T[K] extends "number" ? number : T[K] extends "boolean" ? boolean : never; };
|
|
2
|
+
export { hasProps, };
|
|
3
|
+
//# sourceMappingURL=hasProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasProps.d.ts","sourceRoot":"","sources":["../src/hasProps.ts"],"names":[],"mappings":"AAaA,QAAA,MAAM,QAAQ,GACV,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAEzD,KAAK,OAAO,EACZ,QAAQ,CAAC,KACV,GAAG,IAAI,GACL,CAAC,IAAI,MAAM,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GACxB,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC1B,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,OAAO,GAC5B,KAAK,GAQtB,CAAC;AAEF,OAAO,EACH,QAAQ,GACX,CAAC"}
|
package/dist/hasProps.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasProps = void 0;
|
|
4
|
+
const hasProps = (obj, schema) => {
|
|
5
|
+
if (typeof obj !== "object" || obj === null || Array.isArray(obj)) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
for (const [key, type] of Object.entries(schema)) {
|
|
9
|
+
if (typeof obj[key] !== type) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
14
|
+
};
|
|
15
|
+
exports.hasProps = hasProps;
|
|
16
|
+
//# sourceMappingURL=hasProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasProps.js","sourceRoot":"","sources":["../src/hasProps.ts"],"names":[],"mappings":";;;AAaA,MAAM,QAAQ,GAAG,CAGb,GAAY,EACZ,MAAS,EAOX,EAAE;IACA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IACpF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/C,IAAI,OAAQ,GAA0B,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAGE,4BAAQ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./serializeToBuffer/serializeToBuffer.js";
|
|
|
2
2
|
export * from "./serializeToBuffer/unserializeFromBuffer.js";
|
|
3
3
|
export * from "./ensurePrefix.js";
|
|
4
4
|
export * from "./ensureSuffix.js";
|
|
5
|
+
export * from "./assertProps.js";
|
|
5
6
|
export * from "./cap.js";
|
|
6
7
|
export * from "./capitalize.js";
|
|
7
8
|
export * from "./coalesce.js";
|
|
@@ -16,6 +17,7 @@ export * from "./escapeRegExp.js";
|
|
|
16
17
|
export * from "./formatDate.js";
|
|
17
18
|
export * from "./get.js";
|
|
18
19
|
export * from "./getMultiple.js";
|
|
20
|
+
export * from "./hasProps.js";
|
|
19
21
|
export * from "./ignore.js";
|
|
20
22
|
export * from "./insertSeparator.js";
|
|
21
23
|
export * from "./isEmpty.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ __exportStar(require("./serializeToBuffer/serializeToBuffer.js"), exports);
|
|
|
18
18
|
__exportStar(require("./serializeToBuffer/unserializeFromBuffer.js"), exports);
|
|
19
19
|
__exportStar(require("./ensurePrefix.js"), exports);
|
|
20
20
|
__exportStar(require("./ensureSuffix.js"), exports);
|
|
21
|
+
__exportStar(require("./assertProps.js"), exports);
|
|
21
22
|
__exportStar(require("./cap.js"), exports);
|
|
22
23
|
__exportStar(require("./capitalize.js"), exports);
|
|
23
24
|
__exportStar(require("./coalesce.js"), exports);
|
|
@@ -32,6 +33,7 @@ __exportStar(require("./escapeRegExp.js"), exports);
|
|
|
32
33
|
__exportStar(require("./formatDate.js"), exports);
|
|
33
34
|
__exportStar(require("./get.js"), exports);
|
|
34
35
|
__exportStar(require("./getMultiple.js"), exports);
|
|
36
|
+
__exportStar(require("./hasProps.js"), exports);
|
|
35
37
|
__exportStar(require("./ignore.js"), exports);
|
|
36
38
|
__exportStar(require("./insertSeparator.js"), exports);
|
|
37
39
|
__exportStar(require("./isEmpty.js"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2EAAyD;AACzD,+EAA6D;AAC7D,oDAAkC;AAClC,oDAAkC;AAClC,2CAAyB;AACzB,kDAAgC;AAChC,gDAA8B;AAC9B,qDAAmC;AACnC,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,2CAAyB;AACzB,mDAAiC;AACjC,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,uDAAqC;AACrC,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,oDAAkC;AAClC,4CAA0B;AAC1B,mDAAiC;AACjC,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,8CAA4B;AAC5B,8DAA4C;AAC5C,+CAA6B;AAC7B,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,2CAAyB;AACzB,iDAA+B;AAC/B,2CAAyB;AACzB,oDAAkC;AAClC,+CAA6B;AAC7B,8CAA4B;AAC5B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,8CAA4B;AAC5B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,4CAA0B;AAC1B,+CAA6B;AAC7B,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2EAAyD;AACzD,+EAA6D;AAC7D,oDAAkC;AAClC,oDAAkC;AAClC,mDAAiC;AACjC,2CAAyB;AACzB,kDAAgC;AAChC,gDAA8B;AAC9B,qDAAmC;AACnC,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,2CAAyB;AACzB,mDAAiC;AACjC,gDAA8B;AAC9B,8CAA4B;AAC5B,uDAAqC;AACrC,+CAA6B;AAC7B,uDAAqC;AACrC,qDAAmC;AACnC,4CAA0B;AAC1B,6CAA2B;AAC3B,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,oDAAkC;AAClC,4CAA0B;AAC1B,mDAAiC;AACjC,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,8CAA4B;AAC5B,8DAA4C;AAC5C,+CAA6B;AAC7B,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,2CAAyB;AACzB,iDAA+B;AAC/B,2CAAyB;AACzB,oDAAkC;AAClC,+CAA6B;AAC7B,8CAA4B;AAC5B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,8CAA4B;AAC5B,4CAA0B;AAC1B,+CAA6B;AAC7B,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,4CAA0B;AAC1B,+CAA6B;AAC7B,gDAA8B"}
|
package/dist/match.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAQ9C,QAAA,MAAM,KAAK,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,KAAG;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,CAAC,EAAE,CAAA;CAejF,CAAC;AAEF,OAAO,EACH,KAAK,GACR,CAAC;AACF,YAAY,EACR,aAAa,GAChB,CAAC"}
|
package/dist/match.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":";;;AAQA,MAAM,KAAK,GAAG,CAAI,IAAS,EAAE,EAAoB,EAAoC,EAAE;IACnF,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,SAAS;KACZ,CAAC;AACN,CAAC,CAAC;AAGE,sBAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "
|
|
1
|
+
window.navigationData = "eJyVmV1T2zgUhv9Leku3UChLuSuQdDqzLUyd3ZtOLxRHsbVYkpHkErrT/77ytxzH73FvfZ73iSzrE779t3B87xbXi9uUqYRnOlmcLHLmUv9oq+NCcuXsm674R+pk5olHobaL66vzq6vL06tfJ53FP+b73iD1tsi4fVM9HmbfniziVGRbw9Xi+lvfDC1zZviD0bm9z53QyvY6oRw3OxZ3xiP0wa+8uwxa95G7z0XmRJ7xSBcm5kA9YgnxHCEt+mS/+C43Io6cESqhe+B4AP3EfRwXvtO9graPWCSOuPskZeHYZkb3jmFCPcdIi9ap0c5lfLsqVFy+0XLvDENdMJGY8yN0/x6QSHpbWKflHbf+Y7NM/OQmELuXvJ8TY/DAe/r+z7N3b0fuaJ45mu/9i/n3Pe6qSlT+M8v/YVnB7UodtwQA7XJxesuybMPixylbgJA+bhK+ftYTqqZKWSL+tGQme7kxnD1O9dUBNMM51V9VaU6+GesTAyEkaFs/0R9K1YRxSFHW0aw8rh1hlFe2A+rvL9Fy3Ut/MD/oN/1WNuSG1vOBsBwIlKxjgIhZP6FdtdP1pl37FRpTAA1VlxeBKmb5tMIXcVS4avZDQ8MgkWa+A2KkaQgoqbb/D8awF9ArA4zWEX0cUkC27RfgaVcAARVXtmiaP60KIFJ15xdfylQypGhpjDaUqYJI1YPhO7GnXDVFyqJiN0NWU6RsLSS3jkkwaQ5ApLR+evCvPFnukS+ggGynjWQOf82eAaKEu2mDL+Joe06GihYCqpRZYu61BJCIRGkDmlLXkUCVa2jE/SRnDo3uAxAp7VLmDkzeBjhU+CtS5pf0ajXJDY/9R9wuBt7B4R/5ByBs6kPGhLrf/MtjMCYGGND55gNLWYXhwfFxnPbl12dA4HfpD/ZFxdOOlsCSequHlhqBGn+4RApf/t3vL7nUcH9pANSs8uyBBL6M4tq6leFPBVfgO4cUkCmtwZpYVkFYl1fV+q467QggpJICvExZBeFchNeLw3BZReEiy0DYV0HYMHScKqso7EfKDxSv6qTgVkupVblG+6VRoE9xnIc/kGf4DWuAVtxxDsZZAEGV83eLZ6SpAKwwYE+oyiiuC/9sOl6WQdyyHejLsgrDEu73dZ0UgOHRAEgRM9iEsozi/AmE+ROO9vdxKOkxqCPvCXNuCR2z1jf+YIt2zhEKtWAttPBoaINLPXR0FJKlvqXQUwNIoY27ATOurpMC+rg75AghceTtEKTxp7qcukAFEKWirk8BBFSu+ePLtKclkEQnCVRUdSQwQoK4rxLhJVplG4BQRI4ZMIs6BGoKl4KxW9eBoFDCn7+mBXUdCrplY2W0pNaYozjQPzN06CqrRHiF7moNQCgieFdoiXl/9DnWR+N/h70KEjuf2LSJWn5x9v7i/HTiK0DvkBvavv/6/j8836sE"
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "
|
|
1
|
+
window.searchData = "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";
|