workers-firebase
Advanced tools
Comparing version 0.0.14 to 0.0.15
@@ -118,2 +118,10 @@ var _a; | ||
let filter; | ||
if (value === undefined) | ||
throw new Error('Where value cannot be undefined'); | ||
if (fieldPath === FieldPath.documentId) { | ||
if (typeof value === 'string') | ||
value = this.ref.doc(value); | ||
else if (Array.isArray(value) && typeof value[0] === 'string') | ||
value = value.map(value => this.ref.doc(value)); | ||
} | ||
if ((opStr === '==' || opStr === '!=') && (value === null || typeof value === 'number' && isNaN(value))) { | ||
@@ -124,3 +132,3 @@ const op = unaryOperators[opStr][value]; | ||
else { | ||
filter = { fieldFilter: { field: { fieldPath }, op: comparisonOperators[opStr], value } }; | ||
filter = { fieldFilter: { field: { fieldPath }, op: comparisonOperators[opStr], value: encodeValue(value) } }; | ||
} | ||
@@ -212,2 +220,3 @@ return new Query(this.ref, { ...this[querySymbol], filters: [...this[querySymbol].filters, filter] }); | ||
}); | ||
const readTime = new Date(response[0].readTime); | ||
if (response[0]?.error) | ||
@@ -219,4 +228,4 @@ throw new Error(response[0].error.message); | ||
response.reverse(); | ||
const docs = response.filter(e => e.document).map(e => new DocumentSnapshot(this.ref.doc(decodePath(e.document.name)), e.document, e.readTime)); | ||
return new QuerySnapshot(this, docs[0].readTime, response.length, docs); | ||
const docs = response.filter(e => e.document).map(e => new DocumentSnapshot(this.ref.doc(decodePath(e.document.name).replace(this.ref.path, '')), e.document, e.readTime)); | ||
return new QuerySnapshot(this, readTime, response.length, docs); | ||
} | ||
@@ -223,0 +232,0 @@ } |
@@ -48,3 +48,3 @@ import { FieldValue } from './field-value'; | ||
return obj; | ||
for (const prop of Object.keys(fields)) { | ||
for (const prop of Object.keys(fields).sort()) { | ||
obj[prop] = decodeValue(firestore, fields[prop]); | ||
@@ -51,0 +51,0 @@ } |
{ | ||
"name": "workers-firebase", | ||
"version": "0.0.14", | ||
"version": "0.0.15", | ||
"scripts": { | ||
@@ -5,0 +5,0 @@ "start": "tsc --watch", |
@@ -156,2 +156,7 @@ import type { | ||
let filter: api.Filter; | ||
if (value === undefined) throw new Error('Where value cannot be undefined'); | ||
if (fieldPath === FieldPath.documentId) { | ||
if (typeof value === 'string') value = this.ref.doc(value); | ||
else if (Array.isArray(value) && typeof value[0] === 'string') value = value.map(value => this.ref.doc(value)); | ||
} | ||
if ((opStr === '==' || opStr === '!=') && (value === null || typeof value === 'number' && isNaN(value))) { | ||
@@ -161,3 +166,3 @@ const op = unaryOperators[opStr][value] as api.UnaryFilterOperator; | ||
} else { | ||
filter = { fieldFilter: { field: { fieldPath }, op: comparisonOperators[opStr], value } }; | ||
filter = { fieldFilter: { field: { fieldPath }, op: comparisonOperators[opStr], value: encodeValue(value) } }; | ||
} | ||
@@ -268,2 +273,3 @@ return new Query<T>(this.ref, { ...this[querySymbol], filters: [ ...this[querySymbol].filters, filter ] }); | ||
const readTime = new Date(response[0].readTime); | ||
if (response[0]?.error) throw new Error(response[0].error.message); | ||
@@ -273,5 +279,5 @@ if (response[0]?.skippedResults) response.shift(); | ||
const docs = response.filter(e => e.document).map(e => | ||
new DocumentSnapshot<T>(this.ref.doc(decodePath(e.document.name)), e.document, e.readTime) | ||
new DocumentSnapshot<T>(this.ref.doc(decodePath(e.document.name).replace(this.ref.path, '')), e.document, e.readTime) | ||
); | ||
return new QuerySnapshot<T>(this, docs[0].readTime, response.length, docs); | ||
return new QuerySnapshot<T>(this, readTime, response.length, docs); | ||
} | ||
@@ -278,0 +284,0 @@ } |
@@ -40,3 +40,3 @@ import type { api, DocumentData } from './types'; | ||
if (!fields) return obj as T; | ||
for (const prop of Object.keys(fields)) { | ||
for (const prop of Object.keys(fields).sort()) { | ||
obj[prop] = decodeValue(firestore, fields[prop]); | ||
@@ -43,0 +43,0 @@ } |
Sorry, the diff of this file is not supported yet
135163
2886