@@ -531,3 +531,57 @@ export function normalizeByteString(blob: string | Uint8Array): ByteString {
531
531
return ByteString . fromUint8Array ( blob ) ;
532
532
}
533
533
}
534
+
535
+ /** Returns true if `value` is an IntegerValue. */
536
+ export function isInteger (
537
+ value ?: api . Value | null
538
+ ) : value is { integerValue : string | number } {
539
+ return ! ! value && 'integerValue' in value ;
540
+ }
541
+
542
+ /** Returns true if `value` is a DoubleValue. */
543
+ export function isDouble (
544
+ value ?: api . Value | null
545
+ ) : value is { doubleValue : string | number } {
546
+ return ! ! value && 'doubleValue' in value ;
547
+ }
548
+
549
+ /** Returns true if `value` is either an IntegerValue or a DoubleValue. */
550
+ export function isNumber ( value ?: api . Value | null ) : boolean {
551
+ return isInteger ( value ) || isDouble ( value ) ;
552
+ }
553
+
554
+ /** Returns true if `value` is an ArrayValue. */
555
+ export function isArray (
556
+ value ?: api . Value | null
557
+ ) : value is { arrayValue : api . ArrayValue } {
558
+ return ! ! value && 'arrayValue' in value ;
559
+ }
560
+
561
+ /** Returns true if `value` is a ReferenceValue. */
562
+ export function isReferenceValue (
563
+ value ?: api . Value | null
564
+ ) : value is { referenceValue : string } {
565
+ return ! ! value && 'referenceValue' in value ;
566
+ }
567
+
568
+ /** Returns true if `value` is a NullValue. */
569
+ export function isNullValue (
570
+ value ?: api . Value | null
571
+ ) : value is { nullValue : 'NULL_VALUE' } {
572
+ return ! ! value && 'nullValue' in value ;
573
+ }
574
+
575
+ /** Returns true if `value` is NaN. */
576
+ export function isNanValue (
577
+ value ?: api . Value | null
578
+ ) : value is { doubleValue : 'NaN' | number } {
579
+ return isDouble ( value ) && isNaN ( Number ( value . doubleValue ) ) ;
580
+ }
581
+
582
+ /** Returns true if `value` is a MapValue. */
583
+ export function isMapValue (
584
+ value ?: api . Value | null
585
+ ) : value is { mapValue : api . MapValue } {
586
+ return ! ! value && 'mapValue' in value ;
587
+ }
0 commit comments