firetender-admin 0.15.2 → 0.16.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.
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { CollectionReference, DocumentReference, Firestore, QueryConstraint } from "./firestore-deps.js";
3
- import { FiretenderDoc, FiretenderDocOptions, Patcher } from "./FiretenderDoc.js";
3
+ import { AfterParse, BeforeParse, BeforeWrite, FiretenderDoc, FiretenderDocOptions } from "./FiretenderDoc.js";
4
4
  import { DeepPartial, DeepReadonly } from "./ts-helpers.js";
5
5
  /**
6
6
  * A representation of a Firestore collection or subcollection.
@@ -94,12 +94,11 @@ export declare class FiretenderCollection<SchemaType extends z.SomeZodObject> {
94
94
  /**
95
95
  * Adds a list of documents to this collection.
96
96
  *
97
- * @param entries a list of document data records, or [id, data] tuples. If
98
- * the document ID is omitted, Firestore will generate a random one.
97
+ * @param entries a list of [id, data] tuples.
99
98
  *
100
99
  * @returns a list of `FiretenderDoc` objects for the new entries.
101
100
  */
102
- createBatch(entries: [string | string[], DeepReadonly<z.input<SchemaType>>][]): Promise<FiretenderDoc<SchemaType>[]>;
101
+ createBatch(entries: [string[] | string, DeepReadonly<z.input<SchemaType>>][]): Promise<FiretenderDoc<SchemaType>[]>;
103
102
  /**
104
103
  * Deletes the specified documents from this collection.
105
104
  */
@@ -117,11 +116,32 @@ export declare class FiretenderCollection<SchemaType extends z.SomeZodObject> {
117
116
  */
118
117
  makeCollectionRef(id?: string[] | string | undefined): CollectionReference;
119
118
  /**
120
- * Convenience method to provide a single patcher function for this
121
- * collection's documents. Patchers can also be passed in the options
122
- * argument of this class's constructor.
119
+ * Adds a function that can modify the raw data of this collection's documents
120
+ * prior to parsing.
121
+ *
122
+ * `beforeParse` hooks can also be given in the options argument of the class
123
+ * constructor. They are executed first, followed by any hooks added with
124
+ * this method.
125
+ */
126
+ addBeforeParseHook(hook: BeforeParse): void;
127
+ /**
128
+ * Adds a function that can update the this collection's documents after they
129
+ * are read and parsed.
130
+ *
131
+ * `afterParse` hooks can also be given in the options argument of the class
132
+ * constructor. They are executed first, followed by any hooks added with
133
+ * this method.
134
+ */
135
+ addAfterParseHook(hook: AfterParse<SchemaType>): void;
136
+ /**
137
+ * Adds a function that can update the this collection's documents before they
138
+ * are written.
139
+ *
140
+ * `beforeWrite` hooks can also be given in the options argument of the class
141
+ * constructor. They are executed first, followed by any hooks added with
142
+ * this method.
123
143
  */
124
- patch(patcher: Patcher): void;
144
+ addBeforeWriteHook(hook: BeforeWrite<SchemaType>): void;
125
145
  /**
126
146
  * Builds a doc ref from the given IDs, or returns "undefined" if the IDs do
127
147
  * not correctly specify a doc path.
@@ -1 +1 @@
1
- {"version":3,"file":"FiretenderCollection.d.ts","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FiretenderCollection.d.ts","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":"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"}
@@ -163,8 +163,7 @@ export class FiretenderCollection {
163
163
  /**
164
164
  * Adds a list of documents to this collection.
165
165
  *
166
- * @param entries a list of document data records, or [id, data] tuples. If
167
- * the document ID is omitted, Firestore will generate a random one.
166
+ * @param entries a list of [id, data] tuples.
168
167
  *
169
168
  * @returns a list of `FiretenderDoc` objects for the new entries.
170
169
  */
@@ -242,16 +241,51 @@ export class FiretenderCollection {
242
241
  return ref;
243
242
  }
244
243
  /**
245
- * Convenience method to provide a single patcher function for this
246
- * collection's documents. Patchers can also be passed in the options
247
- * argument of this class's constructor.
244
+ * Adds a function that can modify the raw data of this collection's documents
245
+ * prior to parsing.
246
+ *
247
+ * `beforeParse` hooks can also be given in the options argument of the class
248
+ * constructor. They are executed first, followed by any hooks added with
249
+ * this method.
250
+ */
251
+ addBeforeParseHook(hook) {
252
+ if (!this.defaultDocOptions.beforeParse) {
253
+ this.defaultDocOptions.beforeParse = [hook];
254
+ }
255
+ else {
256
+ this.defaultDocOptions.beforeParse.push(hook);
257
+ }
258
+ }
259
+ /**
260
+ * Adds a function that can update the this collection's documents after they
261
+ * are read and parsed.
262
+ *
263
+ * `afterParse` hooks can also be given in the options argument of the class
264
+ * constructor. They are executed first, followed by any hooks added with
265
+ * this method.
266
+ */
267
+ addAfterParseHook(hook) {
268
+ if (!this.defaultDocOptions.afterParse) {
269
+ this.defaultDocOptions.afterParse = [hook];
270
+ }
271
+ else {
272
+ this.defaultDocOptions.afterParse.push(hook);
273
+ }
274
+ }
275
+ /**
276
+ * Adds a function that can update the this collection's documents before they
277
+ * are written.
278
+ *
279
+ * `beforeWrite` hooks can also be given in the options argument of the class
280
+ * constructor. They are executed first, followed by any hooks added with
281
+ * this method.
248
282
  */
249
- patch(patcher) {
250
- if (!this.defaultDocOptions.patchers) {
251
- this.defaultDocOptions.patchers = [patcher];
283
+ addBeforeWriteHook(hook) {
284
+ if (!this.defaultDocOptions.beforeWrite) {
285
+ this.defaultDocOptions.beforeWrite = [hook];
252
286
  }
253
287
  else {
254
- this.defaultDocOptions.patchers.push(patcher);
288
+ this.defaultDocOptions.beforeWrite.push(hook);
255
289
  }
256
290
  }
257
291
  //////////////////////////////////////////////////////////////////////////////
@@ -291,10 +325,9 @@ export class FiretenderCollection {
291
325
  addContextToError(error, "getDocs", query instanceof CollectionReference ? query : undefined);
292
326
  throw error;
293
327
  }
294
- return querySnapshot.docs.map((queryDoc) => new FiretenderDoc(this.schema, queryDoc.ref, {
328
+ return Promise.all(querySnapshot.docs.map((queryDoc) => new FiretenderDoc(this.schema, queryDoc.ref, {
295
329
  ...this.defaultDocOptions,
296
- rawData: queryDoc.data(),
297
- }));
330
+ }).loadRawData(queryDoc.data())));
298
331
  }
299
332
  }
300
333
  //# sourceMappingURL=FiretenderCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiretenderCollection.js","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FiretenderCollection.js","sourceRoot":"","sources":["../src/FiretenderCollection.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,68 @@
1
1
  import { z } from "zod";
2
2
  import { CollectionReference, DocumentReference, DocumentSnapshot } from "./firestore-deps.js";
3
- import { DeepReadonly } from "./ts-helpers.js";
4
- export type Patcher = (data: Record<string, any>) => boolean | void;
3
+ import type { AsyncOrSync, DeepReadonly } from "./ts-helpers.js";
4
+ export type BeforeParse = (data: Record<string, any>, docPath: string[]) => AsyncOrSync<void | boolean | "write-soon" | "write-now">;
5
+ export type AfterParse<SchemaType extends z.SomeZodObject> = (data: z.infer<SchemaType>, docPath: string[]) => AsyncOrSync<void | "write-soon" | "write-now">;
6
+ export type BeforeWrite<SchemaType extends z.SomeZodObject> = (data: z.infer<SchemaType>, docPath: string[]) => void;
5
7
  /**
6
8
  * Public options for initializing a FiretenderDoc object.
7
9
  */
8
10
  export type FiretenderDocOptions<SchemaType extends z.SomeZodObject> = {
9
11
  /**
10
12
  * If set, using the `.w` accessor or `.update()` method will throw an error
11
- * and any data patches will not be written.
13
+ * and changes made by hooks will not be written.
12
14
  */
13
15
  readonly?: boolean;
14
16
  /**
15
- * Hook to modify the document before it is written to Firestore.
17
+ * Functions to modify the data from Firestore before it is parsed by Zod.
18
+ * They are called in order, waiting for any asynchronous functions to
19
+ * complete before calling the next.
16
20
  *
17
- * For example, this hook could set a last-modified timestamp at every write.
21
+ * The function's return type indicates if/when changes should be written:
22
+ * - `false` or `undefined` - no changes that should be written were made.
23
+ * - `true` - write the full document if/when the next write occurs.
24
+ * - `"write-soon"` - write the full document after a delay of
25
+ * `writeSoonDelay` (default: 100 ms).
26
+ * - `"write-now"` - write the full document immediately. This write is
27
+ * synchronous; `load()` does not return until it has completed.
28
+ *
29
+ * The highest write priority is used. Writing occurs after all `beforeParse`
30
+ * and `afterParse` functions have been called.
31
+ *
32
+ * CAUTION: If any `beforeParse` function is truthy, the entire document will
33
+ * be written. If one function makes a change blocked by the Firestore rules
34
+ * and returns `false`, but another returns `true`, all writes will fail.
18
35
  */
19
- beforeWrite?: (data: z.infer<SchemaType>) => void;
36
+ beforeParse?: BeforeParse[];
20
37
  /**
21
- * Functions that modify the data from Firestore before it is parsed by Zod.
22
- * The patchers are applied to the data in the order given, each receiving the
23
- * output of the previous. The output of the last is fed to Zod.
38
+ * Functions that can update the document after it has been read and parsed.
39
+ * They are called in order, waiting for any asynchronous functions to
40
+ * complete before calling the next.
41
+ *
42
+ * @returns A value indicating if/when any changes should be written:
43
+ * - `false` or `undefined` - apply updates (if any) at the next write.
44
+ * - `"write-soon"` - update the document after a delay of `writeSoonDelay`
45
+ * (default: 100 ms).
46
+ * - `"write-now"` - update document immediately. This write is synchronous;
47
+ * `load()` does not return until it has completed.
24
48
  *
25
- * If any of these functions returns true, the data is asynchronously updated
26
- * on Firestore after a delay of `savePatchAfterDelay`, if it hasn't already
27
- * been written back. Only return true if the Firestore rules allow updating
28
- * all patched fields; otherwise all subsequent writes will fail.
49
+ * The highest write priority is used. Writing occurs after all the functions
50
+ * have been called.
29
51
  */
30
- patchers?: Patcher[];
52
+ afterParse?: AfterParse<SchemaType>[];
31
53
  /**
32
- * If false, don't write the data back to Firestore, even if a patcher returns
33
- * true. Otherwise, the delay in milliseconds before patching. This delay
34
- * avoids an extra write in the case of a quick read/modify/write cycle.
35
- * Defaults to 500, for a half-second delay.
54
+ * Functions that can modify the document before it is written to Firestore.
55
+ *
56
+ * For example, this hook could set a last-modified timestamp at every write.
36
57
  */
37
- savePatchAfterDelay?: false | number;
58
+ beforeWrite?: BeforeWrite<SchemaType>[];
59
+ /**
60
+ * Milliseconds before writing to Firestore for `"write-soon"`. Defaults to
61
+ * 100 ms.
62
+ *
63
+ * This delay can help avoid extra writes for quick read/modify/write cycles.
64
+ */
65
+ writeSoonDelay?: number;
38
66
  };
39
67
  /**
40
68
  * All options when initializing a FiretenderDoc object.
@@ -50,13 +78,12 @@ export type AllFiretenderDocOptions<SchemaType extends z.SomeZodObject> = Firete
50
78
  /**
51
79
  * The document's initial data, which must define a valid instance of the
52
80
  * document according to its schema.
81
+ *
82
+ * The `beforeParse` and `afterParse` hooks are not called on this data. To
83
+ * initialize the document with data to be patched, use {@link loadRawData}
84
+ * instead.
53
85
  */
54
86
  initialData?: DeepReadonly<Record<string, unknown>>;
55
- /**
56
- * The document's raw data, as it would be read from Firestore. Unlike
57
- * `initialData`, the given record is patched in place prior to parsing.
58
- */
59
- rawData?: Record<string, unknown>;
60
87
  };
61
88
  /**
62
89
  * Options for loading an existing document.
@@ -83,15 +110,28 @@ export type LoadOptions<FiretenderDocType> = {
83
110
  */
84
111
  listen?: boolean | ((doc: FiretenderDocType, snapshot: DocumentSnapshot) => void);
85
112
  };
113
+ type InternalLoadOptions<FiretenderDocType> = LoadOptions<FiretenderDocType> & {
114
+ /**
115
+ * Set if load() is being called recursively to retry a failed load due to a
116
+ * recoverable condition (e.g., an empty or incomplete snapshot).
117
+ *
118
+ * If retryNumber reaches {@link NUM_LOAD_RETRIES} and the load still fails,
119
+ * a FiretenderIOError is thrown.
120
+ */
121
+ retryNumber?: number;
122
+ };
86
123
  /**
87
124
  * A local representation of a Firestore document.
88
125
  */
89
126
  export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
90
- /** Zod schema used to parse and validate the document's data */
127
+ /** Zod schema used to parse and validate the document's data. */
91
128
  readonly schema: SchemaType;
92
- /** Firestore reference to this doc, or collection in which to create it */
129
+ /** Firestore reference to this doc, or collection in which to create it. */
93
130
  private ref;
94
- /** Firestore document ID; undefined for new docs not yet on Firestore */
131
+ /**
132
+ * Firestore document ID, which is the last part of the document path.
133
+ * Undefined for new docs not yet on Firestore.
134
+ */
95
135
  private docID;
96
136
  /** If set, writes will throw and patches will not be written. */
97
137
  readonly isReadonly: boolean;
@@ -99,17 +139,19 @@ export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
99
139
  private isNewDoc;
100
140
  /** Use addDoc or setDoc to write all the data? If not, use updateDoc. */
101
141
  private isSettingNewContents;
102
- /** Hook to modify the document before writing it to Firestore. */
142
+ /** Hooks to modify the raw data prior to parsing. */
143
+ private readonly beforeParse;
144
+ /** Hooks to update the document after reading and parsing. */
145
+ private readonly afterParse;
146
+ /** Hooks to update the document before writing it to Firestore. */
103
147
  private readonly beforeWrite;
104
- /** Patcher functions given in options; applied to the raw data in order. */
105
- private readonly patchers;
106
- /** Don't save patches if false; delay in milliseconds if set. */
107
- private readonly savePatchAfterDelay;
148
+ /** Delay before writing changes with `"write-soon"`. Default is 100 ms. */
149
+ private readonly writeSoonDelay;
108
150
  /** Local copy of the document data, parsed into the Zod type */
109
151
  private data;
110
- /** Proxy to intercept write (.w) access to the data and track the changes */
152
+ /** Proxy to intercept write (.w) access to the data and track the changes. */
111
153
  private dataProxy;
112
- /** Map from the dot-delimited field path (per updateDoc()) to new value */
154
+ /** Map from the dot-delimited field path (per updateDoc()) to new value. */
113
155
  private updates;
114
156
  /** Function to unsubscribe from changes to the doc, if we're listening. */
115
157
  private detachListener;
@@ -170,7 +212,7 @@ export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
170
212
  */
171
213
  copy(dest?: DocumentReference | CollectionReference | string | string[] | undefined, options?: AllFiretenderDocOptions<SchemaType>): FiretenderDoc<SchemaType>;
172
214
  /**
173
- * The document's ID string.
215
+ * The document's ID string, which is the last part of the document path.
174
216
  *
175
217
  * @throws Throws an error if the document does not yet have an ID.
176
218
  */
@@ -198,13 +240,20 @@ export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
198
240
  * Are we listening for changes to this document?
199
241
  */
200
242
  get isListening(): boolean;
243
+ /**
244
+ * Loads raw data, as read from Firestore, into the document.
245
+ *
246
+ * @param rawData the data to be loaded. It may be modified in place by
247
+ * `beforeParse` hooks.
248
+ */
249
+ loadRawData(rawData: Record<string, unknown>): Promise<this>;
201
250
  /**
202
251
  * Loads this document's data from Firestore.
203
252
  *
204
253
  * @param options options for forcing the load or listening for changes. See
205
254
  * {@link LoadOptions} for details.
206
255
  */
207
- load(options?: LoadOptions<FiretenderDoc<SchemaType>>): Promise<this>;
256
+ load(options?: InternalLoadOptions<FiretenderDoc<SchemaType>>): Promise<this>;
208
257
  /**
209
258
  * Stops listening to the remote doc for changes.
210
259
  */
@@ -244,13 +293,35 @@ export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
244
293
  * Given a snapshot, patch it, parse it, and save it as this doc's data. If
245
294
  * not called from a listener, the patched data may be written to Firestore
246
295
  * after a delay.
296
+ *
297
+ * @returns true if the document's data was updated, false if the snapshot is
298
+ * missing data and was ignored.
247
299
  */
248
300
  private loadFromSnapshot;
249
301
  /**
250
- * Applies the patches to the given data. Writes the updates to Firestore if
251
- * `noUpdate` is not set and any patcher returns true.
302
+ * Applies patches to the given raw data. Marks the entire document for
303
+ * writing if any patcher returns a truthy value.
304
+ *
305
+ * @returns the priority for writing the revised document.
306
+ */
307
+ private runBeforeParseHooks;
308
+ /**
309
+ * Applies patches to the document after reading and parsing. The .w proxy is
310
+ * used to track changes, so it's safe for documents with protected fields.
311
+ *
312
+ * @returns the priority for writing the updates.
313
+ */
314
+ private runAfterParseHooks;
315
+ /**
316
+ * Depending on the priority, does nothing, schedules a write, or writes the
317
+ * document immediately.
318
+ */
319
+ private writePatches;
320
+ /**
321
+ * Applies the beforeWrite updates to the document. The .w proxy is used to
322
+ * track changes, making it safe for documents with protected fields.
252
323
  */
253
- private patchData;
324
+ private runBeforeWriteHooks;
254
325
  /**
255
326
  * Adds a field and its new value to the list of updates to be passed to
256
327
  * Firestore's updateDoc(). Called when the proxies detect changes to the
@@ -258,4 +329,5 @@ export declare class FiretenderDoc<SchemaType extends z.SomeZodObject> {
258
329
  */
259
330
  private addToUpdateList;
260
331
  }
332
+ export {};
261
333
  //# sourceMappingURL=FiretenderDoc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiretenderDoc.d.ts","sourceRoot":"","sources":["../src/FiretenderDoc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FiretenderDoc.d.ts","sourceRoot":"","sources":["../src/FiretenderDoc.ts"],"names":[],"mappings":"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"}