next-dev
Version:
Tentu, berikut adalah markdown yang telah diperbaiki:
161 lines (160 loc) • 7.44 kB
JavaScript
#!/usr/bin/env ts-node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const yargs_1 = __importDefault(require("yargs"));
const helpers_1 = require("yargs/helpers");
require("colors");
const fs_1 = __importDefault(require("fs"));
const isNextRootDir_1 = __importDefault(require("./isNextRootDir"));
const generateDevBox_1 = __importDefault(require("./generateDevBox"));
const generateApi_1 = __importDefault(require("./generateApi"));
const generatePage_1 = __importDefault(require("./generatePage"));
const clearDevBox_1 = __importDefault(require("./clearDevBox"));
const generateTree_1 = __importDefault(require("./generateTree"));
const generateModel_1 = __importDefault(require("./generateModel"));
const generateExport_1 = __importDefault(require("./generateExport"));
const devTest_1 = __importDefault(require("./devTest"));
const path_1 = __importDefault(require("path"));
const generatePrismaGlobal_1 = require("./generatePrismaGlobal");
const generateState_1 = __importDefault(require("./generateState"));
const dir = 'src/lib/';
const createApiDirectory = () => {
const apiDir = path_1.default.join(process.cwd(), dir);
if (!fs_1.default.existsSync(apiDir)) {
fs_1.default.mkdirSync(apiDir, { recursive: true });
console.log(dir, "Created directory");
}
return apiDir;
};
createApiDirectory();
(async () => {
(0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
.command("gen-box", "generate DevBox", (yargs) => yargs.option("log", { alias: "l", type: "boolean", default: false, description: "print log to console" })
.example("next-dev gen-box", "Generate DevBox"), async (argv) => {
(0, isNextRootDir_1.default)();
// await checkNextDir();
try {
await (0, generateDevBox_1.default)(argv);
}
catch (error) {
console.error(`Error generating DevBox: ${error}`.red);
}
})
.command("clear-box", "clear DevBox", (yargs) => yargs.option("log", { alias: "l", type: "boolean", default: false, description: "print log to console" })
.example("next-dev clear-box", "Clear DevBox"), async (argv) => {
(0, isNextRootDir_1.default)();
// await checkNextDir();
try {
await (0, clearDevBox_1.default)(argv);
}
catch (error) {
console.error(`Error clearing DevBox: ${error}`.red);
}
})
.command("gen-api", "generate API", (yargs) => yargs.option("log", { alias: "l", type: "boolean", default: false, description: "print log to console" })
.example("next-dev gen-api", "Generate API"), async (argv) => {
(0, isNextRootDir_1.default)();
// await checkNextDir();
try {
await (0, generateApi_1.default)(argv);
}
catch (error) {
console.error(`Error generating API: ${error}`.red);
}
})
.command("gen-page", "generate Page", (yargs) => yargs.option("log", { alias: "l", type: "boolean", default: false, description: "print log to console" })
.example("next-dev gen-page", "Generate page"), async (argv) => {
(0, isNextRootDir_1.default)();
// await checkNextDir();
try {
await (0, generatePage_1.default)(argv);
}
catch (error) {
console.error(`Error generating Page: ${error}`.red);
}
})
.command("gen-tree", "generate Tree", (yargs) => yargs.option("log", { alias: "l", type: "boolean", default: false, description: "print log to console" })
.option("name", { alias: "n", type: "string", description: "file name without extension" })
.example("next-dev gen-tree -n index", "Generate tree"), async (argv) => {
await (0, generateTree_1.default)(argv);
})
.command("gen-model", "generate Model", (yargs) => yargs
.option("log", { alias: "l", type: "boolean", default: false, description: "log" })
.option("url", { alias: "u", type: "string", description: "imput url" })
.option("name", { alias: "n", type: "string", default: "Model", description: "interface name" })
.option("out", { alias: "o", type: "string", default: "src/model", description: "output directory" })
.option("file", { alias: "f", type: "string", description: "input file" })
.option("dir", { alias: "d", type: "string", description: "input directory" })
.example("next-dev gen-model -u http://localhost:3000/api/ -o ./src/model", "Generate model"), async (argv) => {
await (0, generateModel_1.default)(argv);
})
.command("gen-export", "generate Export", (yargs) => yargs
.option("log", { alias: "l", type: "boolean", default: false, description: "log" })
.option("dir", { alias: "d", type: "string", description: "directory", demandOption: true })
.option("listFilter", { alias: "f", type: "array", description: "list filter", coerce: (arg) => arg.map(String) })
.option("const", { alias: "c", type: "boolean", default: false, description: "generate const export" })
.example("next-dev gen-export -d ./src/model", "Generate export model"), async (argv) => {
await (0, generateExport_1.default)(argv);
})
.command("dev-test", "dev-test", (yargs) => yargs
.option("log", {
alias: "l",
type: "boolean",
default: false,
description: "Mengaktifkan logging hasil pengujian"
})
.option("url", {
alias: "u",
type: "string",
description: "URL yang akan diuji (contoh: http://localhost:3000)",
demandOption: true
})
.option("connections", {
alias: "c",
type: "number",
default: 200,
description: "Jumlah koneksi bersamaan yang digunakan selama pengujian"
})
.option("pipelining", {
alias: "p",
type: "number",
default: 10,
description: "Jumlah permintaan HTTP yang dipipelin"
})
.option("rate", {
alias: "r",
type: "number",
default: 1000,
description: "Laju permintaan per detik"
})
.option("workers", {
alias: "w",
type: "number",
default: 4,
description: "Jumlah thread pekerja yang digunakan"
})
.option("duration", {
alias: "d",
type: "number",
default: 60,
description: "Durasi pengujian dalam detik"
})
.example("next-dev dev-test --url http://localhost:3000 --connections 200 --pipelining 10 --rate 1000 --workers 4 --duration 60", "Menjalankan pengujian pengembangan dengan 200 koneksi, 10 permintaan pipelined, 1000 permintaan per detik, 4 thread pekerja, dan durasi 60 detik"), async (argv) => {
await (0, devTest_1.default)(argv);
})
.command("gen-prisma", "generate prisma global", yargs => yargs, async (argv) => {
// await checkNextDir();
await (0, generatePrismaGlobal_1.funPrismaGlobal)(argv);
})
.command("gen-state", "generate state", yargs => yargs, async (argv) => {
// await checkNextDir();
await (0, generateState_1.default)(argv);
})
.recommendCommands()
.demandCommand(1)
.help()
.parse();
})();