UNPKG

@docyrus/tanstack-db-generator

Version:

Code generator utilities for TanStack Query / Database integration with Docyrus API

47 lines (46 loc) 1.99 kB
#!/usr/bin/env node "use strict"; 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();