11import * as fs from "fs" ;
22import * as path from "path" ;
3- import { createRequire } from "module" ;
4- // import { fileURLToPath } from "url";
53
64import { File } from "./types.js" ;
75import { parseFiles } from "./parser.js" ;
86
9- // Create require relative to this file's location (for ESM compatibility)
10- // const __filename = fileURLToPath(import.meta.url);
11- // const __dirname = path.dirname(__filename);
12- const require = createRequire ( import . meta. url ) ;
7+ // Statically import all language generators (for bundling)
8+ import { generate as csharp } from "./languages/csharp.js" ;
9+ import { generate as cpp } from "./languages/cpp.js" ;
10+ import { generate as haxe } from "./languages/haxe.js" ;
11+ import { generate as ts } from "./languages/ts.js" ;
12+ import { generate as js } from "./languages/js.js" ;
13+ import { generate as java } from "./languages/java.js" ;
14+ import { generate as lua } from "./languages/lua.js" ;
15+
16+ const generators : Record < string , Function > = { csharp, cpp, haxe, ts, js, java, lua, } ;
1317
1418export interface GenerateOptions {
1519 files : string [ ] ,
@@ -19,12 +23,9 @@ export interface GenerateOptions {
1923}
2024
2125export function generate ( targetId : string , options : GenerateOptions ) {
22- let generator : Function ;
23-
24- try {
25- generator = require ( './languages/' + targetId + '.js' ) . generate ;
26+ const generator = generators [ targetId ] ;
2627
27- } catch ( e ) {
28+ if ( ! generator ) {
2829 throw new Error ( "You must provide a valid generator as argument, such as: --csharp, --haxe or --cpp" ) ;
2930 }
3031
0 commit comments