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
JavaScript
;
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();