@prism-engineer/router
Version:
Type-safe Express.js router with automatic client generation
36 lines • 1.54 kB
JavaScript
;
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