UNPKG

@usefui/svgjsx

Version:

Open Source Command Line Interfaces to generate JSX Icon Components from SVGs.

67 lines • 2.55 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCli = exports.handleGenerate = void 0; const commander_1 = require("commander"); const generate_1 = require("./commands/generate"); const validators_1 = require("./core/validators"); const result_1 = require("./utils/result"); const handleGenerate = (options) => { console.log("šŸ”§ Checking configuration..."); const configResult = (0, validators_1.validateConfig)(options.source, options.output); if (!(0, result_1.isSuccess)(configResult)) (0, generate_1.handleError)(configResult.error); if ((0, result_1.isSuccess)(configResult)) { const generationResult = (0, generate_1.generateIcons)(configResult.value); if (!(0, result_1.isSuccess)(generationResult)) (0, generate_1.handleError)(generationResult.error); if ((0, result_1.isSuccess)(generationResult)) (0, generate_1.displayCompletion)(generationResult.value); } }; exports.handleGenerate = handleGenerate; const createCli = () => { const program = new commander_1.Command(); program .name("svgjsx") .description("Generate JSX Icon Components from SVGs") .version("1.0.0") .addHelpText("after", ` Examples: $ svgjsx generate # Use default directories $ svgjsx generate -s ./svg -o ./components # Custom directories $ svgjsx generate --help # Show detailed help `); program .command("generate") .description("Generate TSX components from SVG files") .option("-s, --source <dir>", "Source directory containing SVG files", "./svg") .option("-o, --output <dir>", "Output directory for generated TSX files", "./icons") .action(handleGenerate); program .command("version") .description("Show version information") .action(() => { console.log(`svgjsx v${program.version()}`); }); return program; }; exports.createCli = createCli; const main = () => { const program = createCli(); program.exitOverride(); try { program.parse(); if (!process.argv.slice(2).length) { program.outputHelp(); console.log('\nšŸ’” Tip: Try "svgjsx generate" to get started!'); } } catch (error) { if (error.code !== "commander.helpDisplayed") (0, generate_1.handleError)(error); } }; if (require.main === module) main(); //# sourceMappingURL=index.js.map