24 lines
1.1 KiB
JavaScript
24 lines
1.1 KiB
JavaScript
import { readFileSync } from 'node:fs'
|
|
import { build } from 'esbuild'
|
|
|
|
const bundled = await build({
|
|
entryPoints: ['app/lib/probe-entry.ts'],
|
|
bundle: true, format: 'esm', platform: 'node', write: false,
|
|
})
|
|
const mod = await import('data:text/javascript;base64,' + Buffer.from(bundled.outputFiles[0].text).toString('base64'))
|
|
|
|
const src = new Uint8Array(readFileSync('dump/UE4SS_ObjectDump.txt'))
|
|
const cols = mod.parseDump(src)
|
|
const store = new mod.DumpStore(cols)
|
|
console.log('count', cols.count, 'skipped', cols.skipped, 'types', cols.types.length)
|
|
|
|
for (const p of ['/Script/Engine', '/Game/Pal', '/Script/Water', '/Engine', '/Script/SkyCreatorPlugin']) {
|
|
const { rows } = store.query({ pathPrefix: p })
|
|
console.log(`pathPrefix ${p.padEnd(26)} -> ${rows.length} rows`)
|
|
}
|
|
console.log('\nrow(0):', store.row(0))
|
|
console.log('row(1):', store.row(1))
|
|
const { rows } = store.query({ nameContains: 'Package' })
|
|
console.log('\nnameContains "Package" ->', rows.length)
|
|
console.log('\ntree roots:', store.children('').slice(0, 8).map(c => `${c.separator}${c.segment}(${c.count})`))
|