simba-cli
Version:
A simple CLI to handle most basic and everyday usage cli command wishes
35 lines • 1.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateModule = void 0;
const path_1 = __importDefault(require("path"));
const process_1 = require("process");
const fs_extra_1 = require("fs-extra");
const yargs_1 = __importDefault(require("yargs"));
const log_1 = require("../log");
// Example command: as g w splash-screen --hooks --stateful
const generateModule = (sName) => {
const dir = (0, process_1.cwd)();
const options = yargs_1.default.argv;
const name = sName.split('/').reverse()[0];
const base = `${dir}/${sName}`;
if (!name) {
throw Error(`Invalid module name: ${sName}`);
}
const filenames = 'controller,service,route,validator'.split(',').map(n => {
return path_1.default.normalize(`${base}/${name}.${n}.${options.js ? 'js' : 'ts'}`);
});
if ((0, fs_extra_1.existsSync)(base)) {
log_1.Log.error('Could not create module because it already exists in same destination');
return;
}
filenames.forEach(f => {
(0, fs_extra_1.ensureFileSync)(f);
(0, fs_extra_1.writeFileSync)(f, '');
console.log(`Created file: ${f}`);
});
};
exports.generateModule = generateModule;
//# sourceMappingURL=module.js.map