UNPKG

@n0safe/indirectus

Version:
109 lines 4.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const citty_1 = require("citty"); const console_1 = __importDefault(require("../console")); const options_1 = require("@wolfpkgs/core/options"); const generator_1 = require("../../types/generators/generator"); const node_path_1 = __importDefault(require("node:path")); (async function main() { try { } catch (e) { console_1.default.error(options_1.Options.getErrorMessage(e)); console_1.default.error(e); process.exit(1); } })(); exports.default = (0, citty_1.defineCommand)({ meta: { name: "generate", description: "Generates an SDK for a given schema", }, args: { url: { type: "string", required: true, description: "The URL of the Directus instance to generate an SDK for", default: process.env.DIRECTUS_URL ?? "http://localhost:8055", valueHint: process.env.DIRECTUS_URL ?? "http://localhost:8055", }, token: { type: "string", description: "An static token with admin role assigned.", default: process.env.DIRECTUS_TOKEN ?? undefined, valueHint: "static-token", }, dir: { type: "string", required: false, description: "Set a custom directory instead of '.directus'", default: "./.directus/", valueHint: "./.directus/", }, outputDir: { type: "string", required: false, description: "Set a custom directory instead of '.directus'", default: "./.directus/generated", valueHint: "./.directus/generated", }, cache: { type: "boolean", required: false, description: "Whether to enable caching to avoid subsequent requests to the server.", default: false, }, plugins: { type: 'positional', required: false, description: 'A list of plugins to use', valueHint: 'plugin1,plugin2,...', default: '', } }, async run(context) { const options = await generator_1.GeneratorOptions.get({ url: context.args.url, token: context.args.token, config: context.args.dir, output: context.args.outputDir ?? node_path_1.default.join(context.args.dir, "generated"), template: "default", useCache: context.args.cache, plugins: context.args.plugins, }); const generator = new generator_1.Generator(options); generator.on("schema.begin", async () => console_1.default.start("Fetching schema")); generator.on("schema.success", async () => console_1.default.success("Schema fetched")); generator.on("schema.failure", async (err) => { console_1.default.fail("Error fetching schema"); console_1.default.error(err); }); generator.on("file.format.error", async (file, err) => { console_1.default.error("Error formatting file", err); }); generator.on("generation.begin", async () => console_1.default.start("Starting generation")); generator.on("generation.success", async () => console_1.default.success("Generation finished")); generator.on("generation.failure", async (err) => { console_1.default.fail("Generation errror", err); console_1.default.error(err); }); generator.on("generation.plugins.begin", async () => console_1.default.start("Starting plugins generation")); generator.on("generation.plugins.success", async () => console_1.default.success("Plugins generation finished")); generator.on("generation.plugins.failure", async (err) => { console_1.default.fail("Plugins Generation errror", err); console_1.default.error(err); }); generator.on('generation.plugins.generate', async (pluginName) => { console_1.default.info(`Generating plugin: ${pluginName}`); }); generator.on('plugins', async (plugins) => { console_1.default.info(`Using plugins: ${plugins.join(', ')}`); }); await generator.initialize(); await generator.generate(); }, }); //# sourceMappingURL=generate.js.map