UNPKG

@prism-engineer/router

Version:

Type-safe Express.js router with automatic client generation

36 lines 1.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCompiler = void 0; const promises_1 = __importDefault(require("fs/promises")); const path_1 = __importDefault(require("path")); const generator_1 = require("./generator"); const createCompiler = () => { const generator = (0, generator_1.createTypeScriptClientGenerator)(); return { async compile(options, routes = []) { // Validate required config if (!options.outputDir) { throw new Error('outputDir is required'); } try { // Create output directory await promises_1.default.mkdir(options.outputDir, { recursive: true }); // Generate client code const clientCode = await generator.generateClient(options, routes); // Determine file extension const fileName = `${options.name}.generated.ts`; const filePath = path_1.default.join(options.outputDir, fileName); // Write the generated client await promises_1.default.writeFile(filePath, clientCode, 'utf-8'); } catch (error) { throw new Error(`Compilation failed: ${error.message}`); } } }; }; exports.createCompiler = createCompiler; //# sourceMappingURL=compiler.js.map