type-plus 5.5.1 → 5.6.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 CHANGED
@@ -558,7 +558,8 @@ nominalMatch(b1, b2) // false
558
558
  - `AnyFunction<P, R>`: a generic type for any function
559
559
  - `ExtractFunction<F>`: extract the function signature from a type `F`.
560
560
  - `extractFunction(fn: F)`: adjust type of `fn` to its function signature only.
561
- - `inspect<T>(value: T, inspector: (v: T) => void)`: inspect a value and return it.
561
+ - `inspect<T>(value: T, inspector?: (v: T) => void)`: inspect a value and return it.\
562
+ Inspector defaults to `console.dir()`
562
563
 
563
564
  ## Functional Types
564
565
 
@@ -5,6 +5,9 @@ export declare namespace stub {
5
5
  }
6
6
  export declare function stub<T>(stub?: stub.Param<T>): T;
7
7
  export declare namespace stub {
8
- var build: <T>(init?: Param<T> | undefined) => (value?: Param<T> | undefined) => T;
8
+ var build: {
9
+ <T>(): (stub?: Param<T> | undefined) => T;
10
+ <T_1>(init: RecursivePartial<T_1> | (() => RecursivePartial<T_1>)): (stub?: RecursivePartial<T_1> | undefined) => T_1;
11
+ };
9
12
  }
10
13
  //# sourceMappingURL=stub.d.ts.map
@@ -6,14 +6,13 @@ function stub(stub) {
6
6
  return stub;
7
7
  }
8
8
  exports.stub = stub;
9
- /**
10
- * builds a stub function
11
- */
12
- stub.build = function build(init) {
9
+ function build(init) {
13
10
  return function (value) {
14
- return init
15
- ? stub((0, unpartial_1.requiredDeep)(init, value))
11
+ var initValue = typeof init === 'function' ? init() : init;
12
+ return initValue
13
+ ? stub((0, unpartial_1.requiredDeep)(initValue, value))
16
14
  : stub(value);
17
15
  };
18
- };
16
+ }
17
+ stub.build = build;
19
18
  //# sourceMappingURL=stub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AAQxC,SAAgB,IAAI,CAAI,IAAoB;IAC1C,OAAO,IAAS,CAAA;AAClB,CAAC;AAFD,oBAEC;AAED;;GAEG;AACH,IAAI,CAAC,KAAK,GAAG,SAAS,KAAK,CAAI,IAAoB;IACjD,OAAO,UAAU,KAAqB;QACpC,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,CAAI,IAAA,wBAAY,EAAC,IAAW,EAAE,KAAY,CAAQ,CAAC;YACzD,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AAQxC,SAAgB,IAAI,CAAI,IAAoB;IAC1C,OAAO,IAAS,CAAA;AAClB,CAAC;AAFD,oBAEC;AAOD,SAAS,KAAK,CAAI,IAAwD;IACxE,OAAO,UAAU,KAAqB;QACpC,IAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS;YACd,CAAC,CAAC,IAAI,CAAI,IAAA,wBAAY,EAAC,SAAS,EAAE,KAAK,CAAQ,CAAC;YAChD,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA"}
@@ -44,5 +44,11 @@ describe('stub.build()', function () {
44
44
  expect(a).toEqual({ a: 1, b: 'b' });
45
45
  index_js_1.isType.equal();
46
46
  });
47
+ it('accepts a init function', function () {
48
+ var count = 0;
49
+ var s = index_js_1.stub.build(function () { return ({ a: count++ }); });
50
+ expect(s()).toEqual({ a: 0 });
51
+ expect(s()).toEqual({ a: 1 });
52
+ });
47
53
  });
48
54
  //# sourceMappingURL=stub.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub.spec.js","sourceRoot":"","sources":["../../ts/testing/stub.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stub.spec.js","sourceRoot":"","sources":["../../ts/testing/stub.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Inspects the value and returns it.
3
3
  */
4
- export declare function inspect<T>(value: T, inspector: (value: Readonly<T>) => void): T;
4
+ export declare function inspect<T>(value: T, inspector?: (value: Readonly<T>) => void): T;
5
5
  //# sourceMappingURL=inspect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAG/E"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,GAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAkB,GAAG,CAAC,CAG7F"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
+ /* eslint-disable no-console */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.inspect = void 0;
4
5
  /**
5
6
  * Inspects the value and returns it.
6
7
  */
7
8
  function inspect(value, inspector) {
9
+ if (inspector === void 0) { inspector = console.dir; }
8
10
  inspector(value);
9
11
  return value;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,OAAO,CAAI,KAAQ,EAAE,SAAuC;IAC1E,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,0BAGC"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B;;GAEG;AACH,SAAgB,OAAO,CAAI,KAAQ,EAAE,SAAqD;IAArD,0BAAA,EAAA,YAA0C,OAAO,CAAC,GAAG;IACxF,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,0BAGC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable no-console */
3
4
  var globals_1 = require("@jest/globals");
4
5
  var index_js_1 = require("./index.js");
5
6
  describe("".concat(index_js_1.inspect.name, "()"), function () {
@@ -13,5 +14,13 @@ describe("".concat(index_js_1.inspect.name, "()"), function () {
13
14
  (0, index_js_1.inspect)(value, spy);
14
15
  expect(spy).toBeCalledWith(value);
15
16
  });
17
+ it('defaults to console.dir', function () {
18
+ var value = { a: 1, b: 2 };
19
+ var dir = console.dir;
20
+ console.dir = globals_1.jest.fn();
21
+ (0, index_js_1.inspect)(value);
22
+ expect(console.dir).toBeCalledWith(value);
23
+ console.dir = dir;
24
+ });
16
25
  });
17
26
  //# sourceMappingURL=inspect.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.spec.js","sourceRoot":"","sources":["../../ts/utils/inspect.spec.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,uCAAoC;AAEpC,QAAQ,CAAC,UAAG,kBAAO,CAAC,IAAI,OAAI,EAAE;IAC5B,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,CAAC,IAAA,kBAAO,EAAC,KAAK,EAAE,cAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2BAA2B,EAAE;QAC9B,IAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,IAAM,GAAG,GAAG,cAAI,CAAC,EAAE,EAAE,CAAA;QACrB,IAAA,kBAAO,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"inspect.spec.js","sourceRoot":"","sources":["../../ts/utils/inspect.spec.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,yCAAoC;AACpC,uCAAoC;AAEpC,QAAQ,CAAC,UAAG,kBAAO,CAAC,IAAI,OAAI,EAAE;IAC5B,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,CAAC,IAAA,kBAAO,EAAC,KAAK,EAAE,cAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2BAA2B,EAAE;QAC9B,IAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,IAAM,GAAG,GAAG,cAAI,CAAC,EAAE,EAAE,CAAA;QACrB,IAAA,kBAAO,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,yBAAyB,EAAE;QAC5B,IAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACvB,OAAO,CAAC,GAAG,GAAG,cAAI,CAAC,EAAE,EAAE,CAAA;QACvB,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAA;QACd,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -5,6 +5,9 @@ export declare namespace stub {
5
5
  }
6
6
  export declare function stub<T>(stub?: stub.Param<T>): T;
7
7
  export declare namespace stub {
8
- var build: <T>(init?: Param<T> | undefined) => (value?: Param<T> | undefined) => T;
8
+ var build: {
9
+ <T>(): (stub?: Param<T> | undefined) => T;
10
+ <T_1>(init: RecursivePartial<T_1> | (() => RecursivePartial<T_1>)): (stub?: RecursivePartial<T_1> | undefined) => T_1;
11
+ };
9
12
  }
10
13
  //# sourceMappingURL=stub.d.ts.map
@@ -2,14 +2,13 @@ import { requiredDeep } from 'unpartial';
2
2
  export function stub(stub) {
3
3
  return stub;
4
4
  }
5
- /**
6
- * builds a stub function
7
- */
8
- stub.build = function build(init) {
5
+ function build(init) {
9
6
  return function (value) {
10
- return init
11
- ? stub(requiredDeep(init, value))
7
+ const initValue = typeof init === 'function' ? init() : init;
8
+ return initValue
9
+ ? stub(requiredDeep(initValue, value))
12
10
  : stub(value);
13
11
  };
14
- };
12
+ }
13
+ stub.build = build;
15
14
  //# sourceMappingURL=stub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAQxC,MAAM,UAAU,IAAI,CAAI,IAAoB;IAC1C,OAAO,IAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,IAAI,CAAC,KAAK,GAAG,SAAS,KAAK,CAAI,IAAoB;IACjD,OAAO,UAAU,KAAqB;QACpC,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,CAAI,YAAY,CAAC,IAAW,EAAE,KAAY,CAAQ,CAAC;YACzD,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAQxC,MAAM,UAAU,IAAI,CAAI,IAAoB;IAC1C,OAAO,IAAS,CAAA;AAClB,CAAC;AAOD,SAAS,KAAK,CAAI,IAAwD;IACxE,OAAO,UAAU,KAAqB;QACpC,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC5D,OAAO,SAAS;YACd,CAAC,CAAC,IAAI,CAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAQ,CAAC;YAChD,CAAC,CAAC,IAAI,CAAI,KAAK,CAAC,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA"}
@@ -42,5 +42,11 @@ describe('stub.build()', () => {
42
42
  expect(a).toEqual({ a: 1, b: 'b' });
43
43
  isType.equal();
44
44
  });
45
+ it('accepts a init function', () => {
46
+ let count = 0;
47
+ const s = stub.build(() => ({ a: count++ }));
48
+ expect(s()).toEqual({ a: 0 });
49
+ expect(s()).toEqual({ a: 1 });
50
+ });
45
51
  });
46
52
  //# sourceMappingURL=stub.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub.spec.js","sourceRoot":"","sources":["../../ts/testing/stub.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stub.spec.js","sourceRoot":"","sources":["../../ts/testing/stub.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Inspects the value and returns it.
3
3
  */
4
- export declare function inspect<T>(value: T, inspector: (value: Readonly<T>) => void): T;
4
+ export declare function inspect<T>(value: T, inspector?: (value: Readonly<T>) => void): T;
5
5
  //# sourceMappingURL=inspect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAG/E"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,GAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAkB,GAAG,CAAC,CAG7F"}
@@ -1,7 +1,8 @@
1
+ /* eslint-disable no-console */
1
2
  /**
2
3
  * Inspects the value and returns it.
3
4
  */
4
- export function inspect(value, inspector) {
5
+ export function inspect(value, inspector = console.dir) {
5
6
  inspector(value);
6
7
  return value;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ,EAAE,SAAuC;IAC1E,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../ts/utils/inspect.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B;;GAEG;AACH,MAAM,UAAU,OAAO,CAAI,KAAQ,EAAE,YAA0C,OAAO,CAAC,GAAG;IACxF,SAAS,CAAC,KAAK,CAAC,CAAA;IAChB,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-console */
1
2
  import { jest } from '@jest/globals';
2
3
  import { inspect } from './index.js';
3
4
  describe(`${inspect.name}()`, () => {
@@ -11,5 +12,13 @@ describe(`${inspect.name}()`, () => {
11
12
  inspect(value, spy);
12
13
  expect(spy).toBeCalledWith(value);
13
14
  });
15
+ it('defaults to console.dir', () => {
16
+ const value = { a: 1, b: 2 };
17
+ const dir = console.dir;
18
+ console.dir = jest.fn();
19
+ inspect(value);
20
+ expect(console.dir).toBeCalledWith(value);
21
+ console.dir = dir;
22
+ });
14
23
  });
15
24
  //# sourceMappingURL=inspect.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.spec.js","sourceRoot":"","sources":["../../ts/utils/inspect.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"inspect.spec.js","sourceRoot":"","sources":["../../ts/utils/inspect.spec.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACvB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACvB,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-plus",
3
- "version": "5.5.1",
3
+ "version": "5.6.0",
4
4
  "description": "Provides additional types for TypeScript.",
5
5
  "homepage": "https://github.com/unional/type-plus",
6
6
  "bugs": {
@@ -69,7 +69,7 @@
69
69
  "typedoc-plugin-extras": "^2.2.3",
70
70
  "typescript": "^4.9.4"
71
71
  },
72
- "packageManager": "pnpm@7.25.0",
72
+ "packageManager": "pnpm@7.25.1",
73
73
  "size-limit": [
74
74
  {
75
75
  "path": "./cjs/index.js",
@@ -13,10 +13,15 @@ export function stub<T>(stub?: stub.Param<T>) {
13
13
  /**
14
14
  * builds a stub function
15
15
  */
16
- stub.build = function build<T>(init?: stub.Param<T>) {
16
+ function build<T>(): (stub?: stub.Param<T>) => T
17
+ function build<T>(init: RecursivePartial<T> | (() => RecursivePartial<T>)): (stub?: RecursivePartial<T>) => T
18
+ function build<T>(init?: RecursivePartial<T> | (() => RecursivePartial<T>)) {
17
19
  return function (value?: stub.Param<T>) {
18
- return init
19
- ? stub<T>(requiredDeep(init as any, value as any) as any)
20
+ const initValue = typeof init === 'function' ? init() : init
21
+ return initValue
22
+ ? stub<T>(requiredDeep(initValue, value) as any)
20
23
  : stub<T>(value)
21
24
  }
22
25
  }
26
+
27
+ stub.build = build
@@ -1,7 +1,9 @@
1
+ /* eslint-disable no-console */
2
+
1
3
  /**
2
4
  * Inspects the value and returns it.
3
5
  */
4
- export function inspect<T>(value: T, inspector: (value: Readonly<T>) => void): T {
6
+ export function inspect<T>(value: T, inspector: (value: Readonly<T>) => void = console.dir): T {
5
7
  inspector(value)
6
8
  return value
7
9
  }