in src/components/Firestore/utils.ts [146:181]
export function summarize(data: FirestoreAny, maxLen: number): string {
switch (getFieldType(data)) {
case FieldType.ARRAY:
return summarizeArray(data as FirestoreAny[], maxLen, summarize);
case FieldType.MAP:
return summarizeMap(
data as Record<string, FirestoreAny>,
maxLen,
summarize
);
case FieldType.BLOB:
const base64 = (data as firebase.firestore.Blob).toBase64();
if (base64.length < maxLen) return base64;
else return base64.substr(0, maxLen) + '...';
case FieldType.BOOLEAN:
return (data as boolean).toString();
case FieldType.GEOPOINT:
const value = data as firebase.firestore.GeoPoint;
return summarizeLatLng(value.latitude, value.longitude);
case FieldType.NULL:
return 'null';
case FieldType.NUMBER:
return (data as number).toString();
case FieldType.REFERENCE:
return (data as firebase.firestore.DocumentReference).path;
case FieldType.STRING:
return `"${data as string}"`;
case FieldType.TIMESTAMP:
return summarizeDate(
(data as firebase.firestore.Timestamp).toDate(),
maxLen
);
case FieldType.JSON:
throw new Error('JSON field type is input only');
}
}