Skip to content

Commit 0bb3640

Browse files
committed
Option for MongoDB Extended JSON support
1 parent c4a6ef1 commit 0bb3640

15 files changed

+170
-28
lines changed

docs-src/demo.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ const demoData = {
2828
element7: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
2929
element8: { un: undefined, nu: null },
3030
},
31+
extendedJson: {
32+
binaryData: {
33+
$binary: {
34+
base64: 'VGhpcyBpcyBhIGJpbmFyeSBzYW1wbGU',
35+
subType: '00',
36+
},
37+
},
38+
dateCanonical: { $date: { $numberLong: '1704067200000' } },
39+
dateRelaxed: { $date: '2024-01-01T12:00:00Z' },
40+
numbers: {
41+
int32: { $numberInt: '42' },
42+
int32Relaxed: 42,
43+
int64: { $numberLong: '1234567890123' },
44+
int64Relaxed: 1234567890123,
45+
decimal128: { $numberDecimal: '12345.6789' },
46+
},
47+
regex: { $regularExpression: { pattern: '^abc', options: 'i' } },
48+
timestamp: { $timestamp: { t: 1627846267, i: 1 } },
49+
minKey: { $minKey: 1 },
50+
maxKey: { $maxKey: 1 },
51+
objectId: { $oid: '507f1f77bcf86cd799439011' },
52+
},
3153
largeData: (function () {
3254
const list = new Array(Math.floor(Math.random() * 1000));
3355
for (let i = 0; i < list.length; i++) {
@@ -53,7 +75,7 @@ const pathsElement = document.getElementById('paths') as HTMLTextAreaElement;
5375
const copiedElement = document.getElementById('copied') as HTMLInputElement;
5476
const searchElement = document.getElementById('search') as HTMLInputElement;
5577
const searchInfoElement = document.getElementById(
56-
'searchInfo',
78+
'searchInfo'
5779
) as HTMLSpanElement;
5880
let viewer = null;
5981
let rootNode = document.getElementById('rootNode') as JsonNodeElement;
@@ -76,7 +98,7 @@ codeElement.addEventListener('input', (e) => {
7698
searchElement.addEventListener('input', async (e) => {
7799
if (searchElement.value.length >= 2) {
78100
const cursor = await viewer.openBySearch(
79-
new RegExp(searchElement.value, 'i'),
101+
new RegExp(searchElement.value, 'i')
80102
);
81103
searchInfoElement.textContent = cursor.matches.length + ' matches';
82104

@@ -138,7 +160,9 @@ async function showData(data: any, jsData = false) {
138160
if (jsData) {
139161
_viewer = await BigJsonViewerDom.fromObject(data);
140162
} else {
141-
_viewer = await BigJsonViewerDom.fromData(data);
163+
_viewer = await BigJsonViewerDom.fromData(data, {
164+
showExtendedJson: true,
165+
});
142166
}
143167
if (viewerElement['showDataIndex'] !== index) {
144168
_viewer.destroy();

docs-src/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ <h4 class="mt-3">JSON text</h4>
4343
<div>
4444
<a href="javascript:" data-load="simpleData">Simple test data</a> |
4545
<a href="javascript:" data-load="largeData">Large data</a> |
46-
<a href="javascript:" data-load="jsData">JavaScript data</a>
46+
<a href="javascript:" data-load="jsData">JavaScript data</a> |
47+
<a href="javascript:" data-load="extendedJson">Extended JSON</a>
4748
</div>
4849

4950
<div>

docs/docs-src.36c6ce0c.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/docs-src.36c6ce0c.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/docs-src.5d6018bb.css

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/docs-src.5d6018bb.css.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/docs-src.824317f5.css

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/docs-src.824317f5.css.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/docs-src.97895f40.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/docs-src.97895f40.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)