mtcute/.config/vite-utils/fixup-cjs.ts

27 lines
731 B
TypeScript
Raw Normal View History

import type { Plugin } from 'vite'
import * as cjsLexer from 'cjs-module-lexer'
import esbuild from 'esbuild'
await cjsLexer.init()
export function fixupCjs(): Plugin {
return {
name: 'fixup-cjs',
async transform(code, id) {
if (!id.match(/\/packages\/tl\/.*\.js$/)) return code
const lexed = cjsLexer.parse(code)
const r = await esbuild.transform(code, { format: 'esm' })
code = r.code.replace(/export default require_stdin\(\);/, '')
code += 'const __exp = require_stdin()\n'
for (const exp of lexed.exports) {
code += `export const ${exp} = __exp.${exp}\n`
}
return code
},
}
}