Skip to content

Commit 38ce66d

Browse files
committed
feat: Add support for deleting fields
1 parent 88f4158 commit 38ce66d

4 files changed

Lines changed: 14 additions & 0 deletions

File tree

packages/admin/src/lib/firestore/converter.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ export const toFirestoreDocumentData = (
3535
if (data instanceof FirestoreSchema.ServerTimestamp) {
3636
return FieldValue.serverTimestamp();
3737
}
38+
if (data instanceof FirestoreSchema.Delete) {
39+
return FieldValue.delete();
40+
}
3841
if (Array.isArray(data)) {
3942
return data.map((item) => toFirestoreDocumentData(db, item));
4043
}

packages/client/src/lib/firestore/converter.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
deleteField,
23
doc,
34
DocumentData,
45
DocumentReference,
@@ -37,6 +38,9 @@ export const toFirestoreDocumentData = (
3738
if (data instanceof FirestoreSchema.ServerTimestamp) {
3839
return serverTimestamp();
3940
}
41+
if (data instanceof FirestoreSchema.Delete) {
42+
return deleteField();
43+
}
4044
if (Array.isArray(data)) {
4145
return data.map((item) => toFirestoreDocumentData(db, item));
4246
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { Schema } from 'effect';
2+
3+
/**
4+
* Represents a delete operation. This will remove the field from the document.
5+
*/
6+
export class Delete extends Schema.Class<Delete>('Delete')({}) {}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './timestamp.js';
22
export * from './geopoint.js';
33
export * from './reference.js';
4+
export * from './delete.js';

0 commit comments

Comments
 (0)