firetender 0.7.0 → 0.7.2

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 CHANGED
@@ -1,13 +1,55 @@
1
1
  # Firetender
2
2
 
3
- The goal of Firetender is to make Firestore documents look (almost) like any
4
- other Typescript objects, reducing boilerplate and conceptual overhead and
5
- providing type safety and data validation.
3
+ Firetender takes your [Zod](https://github.com/colinhacks/zod) data schema ...
4
+
5
+ ```javascript
6
+ const itemSchema = z.object({
7
+ description: z.string().optional(),
8
+ count: z.number().nonnegative().integer(),
9
+ tags: z.array(z.string()).default([]),
10
+ });
11
+ ```
12
+
13
+ associates it with a Firestore collection ...
14
+
15
+ ```javascript
16
+ const itemCollection = new FiretenderCollection(itemSchema, db, "items");
17
+ ```
18
+
19
+ and provides you with typesafe, validated Firestore documents that are easy to
20
+ use and understand.
21
+
22
+ ```javascript
23
+ // Add a document to the collection.
24
+ await itemCollection.newDoc("foo", { count: 0, tags: ["needs +1"] }).write();
25
+
26
+ // Read the document "bar", then update it.
27
+ const itemDoc = await itemCollection.existingDoc("bar").load();
28
+ const count = itemDoc.r.count;
29
+ await itemDoc.update((item) => {
30
+ item.tags.push("needs +1");
31
+ });
32
+
33
+ // Increment the count of all docs with a "needs +1" tag.
34
+ await Promise.all(
35
+ itemCollection
36
+ .query(where("tags", "array-contains", "needs +1"))
37
+ .map((itemDoc) =>
38
+ itemDoc.update((item) => {
39
+ item.count += 1;
40
+ delete item.tags["needs +1"];
41
+ })
42
+ )
43
+ );
44
+ ```
45
+
46
+ Changes to the document data are monitored, and only modified fields are updated
47
+ on Firestore.
6
48
 
7
49
  ## Usage
8
50
 
9
- To illustrate, let's run through the basics of defining, creating, modifying,
10
- and copying a Firestore document.
51
+ To illustrate in more detail, let's run through the basics of defining,
52
+ creating, modifying, and copying a Firestore document.
11
53
 
12
54
  ### Initialize Cloud Firestore
13
55
 
package/dist/proxies.js CHANGED
@@ -8,7 +8,7 @@ const ts_helpers_1 = require("./ts-helpers");
8
8
  * Given a Zod schema representing a collection, returns the sub-schema of the
9
9
  * specified property.
10
10
  */
11
- function getPropertySchema(parentSchema, propertyKey) {
11
+ function getPropertySchema(parent, parentSchema, propertyKey) {
12
12
  let schema = parentSchema;
13
13
  // eslint-disable-next-line no-constant-condition
14
14
  while (true) {
@@ -32,11 +32,21 @@ function getPropertySchema(parentSchema, propertyKey) {
32
32
  return schema.element;
33
33
  case zod_1.z.ZodFirstPartyTypeKind.ZodObject:
34
34
  return schema.shape[propertyKey];
35
+ case zod_1.z.ZodFirstPartyTypeKind.ZodDiscriminatedUnion:
36
+ // TODO: replace "options" with "optionsMap" for Zod 3.20.0+.
37
+ return schema.options.get(parent[schema.discriminator]);
38
+ // If the parent is of type ZodAny, so are its properties.
39
+ case zod_1.z.ZodFirstPartyTypeKind.ZodAny:
40
+ return zod_1.z.any();
35
41
  default:
36
42
  throw TypeError(`Unsupported schema type for property "${propertyKey}": ${schema._def.typeName}`);
37
43
  }
38
44
  }
39
45
  }
46
+ /**
47
+ * Getting this symbol from one of our proxies returns the proxy's target.
48
+ */
49
+ const PROXY_TARGET_SYMBOL = Symbol("proxy_target");
40
50
  /**
41
51
  * Wraps a top-level array, its elements, or its elements' subfields in a proxy
42
52
  * that watches for changes.
@@ -85,12 +95,15 @@ function watchArrayForChanges(arrayPath, array, fieldSchema, field, addToUpdateL
85
95
  return result;
86
96
  }
87
97
  if (typeof propertyKey === "symbol") {
88
- // Allow symbols to pass through.
98
+ if (propertyKey === PROXY_TARGET_SYMBOL) {
99
+ return target;
100
+ }
101
+ // Allow all other symbols to pass through.
89
102
  return property;
90
103
  }
91
104
  if (property instanceof Object) {
92
105
  // Wrap nested objects, including nested arrays, in child proxies.
93
- return watchArrayForChanges(arrayPath, array, getPropertySchema(fieldSchema, propertyKey), property, addToUpdateList);
106
+ return watchArrayForChanges(arrayPath, array, getPropertySchema(field, fieldSchema, propertyKey), property, addToUpdateList);
94
107
  }
95
108
  // Otherwise we must be getting a primitive. No need to wrap it.
96
109
  return property;
@@ -100,12 +113,22 @@ function watchArrayForChanges(arrayPath, array, fieldSchema, field, addToUpdateL
100
113
  // Allow symbols to pass through.
101
114
  return Reflect.set(target, propertyKey, value);
102
115
  }
116
+ let processedValue = value;
117
+ // If the new value is an object wrapped in a Firetender proxy, which can
118
+ // commonly happen when referencing it inside a mutator function passed to
119
+ // FiretenderDoc.prototype.update(), unwrap it.
120
+ if (value instanceof Object) {
121
+ const valueTarget = value[PROXY_TARGET_SYMBOL];
122
+ if (valueTarget !== undefined) {
123
+ processedValue = valueTarget;
124
+ }
125
+ }
103
126
  // An array element or one of its subfields is being set to a new value.
104
127
  // Parse the new value with the appropriate schema, set it in the local
105
128
  // data, and mark the entire top-level array as needing to be written.
106
- const propertySchema = getPropertySchema(fieldSchema, propertyKey);
107
- const parsedValue = propertySchema.parse(value);
108
- const result = Reflect.set(target, propertyKey, parsedValue);
129
+ const propertySchema = getPropertySchema(field, fieldSchema, propertyKey);
130
+ processedValue = propertySchema.parse(processedValue);
131
+ const result = Reflect.set(target, propertyKey, processedValue);
109
132
  addToUpdateList(arrayPath, array);
110
133
  return result;
111
134
  },
@@ -163,18 +186,21 @@ function watchFieldForChanges(fieldPath, fieldSchema, field, addToUpdateList) {
163
186
  return (...args) => property.apply(field, args);
164
187
  }
165
188
  if (typeof propertyKey === "symbol") {
166
- // Allow symbols to pass through.
189
+ if (propertyKey === PROXY_TARGET_SYMBOL) {
190
+ return target;
191
+ }
192
+ // Allow all other symbols to pass through.
167
193
  return property;
168
194
  }
169
195
  if (property instanceof Array) {
170
196
  // Wrap array subfields in the watchArrayForChanges proxy. It is
171
197
  // necessarily a top-level array, because otherwise we would be in
172
198
  // watchArrayForChanges already.
173
- return watchArrayForChanges([...fieldPath, propertyKey], property, getPropertySchema(fieldSchema, propertyKey), property, addToUpdateList);
199
+ return watchArrayForChanges([...fieldPath, propertyKey], property, getPropertySchema(field, fieldSchema, propertyKey), property, addToUpdateList);
174
200
  }
175
201
  if (property instanceof Object) {
176
202
  // Wrap nested objects in another instance of this proxy.
177
- return watchFieldForChanges([...fieldPath, propertyKey], getPropertySchema(fieldSchema, propertyKey), property, addToUpdateList);
203
+ return watchFieldForChanges([...fieldPath, propertyKey], getPropertySchema(field, fieldSchema, propertyKey), property, addToUpdateList);
178
204
  }
179
205
  // Otherwise we must be getting a primitive. No need to wrap it.
180
206
  return property;
@@ -184,13 +210,23 @@ function watchFieldForChanges(fieldPath, fieldSchema, field, addToUpdateList) {
184
210
  // Allow symbols to pass through.
185
211
  return Reflect.set(target, propertyKey, value);
186
212
  }
213
+ let processedValue = value;
214
+ // If the new value is an object wrapped in a Firetender proxy, which can
215
+ // commonly happen when referencing it inside a mutator function passed to
216
+ // FiretenderDoc.prototype.update(), unwrap it.
217
+ if (value instanceof Object) {
218
+ const valueTarget = value[PROXY_TARGET_SYMBOL];
219
+ if (valueTarget !== undefined) {
220
+ processedValue = valueTarget;
221
+ }
222
+ }
187
223
  // A property of this object is being set to a new value. Parse the new
188
224
  // value with the appropriate schema, set it in the local data, and mark
189
225
  // the entire top-level array as needing to be written.
190
- const propertySchema = getPropertySchema(fieldSchema, propertyKey);
191
- const parsedValue = propertySchema.parse(value);
192
- addToUpdateList([...fieldPath, propertyKey], parsedValue);
193
- return Reflect.set(target, propertyKey, parsedValue);
226
+ const propertySchema = getPropertySchema(field, fieldSchema, propertyKey);
227
+ processedValue = propertySchema.parse(processedValue);
228
+ addToUpdateList([...fieldPath, propertyKey], processedValue);
229
+ return Reflect.set(target, propertyKey, processedValue);
194
230
  },
195
231
  deleteProperty(target, propertyKey) {
196
232
  (0, ts_helpers_1.assertKeyIsString)(propertyKey);
@@ -1 +1 @@
1
- {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.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.7.0",
5
+ "version": "0.7.2",
6
6
  "author": "Jake Hartman",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/jakes-space/firetender",