UNPKG

next-json-cms

Version:

Git-based JSON CMS for Next.js projects with real-time preview - supports both app and pages router

60 lines (59 loc) 2.23 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const init_1 = require("./commands/init"); const start_1 = require("./commands/start"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, "../../package.json"), "utf-8")); const program = new commander_1.Command(); program .name("next-json-cms") .description("Git-based JSON CMS for Next.js projects with support for both app and pages router") .version(packageJson.version); program .command("init [directory]") .description("Initialize a new JSON CMS project") .option("-d, --dir <directory>", "Target directory to create project in (alternative to first argument)") .option("--git-username <username>", "Git username for commits") .option("--git-email <email>", "Git email for commits") .action(async (directoryArg, options) => { try { // Use the first argument as directory if provided, otherwise use --dir option, // or default to current directory const directory = directoryArg || options.dir || "."; await (0, init_1.initProject)({ directory, gitConfig: { username: options.gitUsername, email: options.gitEmail, }, }); } catch (error) { console.error("Failed to initialize project:", error.message); process.exit(1); } }); program .command("start") .description("Start the JSON CMS editor") .option("-p, --port <number>", "Port number", "3000") .option("--host <hostname>", "Host address", "localhost") .action(async (options) => { try { await (0, start_1.startEditor)({ port: parseInt(options.port, 10), host: options.host, }); } catch (error) { console.error("Failed to start editor:", error.message); process.exit(1); } }); program.parse();