@aklinker1/zero-factory 0.1.4 → 1.0.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 +17 -10
- package/dist/utils.d.ts +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -95,6 +95,23 @@ const user = userFactory({
|
|
|
95
95
|
// }
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
+
> [!IMPORTANT]
|
|
99
|
+
> Arrays are not deeply merged. If a property is an array, overrides will fully replace it, like any other value.
|
|
100
|
+
|
|
101
|
+
#### Many
|
|
102
|
+
|
|
103
|
+
You can generate multiple objects using `factory.many(...)`. This method will return an array of objects.
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
userFactory.many(2, { username: "override" })
|
|
107
|
+
// [
|
|
108
|
+
// { usenrame: "override", ... }
|
|
109
|
+
// { usenrame: "override", ... }
|
|
110
|
+
// ]
|
|
111
|
+
````
|
|
112
|
+
|
|
113
|
+
Overridden fields apply to all the returned objects.
|
|
114
|
+
|
|
98
115
|
#### Traits
|
|
99
116
|
|
|
100
117
|
If there are common variants or "traits" of an object you want to be able to generate, use `factory.trait(...)`:
|
|
@@ -229,16 +246,6 @@ intSequence(); // "prefix-2"
|
|
|
229
246
|
|
|
230
247
|
May or may not implement these.
|
|
231
248
|
|
|
232
|
-
- Generate multiple items:
|
|
233
|
-
```ts
|
|
234
|
-
userFactory.many(4, { username: "override" });
|
|
235
|
-
// [
|
|
236
|
-
// { id: "user-0", username: "override", ... },
|
|
237
|
-
// { id: "user-1", username: "override", ... },
|
|
238
|
-
// { id: "user-2", username: "override", ... },
|
|
239
|
-
// { id: "user-3", username: "override", ... },
|
|
240
|
-
// ]
|
|
241
|
-
```
|
|
242
249
|
- Associations:
|
|
243
250
|
|
|
244
251
|
```ts
|
package/dist/utils.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type DeepPartial<T> = T extends Array<any> ? T : T extends Record<string,
|
|
|
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
|
-
export type FactoryDefaults<T
|
|
12
|
-
[
|
|
13
|
-
}
|
|
11
|
+
export type FactoryDefaults<T extends Record<string, any>> = {
|
|
12
|
+
[Key in keyof T]: T[Key] extends Array<any> ? T[Key] | (() => T[Key]) : T[Key] extends Record<string, any> ? FactoryDefaults<T[Key]> : T[Key] extends Function ? never : T[Key] | (() => T[Key]);
|
|
13
|
+
};
|
|
14
14
|
export declare function resolveDefaults<T extends Record<string, any>>(val: FactoryDefaults<T>): T;
|