better display of ObjectId on JSON view

This commit is contained in:
SPRINX0\prochazka
2025-01-24 14:33:22 +01:00
parent 4944bc4bca
commit e574667651
3 changed files with 11 additions and 0 deletions

View File

@@ -35,6 +35,8 @@
return typeof value.set === 'function' ? JSONIterableMapNode : JSONIterableArrayNode; return typeof value.set === 'function' ? JSONIterableMapNode : JSONIterableArrayNode;
case 'MapEntry': case 'MapEntry':
return JSONMapEntryNode; return JSONMapEntryNode;
case 'ObjectId':
return JSONValueNode;
default: default:
return JSONValueNode; return JSONValueNode;
} }
@@ -64,6 +66,8 @@
case 'Function': case 'Function':
case 'Symbol': case 'Symbol':
return raw => raw.toString(); return raw => raw.toString();
case 'ObjectId':
return raw => `ObjectId("${raw.$oid}")`;
default: default:
return () => `<${nodeType}>`; return () => `<${nodeType}>`;
} }

View File

@@ -19,6 +19,9 @@
.String { .String {
color: var(--string-color); color: var(--string-color);
} }
.ObjectId {
color: var(--number-color);
}
.Date { .Date {
color: var(--date-color); color: var(--date-color);
} }

View File

@@ -1,4 +1,8 @@
export default function objType(obj) { export default function objType(obj) {
if (obj?.$oid) {
return 'ObjectId';
}
const type = Object.prototype.toString.call(obj).slice(8, -1); const type = Object.prototype.toString.call(obj).slice(8, -1);
if (type === 'Object') { if (type === 'Object') {
if (typeof obj[Symbol.iterator] === 'function') { if (typeof obj[Symbol.iterator] === 'function') {