@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 +2 -2
- package/dist/index.js +9 -9
- package/dist/utils.d.ts +7 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
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
|
|
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.
|
|
5
|
-
"packageManager": "bun@1.
|
|
4
|
+
"version": "1.1.5",
|
|
5
|
+
"packageManager": "bun@1.3.6",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": {
|