type-plus 5.2.0 → 5.4.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 +18 -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.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/functional/context.d.ts +36 -0
- package/cjs/functional/context.d.ts.map +1 -0
- package/cjs/functional/context.js +43 -0
- package/cjs/functional/context.js.map +1 -0
- package/cjs/functional/context.spec.d.ts +2 -0
- package/cjs/functional/context.spec.d.ts.map +1 -0
- package/cjs/functional/context.spec.js +39 -0
- package/cjs/functional/context.spec.js.map +1 -0
- package/cjs/functional/index.d.ts +1 -0
- package/cjs/functional/index.d.ts.map +1 -1
- package/cjs/functional/index.js +1 -0
- package/cjs/functional/index.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.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/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.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/functional/context.d.ts +36 -0
- package/esm/functional/context.d.ts.map +1 -0
- package/esm/functional/context.js +28 -0
- package/esm/functional/context.js.map +1 -0
- package/esm/functional/context.spec.d.ts +2 -0
- package/esm/functional/context.spec.d.ts.map +1 -0
- package/esm/functional/context.spec.js +37 -0
- package/esm/functional/context.spec.js.map +1 -0
- package/esm/functional/index.d.ts +1 -0
- package/esm/functional/index.d.ts.map +1 -1
- package/esm/functional/index.js +1 -0
- package/esm/functional/index.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.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/package.json +2 -2
- 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/functional/context.ts +69 -0
- package/ts/functional/index.ts +1 -0
- 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
|
@@ -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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { LeftJoin } from '../object/index.js';
|
|
2
|
+
export type ContextBaseShape = Record<string | symbol, any>;
|
|
3
|
+
/**
|
|
4
|
+
* Extends the context with new props.
|
|
5
|
+
* @param context the current context.
|
|
6
|
+
* @return an additional context with new properties.
|
|
7
|
+
*/
|
|
8
|
+
export type ContextExtender<Current, Additional> = (context: Current) => Additional;
|
|
9
|
+
export type ContextBuilder<Init extends ContextBaseShape, Ctx extends ContextBaseShape> = {
|
|
10
|
+
/**
|
|
11
|
+
* Extends the context using an extender.
|
|
12
|
+
* @param extender function that add new props to the context.
|
|
13
|
+
*
|
|
14
|
+
* The extender only need to return a new object with new properties.
|
|
15
|
+
*
|
|
16
|
+
* Do not need to merge the existing context with the new props.
|
|
17
|
+
* The builder will do that for you.
|
|
18
|
+
*/
|
|
19
|
+
extend<Current extends ContextBaseShape = Ctx, Additional extends ContextBaseShape = ContextBaseShape>(extender: ContextExtender<Current, Additional>): ContextBuilder<Init, LeftJoin<Current, Additional>>;
|
|
20
|
+
/**
|
|
21
|
+
* Build and return the context.
|
|
22
|
+
*/
|
|
23
|
+
build(): Ctx;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A fluent context builder.
|
|
27
|
+
*
|
|
28
|
+
* The initializer and transformer
|
|
29
|
+
*
|
|
30
|
+
* @param init The initial context or an context initializer.
|
|
31
|
+
* @return the context builder where you can
|
|
32
|
+
* use `extend()` to add context, and
|
|
33
|
+
* use `build()` to build the context.
|
|
34
|
+
*/
|
|
35
|
+
export declare function context<Init extends ContextBaseShape, Ctx extends ContextBaseShape = Init>(init?: Init | (() => Init)): ContextBuilder<Init, Ctx>;
|
|
36
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../ts/functional/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAA;AAE3D;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,OAAO,EACP,UAAU,IACR,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAA;AAEpC,MAAM,MAAM,cAAc,CACxB,IAAI,SAAS,gBAAgB,EAC7B,GAAG,SAAS,gBAAgB,IAC1B;IACF;;;;;;;;OAQG;IACH,MAAM,CACJ,OAAO,SAAS,gBAAgB,GAAG,GAAG,EACtC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtD,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,GAC5C,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD;;OAEG;IACH,KAAK,IAAI,GAAG,CAAA;CACb,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,IAAI,SAAS,gBAAgB,EAC7B,GAAG,SAAS,gBAAgB,GAAG,IAAI,EACnC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAKvD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A fluent context builder.
|
|
3
|
+
*
|
|
4
|
+
* The initializer and transformer
|
|
5
|
+
*
|
|
6
|
+
* @param init The initial context or an context initializer.
|
|
7
|
+
* @return the context builder where you can
|
|
8
|
+
* use `extend()` to add context, and
|
|
9
|
+
* use `build()` to build the context.
|
|
10
|
+
*/
|
|
11
|
+
export function context(init) {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
13
|
+
return typeof init === 'function'
|
|
14
|
+
? contextBuilder({}, [init])
|
|
15
|
+
: contextBuilder(init ?? {}, []);
|
|
16
|
+
}
|
|
17
|
+
function contextBuilder(init, transformers) {
|
|
18
|
+
return {
|
|
19
|
+
extend(transformer) {
|
|
20
|
+
return contextBuilder(init, transformers.concat(transformer));
|
|
21
|
+
},
|
|
22
|
+
build() {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
24
|
+
return transformers.reduce((p, t) => ({ ...p, ...t(p) }), init);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../ts/functional/context.ts"],"names":[],"mappings":"AAsCA;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAGrB,IAA0B;IAC1B,+DAA+D;IAC/D,OAAO,OAAO,IAAI,KAAK,UAAU;QAC/B,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAQ,CAAA;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB,EAAE,YAAyC;IACvF,OAAO;QACL,MAAM,CAAC,WAAsC;YAC3C,OAAO,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;QAC/D,CAAC;QACD,KAAK;YACH,+DAA+D;YAC/D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACjE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.spec.d.ts","sourceRoot":"","sources":["../../ts/functional/context.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { context, isType } from '../index.js';
|
|
2
|
+
describe(`${context.name}()`, () => {
|
|
3
|
+
it('allows no param', () => {
|
|
4
|
+
const r = context().build();
|
|
5
|
+
expect(r).toEqual({});
|
|
6
|
+
});
|
|
7
|
+
it('accepts an initial context value', () => {
|
|
8
|
+
const r = context({ a: 1 }).build();
|
|
9
|
+
isType.equal();
|
|
10
|
+
expect(r).toEqual({ a: 1 });
|
|
11
|
+
});
|
|
12
|
+
it('accepts an initializer', () => {
|
|
13
|
+
const r = context(() => ({ a: 1 })).build();
|
|
14
|
+
isType.equal();
|
|
15
|
+
expect(r).toEqual({ a: 1 });
|
|
16
|
+
});
|
|
17
|
+
it('accepts transformer expecting Init', () => {
|
|
18
|
+
const r = context({ a: 1 })
|
|
19
|
+
.extend(ctx => {
|
|
20
|
+
isType.equal();
|
|
21
|
+
expect(ctx).toEqual({ a: 1 });
|
|
22
|
+
return { b: ctx.a + 1 };
|
|
23
|
+
})
|
|
24
|
+
.build();
|
|
25
|
+
isType.equal();
|
|
26
|
+
expect(r).toEqual({ a: 1, b: 2 });
|
|
27
|
+
});
|
|
28
|
+
it('provides the combined context to the next transformer', () => {
|
|
29
|
+
const r = context({ a: 1 })
|
|
30
|
+
.extend(ctx => ({ b: ctx.a + 1 }))
|
|
31
|
+
.extend(ctx => ({ c: ctx.a + ctx.b }))
|
|
32
|
+
.build();
|
|
33
|
+
isType.equal();
|
|
34
|
+
expect(r).toEqual({ a: 1, b: 2, c: 3 });
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=context.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.spec.js","sourceRoot":"","sources":["../../ts/functional/context.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAE7C,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC,KAAK,EAAE,CAAA;QAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACnC,MAAM,CAAC,KAAK,EAAiC,CAAA;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;QAC3C,MAAM,CAAC,KAAK,EAAiC,CAAA;QAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACxB,MAAM,CAAC,GAAG,CAAC,EAAE;YACZ,MAAM,CAAC,KAAK,EAAmC,CAAA;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;QACzB,CAAC,CAAC;aACD,KAAK,EAAE,CAAA;QAEV,MAAM,CAAC,KAAK,EAA4C,CAAA;QACxD,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACxB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACjC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;aACrC,KAAK,EAAE,CAAA;QAEV,MAAM,CAAC,KAAK,EAAuD,CAAA;QACnE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/functional/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACnD,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/functional/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACnD,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
package/esm/functional/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/functional/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/functional/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAC5B,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"}
|
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()', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isType.spec.js","sourceRoot":"","sources":["../../ts/predicates/isType.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,EAAE,MAAM,aAAa,CAAA;AAEvD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAA;YACvC,IAAI,MAAM,CAAW,OAAO,CAAC,EAAE;gBAC7B,UAAU,CAAW,OAAO,CAAC,CAAA;aAC9B;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,IAAI,MAAM,CAAK,CAAC,CAAC,EAAE;gBACjB,UAAU,CAAK,CAAC,CAAC,CAAA;aAClB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,GAAY,KAAK,CAAA;YACxB,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;gBACnD,UAAU,CAAU,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,GAAY,KAAK,CAAA;YACxB,IAAI,MAAM,CAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;gBACjD,UAAU,CAAU,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,GAAoB,CAAC,CAAA;YAC5B,IAAI,MAAM,CAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE;gBACjD,UAAU,CAAS,CAAC,CAAC,CAAA;aACtB;iBACI;gBACH,UAAU,CAAS,CAAC,CAAC,CAAA;aACtB;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,GAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;YACvB,IAAI,MAAM,CAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtC,UAAU,CAAgB,CAAC,CAAC,CAAA;aAC7B;iBACI;gBACH,UAAU,CAAS,CAAC,CAAC,CAAA;aACtB;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,GAAQ,KAAK,CAAA;YACpB,IAAI,MAAM,CAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;gBACjD,UAAU,CAAU,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1C,
|
|
1
|
+
{"version":3,"file":"isType.spec.js","sourceRoot":"","sources":["../../ts/predicates/isType.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type And<A extends boolean, B extends boolean> = A extends true ? B extends true ?
|
|
2
|
-
export type Or<A extends boolean, B extends boolean> = A extends true ?
|
|
3
|
-
export type Not<X extends boolean> = X extends true ?
|
|
4
|
-
export type Xor<A extends boolean, B extends boolean> = A extends
|
|
1
|
+
export type And<A extends boolean, B extends boolean, Then = true, Else = false> = A extends true ? B extends true ? Then : Else : Else;
|
|
2
|
+
export type Or<A extends boolean, B extends boolean, Then = true, Else = false> = A extends true ? Then : B extends true ? Then : Else;
|
|
3
|
+
export type Not<X extends boolean, Then = true, Else = false> = X extends true ? Else : Then;
|
|
4
|
+
export type Xor<A extends boolean, B extends boolean, Then = true, Else = false> = A extends Then ? Not<B> : B extends true ? Then : Else;
|
|
5
5
|
//# sourceMappingURL=logical.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logical.d.ts","sourceRoot":"","sources":["../../ts/predicates/logical.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"logical.d.ts","sourceRoot":"","sources":["../../ts/predicates/logical.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CACb,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,IACV,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAExD,MAAM,MAAM,EAAE,CACZ,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,IACV,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAExD,MAAM,MAAM,GAAG,CACb,CAAC,SAAS,OAAO,EACjB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,IACV,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhC,MAAM,MAAM,GAAG,CACb,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,IACV,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "type-plus",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Provides additional types for TypeScript.",
|
|
5
5
|
"homepage": "https://github.com/unional/type-plus",
|
|
6
6
|
"bugs": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"tslib": "^2.4.0",
|
|
68
68
|
"typedoc": "^0.23.0",
|
|
69
69
|
"typedoc-plugin-extras": "^2.2.3",
|
|
70
|
-
"typescript": "4.9.4"
|
|
70
|
+
"typescript": "^4.9.4"
|
|
71
71
|
},
|
|
72
72
|
"packageManager": "pnpm@7.25.0",
|
|
73
73
|
"size-limit": [
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gets the union of value types in `A`
|
|
3
|
-
*/
|
|
4
|
-
export type UnionOfValues<A extends Array<any>> = A extends Array<infer E> ? E : never
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Gets the union of value types in `A`
|
|
3
|
+
*/
|
|
4
|
+
export type UnionOfValues<A extends Array<any>> = A extends Array<infer E> ? E : never
|
|
5
|
+
|
|
6
|
+
// alternative implementation
|
|
7
|
+
// export type UnionOfValues<A extends readonly any[]> = (A)[number]
|
|
8
|
+
// from: https://twitter.com/anveio/status/1615140804816928769?s=20&t=wrudiqV94A11CSl19N6Viw
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Gets the union of value types in `A`
|
|
12
|
+
* @deprecated Please use `UnionOfValues` instead.
|
|
13
|
+
*/
|
|
14
|
+
export type ArrayValue<A extends any[]> = UnionOfValues<A>
|
package/ts/array/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { CommonKeys, CommonPropKeys } from './CommonPropKeys.js'
|
|
2
2
|
export type { Concat } from './Concat.js'
|
|
3
3
|
export type { CreateTuple } from './CreateTuple.js'
|
|
4
|
-
export * from './drop.js'
|
|
5
4
|
export type { Filter, KeepMatch } from './Filter.js'
|
|
6
5
|
export type { FindFirst, First } from './FindFirst.js'
|
|
7
6
|
export type { FindLast } from './FindLast.js'
|
|
@@ -9,12 +8,12 @@ export type { Head } from './Head.js'
|
|
|
9
8
|
export type { IntersectOfProps, MapToProp } from './IntersectOfProps.js'
|
|
10
9
|
export type { IsArray } from './IsArray.js'
|
|
11
10
|
export type { Last } from './Last.js'
|
|
12
|
-
export * from './literalArray.js'
|
|
13
11
|
export type { PadLeft } from './PadLeft.js'
|
|
14
|
-
export * from './reduceWhile.js'
|
|
15
12
|
export type { Reverse } from './Reverse.js'
|
|
16
13
|
export type { Some } from './Some.js'
|
|
17
14
|
export type { Tail } from './Tail.js'
|
|
18
15
|
export type { PropUnion, UnionOfProps } from './UnionOfProps.js'
|
|
19
16
|
export type { ArrayValue, UnionOfValues } from './UnionOfValues.js'
|
|
20
|
-
|
|
17
|
+
export * from './drop.js'
|
|
18
|
+
export * from './literalArray.js'
|
|
19
|
+
export * from './reduceWhile.js'
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import { AnyFunction } from './AnyFunction.js'
|
|
1
|
+
import type { AnyFunction } from './AnyFunction.js'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Extract the function signature from a
|
|
4
|
+
* Extract the function signature from a composite type T.
|
|
5
5
|
*
|
|
6
|
+
* It works with interact of functions, but not on function overloads and union.
|
|
6
7
|
* @note does not work with function overloads.
|
|
7
8
|
*/
|
|
8
9
|
export type ExtractFunction<T extends AnyFunction> = T extends AnyFunction<infer P, infer R>
|
|
9
10
|
? (...args: P) => R : never
|
|
10
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Extract the function signature from a composite function.
|
|
14
|
+
*
|
|
15
|
+
* @note does not work with function overloads.
|
|
16
|
+
*/
|
|
11
17
|
export function extractFunction<T extends AnyFunction>(fn: T) {
|
|
12
18
|
return fn as any as ExtractFunction<T>
|
|
13
19
|
}
|