@@ -539,3 +539,43 @@ export function normalizeByteString(blob: string | Uint8Array): ByteString {
539
539
return ByteString . fromUint8Array ( blob ) ;
540
540
}
541
541
}
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