Skip to content

Commit 69ffaf0

Browse files
Add small Proto helpers
1 parent d69fe94 commit 69ffaf0

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

packages/firestore/src/model/values.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,3 +539,43 @@ export function normalizeByteString(blob: string | Uint8Array): ByteString {
539539
return ByteString.fromUint8Array(blob);
540540
}
541541
}
542+
543+
/** Returns true if `value` is an IntegerValue. */
544+
export function isInteger(value?: api.Value | null): boolean {
545+
return !!value && 'integerValue' in value;
546+
}
547+
548+
/** Returns true if `value` is a DoubleValue. */
549+
export function isDouble(value?: api.Value | null): boolean {
550+
return !!value && 'doubleValue' in value;
551+
}
552+
553+
/** Returns true if `value` is either an IntegerValue or a DoubleValue. */
554+
export function isNumber(value?: api.Value | null): boolean {
555+
return isInteger(value) || isDouble(value);
556+
}
557+
558+
/** Returns true if `value` is an ArrayValue. */
559+
export function isArray(value?: api.Value | null): boolean {
560+
return !!value && 'arrayValue' in value;
561+
}
562+
563+
/** Returns true if `value` is a ReferenceValue. */
564+
export function isReferenceValue(value?: api.Value | null): boolean {
565+
return !!value && 'referenceValue' in value;
566+
}
567+
568+
/** Returns true if `value` is a NullValue. */
569+
export function isNullValue(value?: api.Value | null): boolean {
570+
return !!value && 'nullValue' in value;
571+
}
572+
573+
/** Returns true if `value` is NaN. */
574+
export function isNanValue(value?: api.Value | null): boolean {
575+
return !!value && isNaN(Number(value.doubleValue));
576+
}
577+
578+
/** Returns true if `value` is a MapValue. */
579+
export function isMapValue(value?: api.Value | null): boolean {
580+
return !!value && 'mapValue' in value;
581+
}

0 commit comments

Comments
 (0)