@typeheim/orm-on-fire
Version:
Firestore ORM
40 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityQuery = void 0;
const EntityStream_1 = require("../Data/EntityStream");
const EntityPromise_1 = require("../Data/EntityPromise");
const operators_1 = require("rxjs/operators");
const singletons_1 = require("../singletons");
class EntityQuery {
constructor(docReference, entityBuilder) {
this.docReference = docReference;
this.entityBuilder = entityBuilder;
}
get() {
let promise = new EntityPromise_1.EntityPromise();
if (this.docReference) {
this.docReference.get().subscribe({
next: (docSnapshot) => {
promise.resolve(this.entityBuilder.fromSnapshot(docSnapshot));
},
error: error => promise.reject(error),
});
}
else {
promise.resolve(null);
}
return promise;
}
collection(entity) {
return singletons_1.CollectionFactory.createFromBasePath(entity, this.docReference.path);
}
stream() {
let snapshotStream = this.docReference.snapshot();
let source = snapshotStream.pipe(operators_1.map((docSnapshot) => {
return this.entityBuilder.fromSnapshot(docSnapshot);
}));
return new EntityStream_1.EntityStream(source, snapshotStream);
}
}
exports.EntityQuery = EntityQuery;
//# sourceMappingURL=EntityQuery.js.map