nuxt-crud-cli
Version:
CLI tool for generating CRUD backend files in Nuxt 3 projects
36 lines (33 loc) • 1.03 kB
JavaScript
import { promises as fs } from 'fs';
import path from 'path';
const DB_PATH = path.join(process.cwd(), 'server', 'database', 'index.ts');
const TEMPLATE = `import { drizzle } from "drizzle-orm/d1";
import * as schema from "./schema";
export const tables = schema;
/**
* Returns a Drizzle instance.
*
* @returns {ReturnType<typeof drizzle<typeof schema>>} The Drizzle instance.
*/
export function useDB(): ReturnType<typeof drizzle<typeof schema>> {
return drizzle(hubDatabase(), { schema });
}
`;
export async function makeDatabase() {
try {
await fs.mkdir(path.dirname(DB_PATH), { recursive: true });
await fs.writeFile(DB_PATH, TEMPLATE, 'utf-8');
console.log('Drizzle ORM database initialized at', DB_PATH);
}
catch (err) {
console.error('Failed to initialize database:', err);
process.exit(1);
}
}
export default {
command: 'make:database',
describe: 'Create Drizzle ORM database file',
handler: async () => {
await makeDatabase();
}
};