zqserver-cli
Version:
Zqs cli tool
84 lines • 6.97 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.add = void 0;
const colors = require("colors/safe");
const eac = require("english-article-classifier");
const fs = require("fs");
const fse = require("fs-extra");
const lodash = require("lodash");
const inquirer = require("inquirer");
const pluralize = require("pluralize");
function add(flags, answers_) {
return __awaiter(this, void 0, void 0, function* () {
const cwd = process.cwd();
let answers;
if (!answers_)
answers = yield inquirer.prompt([
{
type: 'input',
name: 'model',
default: 'sample',
message: 'model 名称',
},
{
type: 'input',
name: 'endpoint',
default: (answer) => `/api/${pluralize(answer.model)}`,
message: '路由地址',
},
{
type: 'input',
name: 'path',
default: (answer) => `${cwd}/src/api/${answer.model}`,
message: '所在路径',
validate: input => {
if (fs.existsSync(input))
return colors.red(`API Path ${input} already exits`);
return true;
},
},
]);
else
answers = answers_;
flags.model = answers.model;
flags.endpoint = answers.endpoint;
flags.path = answers.path;
try {
yield fse.mkdirp(flags.path);
const controllerTmp = yield fse.readFile(__dirname + `/../templates/api/controller.ts`);
const modelTmp = yield fse.readFile(__dirname + `/../templates/api/model.ts`);
const routerTmp = yield fse.readFile(__dirname + `/../templates/api/router.ts`);
const modelUppercase = lodash.capitalize(flags.model);
const options = {
model: flags.model,
modelUppercase: modelUppercase,
modelUppercasePlural: pluralize(modelUppercase),
article: eac.classifyArticle(flags.model).type,
endpoint: flags.endpoint,
};
const controller = lodash.template(controllerTmp.toString())(options);
const model = lodash.template(modelTmp.toString())(options);
const router = lodash.template(routerTmp.toString())(options);
yield fse.outputFile(`${flags.path}/controller.ts`, controller);
yield fse.outputFile(`${flags.path}/model.ts`, model);
yield fse.outputFile(`${flags.path}/router.ts`, router);
console.log('Your Api', colors.cyan(flags.model), 'has been created');
return true;
}
catch (e) {
console.log(e);
return false;
}
});
}
exports.add = add;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBc0M7QUFDdEMsa0RBQWtEO0FBQ2xELHlCQUF5QjtBQUN6QixnQ0FBZ0M7QUFDaEMsaUNBQWlDO0FBQ2pDLHFDQUFxQztBQUNyQyx1Q0FBdUM7QUFHdkMsU0FBc0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxRQUFjOztRQUNsRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLENBQUMsUUFBUTtZQUNYLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQzlCO29CQUNFLElBQUksRUFBRSxPQUFPO29CQUNiLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8sRUFBRSxRQUFRO29CQUNqQixPQUFPLEVBQUUsVUFBVTtpQkFDcEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMzRCxPQUFPLEVBQUUsTUFBTTtpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLE1BQU07b0JBQ1osT0FBTyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsWUFBWSxNQUFNLENBQUMsS0FBSyxFQUFFO29CQUMxRCxPQUFPLEVBQUUsTUFBTTtvQkFDZixRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7d0JBQ2hCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7NEJBQ3RCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssZ0JBQWdCLENBQUMsQ0FBQzt3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