type-plus 5.1.0 → 5.3.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/README.md +4 -4
- package/cjs/array/PadLeft.spec.js.map +1 -1
- package/cjs/array/UnionOfValues.d.ts +1 -1
- package/cjs/array/UnionOfValues.d.ts.map +1 -1
- package/cjs/array/UnionOfValues.spec.js +10 -0
- package/cjs/array/UnionOfValues.spec.js.map +1 -1
- package/cjs/array/index.d.ts +3 -3
- package/cjs/array/index.d.ts.map +1 -1
- package/cjs/array/index.js.map +1 -1
- package/cjs/assertion/assertType.d.ts +3 -3
- package/cjs/assertion/assertType.spec.js +226 -131
- package/cjs/assertion/assertType.spec.js.map +1 -1
- package/cjs/function/ExtractFunction.d.ts +8 -2
- package/cjs/function/ExtractFunction.d.ts.map +1 -1
- package/cjs/function/ExtractFunction.js +5 -0
- package/cjs/function/ExtractFunction.js.map +1 -1
- package/cjs/function/ExtractFunction.spec.js +18 -6
- package/cjs/function/ExtractFunction.spec.js.map +1 -1
- package/cjs/functional/compose.d.ts +5 -1
- package/cjs/functional/compose.d.ts.map +1 -1
- package/cjs/functional/compose.js +5 -1
- package/cjs/functional/compose.js.map +1 -1
- package/cjs/object/filterKey.d.ts +2 -2
- package/cjs/object/filterKey.d.ts.map +1 -1
- package/cjs/object/filterKey.js +3 -1
- package/cjs/object/filterKey.js.map +1 -1
- package/cjs/object/filterKey.spec.js +5 -0
- package/cjs/object/filterKey.spec.js.map +1 -1
- package/cjs/object/findKey.d.ts +1 -1
- package/cjs/object/findKey.d.ts.map +1 -1
- package/cjs/object/findKey.js +3 -1
- package/cjs/object/findKey.js.map +1 -1
- package/cjs/object/findKey.spec.js +5 -0
- package/cjs/object/findKey.spec.js.map +1 -1
- package/cjs/object/mapKey.d.ts +1 -1
- package/cjs/object/mapKey.d.ts.map +1 -1
- package/cjs/object/mapKey.js +3 -1
- package/cjs/object/mapKey.js.map +1 -1
- package/cjs/object/mapKey.spec.js +5 -0
- package/cjs/object/mapKey.spec.js.map +1 -1
- package/cjs/object/reduceKey.d.ts +1 -1
- package/cjs/object/reduceKey.d.ts.map +1 -1
- package/cjs/object/reduceKey.js +1 -1
- package/cjs/object/reduceKey.js.map +1 -1
- package/cjs/object/reduceKey.spec.js +5 -0
- package/cjs/object/reduceKey.spec.js.map +1 -1
- package/cjs/object/someKey.d.ts +1 -1
- package/cjs/object/someKey.d.ts.map +1 -1
- package/cjs/object/someKey.js +3 -1
- package/cjs/object/someKey.js.map +1 -1
- package/cjs/object/someKey.spec.js +10 -0
- package/cjs/object/someKey.spec.js.map +1 -1
- package/cjs/predicates/CanAssign.spec.js +4 -3
- package/cjs/predicates/CanAssign.spec.js.map +1 -1
- package/cjs/predicates/Equal.d.ts +14 -18
- package/cjs/predicates/Equal.d.ts.map +1 -1
- package/cjs/predicates/Equal.js +0 -8
- package/cjs/predicates/Equal.js.map +1 -1
- package/cjs/predicates/Equal.spec.js +18 -0
- package/cjs/predicates/Equal.spec.js.map +1 -1
- package/cjs/predicates/IsAny.d.ts +3 -0
- package/cjs/predicates/IsAny.d.ts.map +1 -0
- package/cjs/predicates/IsAny.js +3 -0
- package/cjs/predicates/IsAny.js.map +1 -0
- package/cjs/predicates/index.d.ts +2 -3
- package/cjs/predicates/index.d.ts.map +1 -1
- package/cjs/predicates/index.js.map +1 -1
- package/cjs/predicates/isType.d.ts +1 -1
- package/cjs/predicates/isType.js +1 -1
- package/cjs/predicates/isType.spec.js +16 -12
- package/cjs/predicates/isType.spec.js.map +1 -1
- package/cjs/predicates/logical.d.ts +4 -4
- package/cjs/predicates/logical.d.ts.map +1 -1
- package/cjs/utils/inspect.d.ts +1 -1
- package/cjs/utils/inspect.d.ts.map +1 -1
- package/cjs/utils/inspect.js.map +1 -1
- package/esm/array/PadLeft.spec.js.map +1 -1
- package/esm/array/UnionOfValues.d.ts +1 -1
- package/esm/array/UnionOfValues.d.ts.map +1 -1
- package/esm/array/UnionOfValues.spec.js +11 -1
- package/esm/array/UnionOfValues.spec.js.map +1 -1
- package/esm/array/index.d.ts +3 -3
- package/esm/array/index.d.ts.map +1 -1
- package/esm/array/index.js.map +1 -1
- package/esm/assertion/assertType.d.ts +3 -3
- package/esm/assertion/assertType.spec.js +226 -131
- package/esm/assertion/assertType.spec.js.map +1 -1
- package/esm/function/ExtractFunction.d.ts +8 -2
- package/esm/function/ExtractFunction.d.ts.map +1 -1
- package/esm/function/ExtractFunction.js +5 -0
- package/esm/function/ExtractFunction.js.map +1 -1
- package/esm/function/ExtractFunction.spec.js +18 -6
- package/esm/function/ExtractFunction.spec.js.map +1 -1
- package/esm/functional/compose.d.ts +5 -1
- package/esm/functional/compose.d.ts.map +1 -1
- package/esm/functional/compose.js +5 -1
- package/esm/functional/compose.js.map +1 -1
- package/esm/object/filterKey.d.ts +2 -2
- package/esm/object/filterKey.d.ts.map +1 -1
- package/esm/object/filterKey.js +3 -1
- package/esm/object/filterKey.js.map +1 -1
- package/esm/object/filterKey.spec.js +5 -0
- package/esm/object/filterKey.spec.js.map +1 -1
- package/esm/object/findKey.d.ts +1 -1
- package/esm/object/findKey.d.ts.map +1 -1
- package/esm/object/findKey.js +3 -1
- package/esm/object/findKey.js.map +1 -1
- package/esm/object/findKey.spec.js +5 -0
- package/esm/object/findKey.spec.js.map +1 -1
- package/esm/object/mapKey.d.ts +1 -1
- package/esm/object/mapKey.d.ts.map +1 -1
- package/esm/object/mapKey.js +3 -1
- package/esm/object/mapKey.js.map +1 -1
- package/esm/object/mapKey.spec.js +5 -0
- package/esm/object/mapKey.spec.js.map +1 -1
- package/esm/object/reduceKey.d.ts +1 -1
- package/esm/object/reduceKey.d.ts.map +1 -1
- package/esm/object/reduceKey.js +1 -1
- package/esm/object/reduceKey.js.map +1 -1
- package/esm/object/reduceKey.spec.js +6 -1
- package/esm/object/reduceKey.spec.js.map +1 -1
- package/esm/object/someKey.d.ts +1 -1
- package/esm/object/someKey.d.ts.map +1 -1
- package/esm/object/someKey.js +3 -1
- package/esm/object/someKey.js.map +1 -1
- package/esm/object/someKey.spec.js +8 -1
- package/esm/object/someKey.spec.js.map +1 -1
- package/esm/predicates/CanAssign.spec.js +4 -3
- package/esm/predicates/CanAssign.spec.js.map +1 -1
- package/esm/predicates/Equal.d.ts +14 -18
- package/esm/predicates/Equal.d.ts.map +1 -1
- package/esm/predicates/Equal.js +0 -8
- package/esm/predicates/Equal.js.map +1 -1
- package/esm/predicates/Equal.spec.js +18 -0
- package/esm/predicates/Equal.spec.js.map +1 -1
- package/esm/predicates/IsAny.d.ts +3 -0
- package/esm/predicates/IsAny.d.ts.map +1 -0
- package/esm/predicates/IsAny.js +2 -0
- package/esm/predicates/IsAny.js.map +1 -0
- package/esm/predicates/index.d.ts +2 -3
- package/esm/predicates/index.d.ts.map +1 -1
- package/esm/predicates/index.js.map +1 -1
- package/esm/predicates/isType.d.ts +1 -1
- package/esm/predicates/isType.js +1 -1
- package/esm/predicates/isType.spec.js +16 -12
- package/esm/predicates/isType.spec.js.map +1 -1
- package/esm/predicates/logical.d.ts +4 -4
- package/esm/predicates/logical.d.ts.map +1 -1
- package/esm/utils/inspect.d.ts +1 -1
- package/esm/utils/inspect.d.ts.map +1 -1
- package/esm/utils/inspect.js.map +1 -1
- package/package.json +3 -3
- package/ts/array/UnionOfValues.ts +14 -10
- package/ts/array/index.ts +3 -4
- package/ts/function/ExtractFunction.ts +8 -2
- package/ts/functional/compose.ts +5 -1
- package/ts/object/filterKey.ts +5 -3
- package/ts/object/findKey.ts +4 -2
- package/ts/object/mapKey.ts +4 -2
- package/ts/object/reduceKey.ts +2 -2
- package/ts/object/someKey.ts +4 -2
- package/ts/predicates/Equal.ts +19 -23
- package/ts/predicates/IsAny.ts +3 -0
- package/ts/predicates/index.ts +2 -5
- package/ts/predicates/isType.ts +1 -1
- package/ts/predicates/logical.ts +26 -4
- package/ts/utils/inspect.ts +1 -1
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import { extractFunction, isType } from '../index.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
describe(`ExtraceFunction<T>`, () => {
|
|
3
|
+
it('gets the function itself if it is not composite', () => {
|
|
4
|
+
isType.equal();
|
|
5
|
+
});
|
|
6
|
+
it('omits other props from the type', () => {
|
|
7
|
+
isType.equal();
|
|
8
|
+
});
|
|
9
|
+
it('works with intersact functions', () => {
|
|
10
|
+
isType.equal();
|
|
11
|
+
});
|
|
7
12
|
});
|
|
8
13
|
describe(`${extractFunction.name}()`, () => {
|
|
9
|
-
it('
|
|
14
|
+
it('adjusts type to its function type', () => {
|
|
10
15
|
const fn = Object.assign(() => { }, { a: 1 });
|
|
11
16
|
const r = extractFunction(fn);
|
|
12
17
|
isType.equal();
|
|
13
18
|
});
|
|
19
|
+
it('function overload', () => {
|
|
20
|
+
function foo(v) { return v; }
|
|
21
|
+
const fn = Object.assign(foo, { a: 1 });
|
|
22
|
+
const r = extractFunction(fn);
|
|
23
|
+
// @ts-expect-error
|
|
24
|
+
isType.equal();
|
|
25
|
+
});
|
|
14
26
|
});
|
|
15
27
|
//# sourceMappingURL=ExtractFunction.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractFunction.spec.js","sourceRoot":"","sources":["../../ts/function/ExtractFunction.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEtE,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"ExtractFunction.spec.js","sourceRoot":"","sources":["../../ts/function/ExtractFunction.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEtE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAIzD,MAAM,CAAC,KAAK,EAAc,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAIzC,MAAM,CAAC,KAAK,EAAuB,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAKxC,MAAM,CAAC,KAAK,EAAc,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAE7C,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;QAE7B,MAAM,CAAC,KAAK,EAAuB,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAG3B,SAAS,GAAG,CAAC,CAAU,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC;QAErC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACvC,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;QAG7B,mBAAmB;QACnB,MAAM,CAAC,KAAK,EAA8D,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Head, Last } from '../array/index.js';
|
|
2
2
|
import type { AnyFunction } from '../function/AnyFunction.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Compose functions to produce a new function.
|
|
5
|
+
* @params args functions to be composed.
|
|
6
|
+
* Each function will receive the return value of the previous function as its parameters.
|
|
7
|
+
* @return The composed function will expect the parameters of the first function,
|
|
8
|
+
* and return the result of the last function.
|
|
5
9
|
*/
|
|
6
10
|
export declare function compose<FS extends AnyFunction[]>(...fns: FS): (...args: Parameters<Head<FS>>) => ReturnType<Last<FS>>;
|
|
7
11
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../ts/functional/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../ts/functional/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAGrH"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Compose functions to produce a new function.
|
|
3
|
+
* @params args functions to be composed.
|
|
4
|
+
* Each function will receive the return value of the previous function as its parameters.
|
|
5
|
+
* @return The composed function will expect the parameters of the first function,
|
|
6
|
+
* and return the result of the last function.
|
|
3
7
|
*/
|
|
4
8
|
export function compose(...fns) {
|
|
5
9
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../ts/functional/compose.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../ts/functional/compose.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAA2B,GAAG,GAAO;IAC1D,+DAA+D;IAC/D,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7E,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
1
|
+
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
+
export declare function filterKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): Array<keyof S>;
|
|
3
3
|
//# sourceMappingURL=filterKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAI7B"}
|
package/esm/object/filterKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function filterKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).filter(
|
|
2
|
+
return Object.keys(subject).filter(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=filterKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"filterKey.js","sourceRoot":"","sources":["../../ts/object/filterKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test(`return type is 'keyof subject'`, () => {
|
|
|
5
5
|
const actual = filterKey(subject, key => subject[key] > 1);
|
|
6
6
|
t.deepStrictEqual(actual, ['b', 'c']);
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = filterKey(subject, (key, i, a, s) => s[key] > 1);
|
|
11
|
+
t.deepStrictEqual(actual, ['b', 'c']);
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=filterKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"filterKey.spec.js","sourceRoot":"","sources":["../../ts/object/filterKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA"}
|
package/esm/object/findKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function findKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => boolean, thisArg?: T): keyof S | undefined;
|
|
3
3
|
//# sourceMappingURL=findKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"findKey.d.ts","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EAC7F,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,CAIlC"}
|
package/esm/object/findKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function findKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).find(
|
|
2
|
+
return Object.keys(subject).find(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=findKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"findKey.js","sourceRoot":"","sources":["../../ts/object/findKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,SAA6F,EAC7F,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test('predicate key can be used as indexer of the subject', () => {
|
|
|
5
5
|
const actual = findKey(subject, key => subject[key] === 2);
|
|
6
6
|
t.strictEqual(actual, 'b');
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = findKey(subject, (key, i, a, s) => s[key] === 2);
|
|
11
|
+
t.strictEqual(actual, 'b');
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=findKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"findKey.spec.js","sourceRoot":"","sources":["../../ts/object/findKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA"}
|
package/esm/object/mapKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S
|
|
2
|
+
export declare function mapKey<R, S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, obj: Array<keyof S>, subject: S) => R, thisArg?: T): R[];
|
|
3
3
|
//# sourceMappingURL=mapKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"mapKey.d.ts","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAChE,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACvF,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAIlB"}
|
package/esm/object/mapKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function mapKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).map(
|
|
2
|
+
return Object.keys(subject).map(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=mapKey.js.map
|
package/esm/object/mapKey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"mapKey.js","sourceRoot":"","sources":["../../ts/object/mapKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,OAAU,EACV,SAAuF,EACvF,OAAW;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -5,4 +5,9 @@ test('predicate key can be used as indexer of the subject', () => {
|
|
|
5
5
|
const actual = mapKey(subject, key => subject[key] + 1);
|
|
6
6
|
a.satisfies(actual, [2, 3, 4]);
|
|
7
7
|
});
|
|
8
|
+
it('includes subject in callback', () => {
|
|
9
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
10
|
+
const actual = mapKey(subject, (key, i, a, s) => s[key] + 1);
|
|
11
|
+
a.satisfies(actual, [2, 3, 4]);
|
|
12
|
+
});
|
|
8
13
|
//# sourceMappingURL=mapKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"mapKey.spec.js","sourceRoot":"","sources":["../../ts/object/mapKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[]) => T, initialValue: T): T;
|
|
2
|
+
export declare function reduceByKey<S extends Record<KeyTypes, any>, T>(subject: S, callbackfn: (previousValue: T, key: keyof S, currentIndex: number, array: string[], subject: S) => T, initialValue: T): T;
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated renamed to reduceByKey
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"reduceKey.d.ts","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAC5D,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EACpG,YAAY,EAAE,CAAC,GAAG,CAAC,CAEpB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,oBAAc,CAAA"}
|
package/esm/object/reduceKey.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function reduceByKey(subject, callbackfn, initialValue) {
|
|
2
|
-
return Object.keys(subject).reduce(callbackfn, initialValue);
|
|
2
|
+
return Object.keys(subject).reduce((p, k, i, a) => callbackfn(p, k, i, a, subject), initialValue);
|
|
3
3
|
}
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated renamed to reduceByKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"reduceKey.js","sourceRoot":"","sources":["../../ts/object/reduceKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,OAAU,EACV,UAAoG,EACpG,YAAe;IACf,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import t from 'assert';
|
|
2
|
-
import { reduceKey } from '../index.js';
|
|
2
|
+
import { reduceByKey, reduceKey } from '../index.js';
|
|
3
3
|
test('predicate key can be used as indexer of the subject', () => {
|
|
4
4
|
const subject = { a: 1, b: 2, c: 3 };
|
|
5
5
|
const actual = reduceKey(subject, (p, k) => p += subject[k], 'a');
|
|
@@ -14,4 +14,9 @@ test('key type is string if subject type is plain object', () => {
|
|
|
14
14
|
const actual = reduceKey(subject, (p, k) => p += subject[k], 'a');
|
|
15
15
|
t.strictEqual(actual, 'a1');
|
|
16
16
|
});
|
|
17
|
+
it('includes subject in callback', () => {
|
|
18
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
19
|
+
const actual = reduceByKey(subject, (p, k, i, a, s) => p += s[k], 'a');
|
|
20
|
+
t.strictEqual(actual, 'a123');
|
|
21
|
+
});
|
|
17
22
|
//# sourceMappingURL=reduceKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"reduceKey.spec.js","sourceRoot":"","sources":["../../ts/object/reduceKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEpD,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,2CAA2C;AAC3C,sFAAsF;AACtF,+BAA+B;AAC/B,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAC9D,wDAAwD;IACxD,MAAM,OAAO,GAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
package/esm/object/someKey.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { KeyTypes } from './KeyTypes.js';
|
|
2
|
-
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[]) => unknown, thisArg?: T): boolean;
|
|
2
|
+
export declare function someKey<S extends Record<KeyTypes, any>, T = any>(subject: S, predicate: (this: T, key: keyof S, index: number, array: string[], subject: S) => unknown, thisArg?: T): boolean;
|
|
3
3
|
//# sourceMappingURL=someKey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"someKey.d.ts","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAC9D,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,EACzF,OAAO,CAAC,EAAE,CAAC,GACV,OAAO,CAIT"}
|
package/esm/object/someKey.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export function someKey(subject, predicate, thisArg) {
|
|
2
|
-
return Object.keys(subject).some(
|
|
2
|
+
return Object.keys(subject).some(function (k, i, a) {
|
|
3
|
+
return predicate.apply(this, [k, i, a, subject]);
|
|
4
|
+
}, thisArg);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=someKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,
|
|
1
|
+
{"version":3,"file":"someKey.js","sourceRoot":"","sources":["../../ts/object/someKey.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACrB,OAAU,EACV,SAAyF,EACzF,OAAW;IAEX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from 'assert';
|
|
2
|
+
import { isType, someKey } from '../index.js';
|
|
2
3
|
test('predicate key can be used as indexer of the subject', () => {
|
|
3
4
|
const subject = { a: 1, b: 2, c: 3 };
|
|
4
5
|
expect(someKey(subject, key => subject[key] === 2)).toBe(true);
|
|
5
6
|
});
|
|
7
|
+
it('includes subject in callback', () => {
|
|
8
|
+
const subject = { a: 1, b: 2, c: 3 };
|
|
9
|
+
const actual = someKey(subject, (k, i, a, s) => s[k] === 2);
|
|
10
|
+
isType.equal();
|
|
11
|
+
t.strictEqual(actual, true);
|
|
12
|
+
});
|
|
6
13
|
//# sourceMappingURL=someKey.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"someKey.spec.js","sourceRoot":"","sources":["../../ts/object/someKey.spec.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7C,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,KAAK,EAAgC,CAAA;IAC5C,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
|
@@ -45,9 +45,10 @@ describe('canAssign()', () => {
|
|
|
45
45
|
const t = canAssign(false);
|
|
46
46
|
assertType.isTrue(t(undefined));
|
|
47
47
|
assertType.isTrue(t({ a: 1 }));
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
//
|
|
48
|
+
// @ts-expect-error
|
|
49
|
+
t({ a: '' });
|
|
50
|
+
// @ts-expect-error
|
|
51
|
+
t({ a: '', b: '' });
|
|
51
52
|
});
|
|
52
53
|
});
|
|
53
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanAssign.spec.js","sourceRoot":"","sources":["../../ts/predicates/CanAssign.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,SAAS,EAAE,MAAM,aAAa,CAAA;AAE9D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,UAAU,CAAC,MAAM,CAAC,IAA4B,CAAC,CAAA;QAC/C,UAAU,CAAC,MAAM,CAAC,IAAuB,CAAC,CAAA;QAC1C,UAAU,CAAC,MAAM,CAAC,IAAiC,CAAC,CAAA;QACpD,UAAU,CAAC,MAAM,CAAC,IAA8B,CAAC,CAAA;QACjD,UAAU,CAAC,MAAM,CAAC,IAA2B,CAAC,CAAA;QAC9C,UAAU,CAAC,MAAM,CAAC,IAAiC,CAAC,CAAA;QACpD,UAAU,CAAC,MAAM,CAAC,IAAiC,CAAC,CAAA;QACpD,UAAU,CAAC,MAAM,CAAC,IAAgC,CAAC,CAAA;QACnD,UAAU,CAAC,MAAM,CAAC,IAAmC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,UAAU,CAAC,OAAO,CAAC,KAA6B,CAAC,CAAA;QACjD,UAAU,CAAC,OAAO,CAAC,KAA+B,CAAC,CAAA;QACnD,UAAU,CAAC,OAAO,CAAC,KAA+B,CAAC,CAAA;QACnD,UAAU,CAAC,OAAO,CAAC,KAA+B,CAAC,CAAA;QACnD,UAAU,CAAC,OAAO,CAAC,KAAkC,CAAC,CAAA;QACtD,UAAU,CAAC,OAAO,CAAC,KAAiC,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,UAAU,CAAC,MAAM,CAAC,IAA0D,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,UAAU,CAAC,OAAO,CAAC,KAA2D,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC9D,UAAU,CAAC,MAAM,CAAC,SAAS,EAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACzD,UAAU,CAAC,MAAM,CAAC,SAAS,EAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAEjE,wBAAwB;YACxB,uCAAuC;QACzC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,UAAU,CAAC,MAAM,CAAC,SAAS,EAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC/B,UAAU,CAAC,MAAM,CAAC,SAAS,EAAsB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAgB,KAAK,CAAC,CAAA;YACzC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/B,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAE9B,
|
|
1
|
+
{"version":3,"file":"CanAssign.spec.js","sourceRoot":"","sources":["../../ts/predicates/CanAssign.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
+
import type { IsAny } from './IsAny.js';
|
|
2
|
+
import type { And, Or } from './logical.js';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
* But it does not work with union types.
|
|
4
|
-
*
|
|
5
|
-
* `<T>() => T extends A` is a trick to create an inferred type `T`.
|
|
6
|
-
* This is needed for `boolean`, `string`, and `number`,
|
|
7
|
-
* as they supports literal types.
|
|
4
|
+
* Checks if the two types are equal.
|
|
8
5
|
*/
|
|
9
|
-
|
|
6
|
+
export type Equal<A, B, Then = true, Else = false> = [A, B] extends [B, A] ? And<IsAny<A>, IsAny<B>, Then, Or<IsAny<A>, IsAny<B>, Else, Then>> : Else;
|
|
10
7
|
/**
|
|
11
|
-
* Checks if two types are equal.
|
|
8
|
+
* Checks if the two types are equal.
|
|
12
9
|
*/
|
|
13
|
-
export type
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export type
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export type IsNotEqual<A, B> = NotEqual<A, B>;
|
|
10
|
+
export type IsEqual<A, B, Then = true, Else = false> = Equal<A, B, Then, Else>;
|
|
11
|
+
/**
|
|
12
|
+
* Check if the two types are not equal
|
|
13
|
+
*/
|
|
14
|
+
export type NotEqual<A, B, Then = true, Else = false> = Equal<A, B, Else, Then>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if the two types are not equal
|
|
17
|
+
*/
|
|
18
|
+
export type IsNotEqual<A, B, Then = true, Else = false> = NotEqual<A, B, Then, Else>;
|
|
23
19
|
//# sourceMappingURL=Equal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Equal.d.ts","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GACtE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EACtB,IAAI,EACJ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,GACnC,IAAI,CAAA;AAER;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE/E;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
package/esm/predicates/Equal.js
CHANGED
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `<T>() => T extends A ? 1 : 2` idea originate from `typepark`
|
|
3
|
-
* But it does not work with union types.
|
|
4
|
-
*
|
|
5
|
-
* `<T>() => T extends A` is a trick to create an inferred type `T`.
|
|
6
|
-
* This is needed for `boolean`, `string`, and `number`,
|
|
7
|
-
* as they supports literal types.
|
|
8
|
-
*/
|
|
9
1
|
export {};
|
|
10
2
|
//# sourceMappingURL=Equal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.js","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Equal.js","sourceRoot":"","sources":["../../ts/predicates/Equal.ts"],"names":[],"mappings":""}
|
|
@@ -78,6 +78,24 @@ describe('Equal<A, B>', () => {
|
|
|
78
78
|
it('works with union types containing symbol', () => {
|
|
79
79
|
assertType.isFalse(false);
|
|
80
80
|
});
|
|
81
|
+
it('works with intersect objects', () => {
|
|
82
|
+
assertType.isTrue(true);
|
|
83
|
+
assertType.isFalse(false);
|
|
84
|
+
});
|
|
85
|
+
it('works with union of functions', () => {
|
|
86
|
+
assertType.isTrue(true);
|
|
87
|
+
assertType.isFalse(false);
|
|
88
|
+
assertType.isFalse(false);
|
|
89
|
+
});
|
|
90
|
+
it('works against any', () => {
|
|
91
|
+
assertType.isTrue(true);
|
|
92
|
+
assertType.isFalse(false);
|
|
93
|
+
assertType.isFalse(false);
|
|
94
|
+
});
|
|
95
|
+
it('works against function overload', () => {
|
|
96
|
+
function foo(v) { return v; }
|
|
97
|
+
assertType.isTrue(true);
|
|
98
|
+
});
|
|
81
99
|
});
|
|
82
100
|
describe('NotEqual<A, B>', () => {
|
|
83
101
|
test('boolean', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equal.spec.js","sourceRoot":"","sources":["../../ts/predicates/Equal.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Equal.spec.js","sourceRoot":"","sources":["../../ts/predicates/Equal.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsAny.d.ts","sourceRoot":"","sources":["../../ts/predicates/IsAny.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,SAAS,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsAny.js","sourceRoot":"","sources":["../../ts/predicates/IsAny.ts"],"names":[],"mappings":""}
|
|
@@ -2,11 +2,10 @@ export * from './CanAssign.js';
|
|
|
2
2
|
export type { Equal, IsEqual, IsNotEqual, NotEqual } from './Equal.js';
|
|
3
3
|
export type { Extendable, IsExtend, IsNotExtend, NotExtendable } from './Extends.js';
|
|
4
4
|
export type { If } from './If.js';
|
|
5
|
+
export type { IsAny } from './IsAny.js';
|
|
6
|
+
export type { IsEmptyObject } from './IsEmptyObject.js';
|
|
5
7
|
export * from './isType.js';
|
|
6
8
|
export type { And, Not, Or, Xor } from './logical.js';
|
|
7
|
-
export type { IsEmptyObject } from './IsEmptyObject.js';
|
|
8
|
-
import type { IsExtend } from './Extends.js';
|
|
9
9
|
export type IsLiteral<T extends number | string, Then = true, Else = false> = number extends T ? Else : string extends T ? Else : Then;
|
|
10
10
|
export type IsBoolean<T, Then = true, Else = false> = boolean extends T ? Then : Else;
|
|
11
|
-
export type IsAny<T, Then = true, Else = false> = boolean extends IsExtend<T, string> ? Then : Else;
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/predicates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACtE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/predicates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACtE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,MAAM,SAAS,CAAC,GAC5F,IAAI,GACJ,MAAM,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhC,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,OAAO,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/predicates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/predicates/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAM9B,cAAc,aAAa,CAAA"}
|
|
@@ -10,6 +10,6 @@ export declare function isType<T>(subject: unknown, validator: (s: T) => unknown
|
|
|
10
10
|
export declare namespace isType {
|
|
11
11
|
var t: <T extends true>(subject?: T | undefined) => boolean;
|
|
12
12
|
var f: <T extends false>(subject?: T | undefined) => boolean;
|
|
13
|
-
var equal: <C extends Equal<A, B
|
|
13
|
+
var equal: <C extends Equal<A, B>, A, B>() => void;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=isType.d.ts.map
|
package/esm/predicates/isType.js
CHANGED
|
@@ -9,7 +9,7 @@ isType.f = function (subject) {
|
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* Are types A and B equals/not equals.
|
|
12
|
-
* Easier to use
|
|
12
|
+
* Easier to use than `isType.t<>()` and `isType.f<>()`,
|
|
13
13
|
* when doing type level only equality comparison as you don't have to import `Equal<>`.
|
|
14
14
|
*/
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -54,30 +54,34 @@ describe('isType.t()', () => {
|
|
|
54
54
|
test('accept true type but not false or boolean', () => {
|
|
55
55
|
expect(isType.t()).toBe(true);
|
|
56
56
|
expect(isType.t()).toBe(true);
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
//
|
|
57
|
+
// @ts-expect-error
|
|
58
|
+
isType.t();
|
|
59
|
+
// @ts-expect-error
|
|
60
|
+
isType.t();
|
|
60
61
|
});
|
|
61
62
|
test('accept value with type true but not false or boolean', () => {
|
|
62
63
|
expect(isType.t(true)).toBe(true);
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
//
|
|
64
|
+
// @ts-expect-error
|
|
65
|
+
isType.t(false);
|
|
66
|
+
// @ts-expect-error
|
|
67
|
+
isType.t(1 === 1);
|
|
66
68
|
});
|
|
67
69
|
});
|
|
68
70
|
describe('isType.f()', () => {
|
|
69
71
|
test('accept false type but not true or boolean', () => {
|
|
70
72
|
expect(isType.f()).toBe(true);
|
|
71
73
|
expect(isType.f()).toBe(true);
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
//
|
|
74
|
+
// @ts-expect-error
|
|
75
|
+
isType.f();
|
|
76
|
+
// @ts-expect-error
|
|
77
|
+
isType.f();
|
|
75
78
|
});
|
|
76
79
|
test('accept value with type true but not false or boolean', () => {
|
|
77
80
|
expect(isType.f(false)).toBe(true);
|
|
78
|
-
//
|
|
79
|
-
|
|
80
|
-
//
|
|
81
|
+
// @ts-expect-error
|
|
82
|
+
isType.f(true);
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
isType.f(1 !== 1);
|
|
81
85
|
});
|
|
82
86
|
});
|
|
83
87
|
describe('isType.equal()', () => {
|