@docyrus/tanstack-db-generator
Version:
Code generator utilities for TanStack Query / Database integration with Docyrus API
47 lines (46 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const generator_1 = require("./generator");
const fs_1 = require("fs");
const path_1 = require("path");
const program = new commander_1.Command();
program
.name('tanstack-db-generator')
.description('Generate TanStack Query collections and TypeScript types from OpenAPI 3.1.0 specification')
.version('0.0.0')
.argument('<openapi-spec>', 'Path to OpenAPI 3.1.0 specification file (JSON format)')
.option('-o, --output <dir>', 'Output directory (defaults to src in same folder as spec file)')
.option('-w, --watch', 'Watch for changes in the OpenAPI spec file')
.action(async (specPath, options) => {
try {
const resolvedPath = (0, path_1.resolve)(specPath);
if (!(0, fs_1.existsSync)(resolvedPath)) {
console.error(`Error: OpenAPI spec file not found: ${resolvedPath}`);
process.exit(1);
}
// Determine output directory
const outputDir = options.output || (0, path_1.join)((0, path_1.dirname)(resolvedPath), 'src');
console.log('🚀 TanStack DB Generator');
console.log(`Spec file: ${resolvedPath}`);
console.log(`Output directory: ${outputDir}`);
const specContent = (0, fs_1.readFileSync)(resolvedPath, 'utf-8');
const spec = JSON.parse(specContent);
if (spec.openapi !== '3.1.0') {
console.error(`Error: Expected OpenAPI version 3.1.0, got ${spec.openapi}`);
process.exit(1);
}
await (0, generator_1.generateFromOpenAPI)(spec, outputDir);
console.log('✅ Generation completed successfully!');
if (options.watch) {
console.log('👀 Watching for changes...');
// TODO: Implement file watching
}
}
catch (error) {
console.error('Error:', error);
process.exit(1);
}
});
program.parse();