@aklinker1/zero-factory 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export type { DeepPartial } from "./utils";
2
- export * from "./sequences";
3
1
  export * from "./factories";
2
+ export * from "./sequences";
3
+ export type { DeepPartial } from "./utils";
package/dist/index.js CHANGED
@@ -1,12 +1,3 @@
1
- // src/sequences.ts
2
- function createSequence(arg) {
3
- if (!arg)
4
- return createSequence((i2) => i2);
5
- if (typeof arg === "string")
6
- return createSequence((i2) => `${arg}${i2}`);
7
- let i = 0;
8
- return () => arg(i++);
9
- }
10
1
  // src/utils.ts
11
2
  function deepMerge(base, overrides) {
12
3
  if (!isMergeable(overrides))
@@ -95,6 +86,15 @@ function generateObject(defaults, overrides) {
95
86
  function generateManyObjects(count, defaults, overrides) {
96
87
  return Array.from({ length: count }, () => generateObject(defaults, overrides));
97
88
  }
89
+ // src/sequences.ts
90
+ function createSequence(arg) {
91
+ if (!arg)
92
+ return createSequence((i2) => i2);
93
+ if (typeof arg === "string")
94
+ return createSequence((i2) => `${arg}${i2}`);
95
+ let i = 0;
96
+ return () => arg(i++);
97
+ }
98
98
  export {
99
99
  createSequence,
100
100
  createFactory
package/dist/utils.d.ts CHANGED
@@ -8,7 +8,13 @@ export type DeepPartial<T> = T extends any[] | Date ? T : T extends Record<strin
8
8
  * Deep merge objects, not arrays. Only override values with `null`, `undefined` does not override the base value.
9
9
  */
10
10
  export declare function deepMerge<T>(base: T, overrides: DeepPartial<T>): T;
11
+ /**
12
+ * List of types used by {@link FactoryDefaults} to "stop" the recursion and
13
+ * return `T | (() => T)` for. Runtime checks for this list happen in
14
+ * {@link isMergeable}.
15
+ */
16
+ export type NonMergeableValue = any[] | Date | string | boolean | number | null | undefined;
11
17
  export type FactoryDefaults<T extends Record<string, any>> = {
12
- [Key in keyof T]: T[Key] extends any[] | Date ? T[Key] | (() => T[Key]) : T[Key] extends Record<string, any> ? FactoryDefaults<T[Key]> : T[Key] extends Function ? never : T[Key] | (() => T[Key]);
18
+ [Key in keyof T]: T[Key] extends NonMergeableValue ? T[Key] | (() => T[Key]) : T[Key] extends Record<string, any> ? FactoryDefaults<T[Key]> : never;
13
19
  };
14
20
  export declare function resolveDefaults<T extends Record<string, any>>(val: FactoryDefaults<T>): T;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@aklinker1/zero-factory",
3
3
  "description": "Zero dependency object factory generator for testing",
4
- "version": "1.1.3",
5
- "packageManager": "bun@1.2.20",
4
+ "version": "1.1.5",
5
+ "packageManager": "bun@1.3.6",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "repository": {