27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
import fs from 'node:fs';
|
|
const j = JSON.parse(fs.readFileSync('.cdp/out/overview-capture.json', 'utf8'));
|
|
const bodies = j.value.rawBodies;
|
|
const L = [];
|
|
const seen = new Set();
|
|
for (const b of bodies) {
|
|
const m = /datacompass\.([\w.]+)\/1\.0/.exec(b.url);
|
|
const api = m ? m[1] : '?';
|
|
const t = (/t=(\d+)/.exec(b.url) || [])[1];
|
|
const key = api + '|' + b.text.length;
|
|
const p = JSON.parse(b.text);
|
|
const d = p && p.data && p.data.data;
|
|
L.push('==== ' + api + ' (t=' + t + ', len=' + b.text.length + ') ====');
|
|
if (d) {
|
|
L.push(' data.data keys: ' + JSON.stringify(Object.keys(d)));
|
|
for (const [k, v] of Object.entries(d)) {
|
|
if (Array.isArray(v)) L.push(` ${k}: Array(${v.length})` + (v.length ? ' item0keys=' + JSON.stringify(Object.keys(v[0])).slice(0, 400) : ''));
|
|
else if (v && typeof v === 'object') L.push(` ${k}: Object keys=` + JSON.stringify(Object.keys(v)).slice(0, 400));
|
|
else L.push(` ${k}: ${JSON.stringify(v)}`);
|
|
}
|
|
} else {
|
|
L.push(' no data.data; top keys=' + JSON.stringify(p ? Object.keys(p) : null));
|
|
}
|
|
L.push('');
|
|
}
|
|
fs.writeFileSync('.cdp/out/ov-all-struct.txt', L.join('\n'), 'utf8');
|