#!/usr/bin/env node import yargs from "yargs/yargs"; import { addCollection } from "./add-collection.js"; import { addJDDComponent } from "./add-jdd-component.js"; import { addRoute } from "./add-route.js"; import { addCRUD } from "./add-crud.js"; import { buildProject } from "./build.js"; import { generateCollections } from "./generate-collections.js"; import { generateComponents } from "./generate-components.js"; import { generateRoutes } from "./generate-routes.js"; import { getFonts } from "./get-fonts.js"; import { makeEnv } from "./make-env.js"; import { registerExternalControllers, registerExternalStyles, } from "./register-external.js"; const actions: Record< string, (args: Record) => Promise | undefined > = { "add-collection": addCollection, "add-route": addRoute, "add-crud": addCRUD, "generate-collections": generateCollections, "generate-components": generateComponents, "generate-routes": generateRoutes, build: buildProject, default: async function () { console.info("Usage: `npx sealgen `"); console.info( `Available actions: ${Object.keys(actions) .filter((e) => e != "default") .join(", ")}` ); }, "make-env": makeEnv, "add-component": addJDDComponent, "get-fonts": getFonts, // "crud-field-snippets": crudFieldSnippets, "register-external-controllers": registerExternalControllers, "register-external-styles": registerExternalStyles, }; void (async function () { const action = process.argv.at(2); const fn = actions[action || "default"] || actions.default; const args = yargs(process.argv).argv as Record; await fn(args); })();