Skip to content

Commit

Permalink
Merge pull request #3 from megamidge/master
Browse files Browse the repository at this point in the history
Added document ID to every synced document.
  • Loading branch information
kazuooooo authored Apr 16, 2022
2 parents 4a83d62 + 30ca5d7 commit 7944034
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
19 changes: 17 additions & 2 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,17 @@ var PiniaFirestoreSync = function (_a) {
// Document
if (ref instanceof firestore_1.DocumentReference) {
return (0, firestore_1.onSnapshot)(ref, function (ds) { return __awaiter(void 0, void 0, void 0, function () {
var data;
var _a;
return __generator(this, function (_b) {
if (ds.exists()) {
store.$patch((_a = {}, _a[key] = ds.data(), _a));
data = ds.data();
Object.defineProperty(data, 'id', {
value: ds.id,
writable: false,
enumerable: false
});
store.$patch((_a = {}, _a[key] = data, _a));
}
return [2 /*return*/];
});
Expand All @@ -71,7 +78,15 @@ var PiniaFirestoreSync = function (_a) {
return (0, firestore_1.onSnapshot)(ref, function (qs) { return __awaiter(void 0, void 0, void 0, function () {
var datum;
return __generator(this, function (_a) {
datum = qs.docs.map(function (d) { return d.data(); });
datum = qs.docs.map(function (d) {
var data = d.data();
Object.defineProperty(data, 'id', {
value: d.id,
writable: false,
enumerable: false
});
return data;
});
store.$patch(function (state) {
state[key] = datum;
});
Expand Down
20 changes: 17 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,28 @@ export const PiniaFirestoreSync = ({ store }: PiniaPluginContext) => {
if (ref instanceof DocumentReference) {
return onSnapshot(ref, (ds) => {
if (ds.exists()) {
store.$patch({ [key]: ds.data() })
const data = ds.data()
Object.defineProperty(data, 'id', {
value: ds.id,
writable: false,
enumerable:false
})
store.$patch({ [key]: data })
}
})
}

// Collection or Query
return onSnapshot(ref, (qs) => {
const datum = qs.docs.map(d => d.data())
return onSnapshot(ref, async (qs) => {
const datum = qs.docs.map(d => {
const data = d.data()
Object.defineProperty(data, 'id', {
value: d.id,
writable: false,
enumerable:false
})
return data
})
store.$patch((state) => {
state[key] = datum
})
Expand Down

0 comments on commit 7944034

Please sign in to comment.