Docs: Update benchmark for test 4

This commit is contained in:
github-actions[bot]
2025-11-27 01:33:28 +00:00
parent 7e5ff30656
commit 1207c6f66b
9 changed files with 490 additions and 8 deletions

View File

@@ -0,0 +1,32 @@
const bundleApp=async(entry,files)=>{
const {transform}=(await import('https://esm.sh/@babel/standalone@7.23.9')).default
const mods=new Map
const norm=(from,to)=>{
if(!to.startsWith('.'))return to
const parts=from.split('/')
parts.pop()
to.split('/').forEach(part=>{
if(!part||part=='.')return
part=='..'?parts.pop():parts.push(part)
})
return parts.join('/')
}
const walk=file=>{
if(mods.has(file))return
const src=files[file]
if(src==null)throw new Error(`Missing file: ${file}`)
const {code}=transform(src,{presets:[['env',{modules:'commonjs'}]],sourceType:'module'})
const deps={}
for(const m of code.matchAll(/require\((['"])(.+?)\1\)/g)){
const spec=m[2]
deps[spec]=norm(file,spec)
}
mods.set(file,{code,deps})
Object.values(deps).forEach(walk)
}
walk(entry)
const esc=s=>s.replace(/\\/g,'\\\\').replace(/`/g,'\\`').replace(/\$\{/g,'\\${')
const body=[...mods].map(([id,{code,deps}])=>`"${id}":[function(require,module,exports){${esc(code)}},${JSON.stringify(deps)}]`).join(',')
return `(()=>{var m={${body}},c={},p=(f,s)=>{if(!s.startsWith('.'))return s;var a=f.split('/');a.pop();s.split('/').forEach(b=>{if(!b||b=='.')return;b=='..'?a.pop():a.push(b)});return a.join('/')},r=f=>{if(!m[f])throw new Error("Missing module "+f);if(c[f])return c[f].exports;var d=m[f],mod={exports:{}};c[f]=mod;d[0](g=>{var t=d[1][g];return r(t?t:p(f,g))},mod,mod.exports);return mod.exports};return r("${entry}")})()`
}
export default bundleApp;