firetender 0.9.4 → 0.9.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.
|
@@ -16,17 +16,18 @@ export declare class FiretenderCollection<SchemaType extends z.SomeZodObject> {
|
|
|
16
16
|
readonly firestore: Firestore;
|
|
17
17
|
/** The collection path of this object: a series of collection names */
|
|
18
18
|
readonly collectionPath: string[];
|
|
19
|
-
/**
|
|
20
|
-
readonly
|
|
19
|
+
/** Function to return the initial values when creating a new document. */
|
|
20
|
+
readonly baseInitialDataFactory: (() => DeepPartial<z.input<SchemaType>>) | undefined;
|
|
21
21
|
/**
|
|
22
22
|
* @param schema the Zod object schema describing the documents in this
|
|
23
23
|
* collection.
|
|
24
24
|
* @param firestore the thing you get from getFirestore().
|
|
25
25
|
* @param collectionPath the path of this collection in Firestore: the names
|
|
26
26
|
* of any parent collections and of this collection.
|
|
27
|
-
* @param baseInitialData (optional)
|
|
27
|
+
* @param baseInitialData (optional) an object or object factory providing
|
|
28
|
+
* default field values for this collection.
|
|
28
29
|
*/
|
|
29
|
-
constructor(schema: SchemaType, firestore: Firestore, collectionPath: [string, ...string[]] | string, baseInitialData?: DeepPartial<z.input<SchemaType>> | undefined);
|
|
30
|
+
constructor(schema: SchemaType, firestore: Firestore, collectionPath: [string, ...string[]] | string, baseInitialData?: (() => DeepPartial<z.input<SchemaType>>) | DeepPartial<z.input<SchemaType>> | undefined);
|
|
30
31
|
/**
|
|
31
32
|
* Returns a FiretenderDoc representing a new document in this collection.
|
|
32
33
|
*
|
|
@@ -18,14 +18,20 @@ class FiretenderCollection {
|
|
|
18
18
|
* @param firestore the thing you get from getFirestore().
|
|
19
19
|
* @param collectionPath the path of this collection in Firestore: the names
|
|
20
20
|
* of any parent collections and of this collection.
|
|
21
|
-
* @param baseInitialData (optional)
|
|
21
|
+
* @param baseInitialData (optional) an object or object factory providing
|
|
22
|
+
* default field values for this collection.
|
|
22
23
|
*/
|
|
23
24
|
constructor(schema, firestore, collectionPath, baseInitialData = undefined) {
|
|
24
25
|
this.schema = schema;
|
|
25
26
|
this.firestore = firestore;
|
|
26
27
|
this.collectionPath = [collectionPath].flat();
|
|
27
28
|
if (baseInitialData) {
|
|
28
|
-
|
|
29
|
+
if (typeof baseInitialData === "function") {
|
|
30
|
+
this.baseInitialDataFactory = baseInitialData;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.baseInitialDataFactory = () => baseInitialData;
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
@@ -52,8 +58,8 @@ class FiretenderCollection {
|
|
|
52
58
|
throw new errors_1.FiretenderUsageError("newDoc() requires an ID path for all collections and subcollections, except optionally the last.");
|
|
53
59
|
}
|
|
54
60
|
const data = {};
|
|
55
|
-
if (this.
|
|
56
|
-
Object.assign(data, this.
|
|
61
|
+
if (this.baseInitialDataFactory) {
|
|
62
|
+
Object.assign(data, this.baseInitialDataFactory());
|
|
57
63
|
}
|
|
58
64
|
if (initialData) {
|
|
59
65
|
Object.assign(data, initialData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiretenderCollection.js","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":";;;AAAA,kDAa4B;AAG5B,qCAAmE;AACnE,mDAAsE;AAGtE;;;;;;GAMG;AACH,MAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"FiretenderCollection.js","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "firetender",
|
|
3
3
|
"displayName": "Firetender",
|
|
4
4
|
"description": "Typescript wrapper for Firestore documents",
|
|
5
|
-
"version": "0.9.
|
|
5
|
+
"version": "0.9.5",
|
|
6
6
|
"author": "Jake Hartman",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://github.com/jakes-space/firetender",
|
|
@@ -35,8 +35,10 @@ export class FiretenderCollection<SchemaType extends z.SomeZodObject> {
|
|
|
35
35
|
/** The collection path of this object: a series of collection names */
|
|
36
36
|
readonly collectionPath: string[];
|
|
37
37
|
|
|
38
|
-
/**
|
|
39
|
-
readonly
|
|
38
|
+
/** Function to return the initial values when creating a new document. */
|
|
39
|
+
readonly baseInitialDataFactory:
|
|
40
|
+
| (() => DeepPartial<z.input<SchemaType>>)
|
|
41
|
+
| undefined;
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* @param schema the Zod object schema describing the documents in this
|
|
@@ -44,19 +46,27 @@ export class FiretenderCollection<SchemaType extends z.SomeZodObject> {
|
|
|
44
46
|
* @param firestore the thing you get from getFirestore().
|
|
45
47
|
* @param collectionPath the path of this collection in Firestore: the names
|
|
46
48
|
* of any parent collections and of this collection.
|
|
47
|
-
* @param baseInitialData (optional)
|
|
49
|
+
* @param baseInitialData (optional) an object or object factory providing
|
|
50
|
+
* default field values for this collection.
|
|
48
51
|
*/
|
|
49
52
|
constructor(
|
|
50
53
|
schema: SchemaType,
|
|
51
54
|
firestore: Firestore,
|
|
52
55
|
collectionPath: [string, ...string[]] | string,
|
|
53
|
-
baseInitialData:
|
|
56
|
+
baseInitialData:
|
|
57
|
+
| (() => DeepPartial<z.input<SchemaType>>)
|
|
58
|
+
| DeepPartial<z.input<SchemaType>>
|
|
59
|
+
| undefined = undefined
|
|
54
60
|
) {
|
|
55
61
|
this.schema = schema;
|
|
56
62
|
this.firestore = firestore;
|
|
57
63
|
this.collectionPath = [collectionPath].flat();
|
|
58
64
|
if (baseInitialData) {
|
|
59
|
-
|
|
65
|
+
if (typeof baseInitialData === "function") {
|
|
66
|
+
this.baseInitialDataFactory = baseInitialData;
|
|
67
|
+
} else {
|
|
68
|
+
this.baseInitialDataFactory = () => baseInitialData;
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
71
|
}
|
|
62
72
|
|
|
@@ -91,8 +101,8 @@ export class FiretenderCollection<SchemaType extends z.SomeZodObject> {
|
|
|
91
101
|
);
|
|
92
102
|
}
|
|
93
103
|
const data = {};
|
|
94
|
-
if (this.
|
|
95
|
-
Object.assign(data, this.
|
|
104
|
+
if (this.baseInitialDataFactory) {
|
|
105
|
+
Object.assign(data, this.baseInitialDataFactory());
|
|
96
106
|
}
|
|
97
107
|
if (initialData) {
|
|
98
108
|
Object.assign(data, initialData);
|