-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add support for set() with SetOptions when using FirestoreDataConverter #1087
Conversation
Codecov Report
@@ Coverage Diff @@
## node10 #1087 +/- ##
=======================================
Coverage 98.62% 98.63%
=======================================
Files 28 28
Lines 17944 18005 +61
Branches 1394 1399 +5
=======================================
+ Hits 17698 17759 +61
Misses 243 243
Partials 3 3
Continue to review full report at Codecov.
|
daa2f52
to
3fc570c
Compare
let firestoreData: DocumentData; | ||
if (mergeLeaves || mergePaths) { | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
firestoreData = (documentRef._converter as any).toFirestore( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a short comment on why we need this cast to any
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done.
dev/test/util/helpers.ts
Outdated
@@ -342,6 +342,19 @@ export const postConverter = { | |||
}, | |||
}; | |||
|
|||
export const postConverterMerge = { | |||
toFirestore(post: Partial<Post>): DocumentData { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we add SetOptions here and additional asserts? Something like that:
if (merge) {
expect(post).to.be.an.instanceOf(Post);
} else {
expect(post).to.not.be.an.instanceOf(Post);
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, but flipped the expect statements.
dev/src/document.ts
Outdated
const untypedReference = new DocumentReference( | ||
this.ref.firestore, | ||
this.ref._path | ||
); | ||
return this.ref._converter.fromFirestore( | ||
return ((this.ref._converter as unknown) as FirestoreDataConverter< |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This compiles for me as just "this.ref._converter.fromFirestore".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, minus lint fixes
Do you want to make this a "feat" before merging? This deserves more recognition :) |
* fix!: mark v1beta1 client as deprecated (#937) * feat!: use QueryDocumentSnapshot in FirestoreDataConverter (#965) * deps: update to gts 2.x (#1013) * chore!: update settings for Node 10 (#1019) * deps: drop through2 (#1014) * feat: support BigInt (#1016) * fix: make update.sh work on Linux (#1043) * fix: only use BigInt in BigInt system test (#1044) * fix: make pbjs compile admin proto again (#1045) * Add BulkWriter (#1055) * docs: Add documentation for FirestoreDataConverter (#1059) * chore: enforce return types (#1065) * fix: add generic to Firestore.getAll() (#1066) * chore: remove internal WriteOp (#1067) * chore: add linter checks for it|describe.only (#1068) * fix: handle terminate in BulkWriter (#1070) * chore: run template copying last in synthtool (#1071) * feat: Firestore Bundles implementation (#1078) * feat: add support for set() with SetOptions when using FirestoreDataConverter (#1087) * feat: Add totalDocuments and totalBytes to bundle metadata. (#1085) * feat: Add totalDocuments and totalBytes to bundle metadata. * fix: Better comment * fix: Better testing. * fix: Improve metadata testing. * fix: incomplete expect in rate-limiter test (#1092) * Remove BatchWrite proto, fix conformance tests * chore: use public API types internally (#1100) * feat: add Partition and BatchWrite protos (#1110) * fix: remove GCF transaction fallback (#1112) * fix: add BulkWriter integration tests, java backport changes, delete fix (#1117) * chore: merge master (#1218) * chore: add eslint check for console.log statements (#1229) * fix: another attempt at fixing the flaky BulkWriter test (#1228) * Fix comment * Renames * Test fix * Fix unit tests Co-authored-by: Brian Chen <chenbrian@google.com> Co-authored-by: wu-hui <53845758+wu-hui@users.noreply.github.com>
Fixes #1000.