npm-pkg-kit
Version:
CLI tool to simplify NPM package creation by generating boilerplate setup
52 lines (51 loc) • 1.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const shelljs_1 = require("shelljs");
const files_1 = require("../utils/files");
const npm_1 = require("../utils/npm");
const babel_1 = __importDefault(require("./opt/babel"));
const tsc_1 = __importDefault(require("./opt/tsc"));
const bb_main_1 = __importDefault(require("./tpl/cli/bb.main"));
const ts_main_1 = __importDefault(require("./tpl/cli/ts.main"));
const typings_1 = __importDefault(require("./tpl/cli/typings"));
function default_1(name, cmd) {
const dir = npm_1.gen(name);
const opt = cmd.opts();
if (opt.ts) {
tsc_1.default(dir);
}
else {
babel_1.default(dir, true);
}
shelljs_1.exec(`cd ${dir} && npm i -S commander`);
template(dir, opt.ts);
cli(dir, opt.ts);
}
exports.default = default_1;
function template(dir, ts) {
const src = path_1.join(dir, 'src');
shelljs_1.mkdir('-p', src);
if (ts) {
files_1.writeContent(src, 'main.ts', ts_main_1.default);
files_1.writeContent(src, 'typings.d.ts', typings_1.default);
}
else {
files_1.writeContent(src, 'main.js', bb_main_1.default);
}
}
function cli(dir, ts) {
const pack = files_1.readJSON(dir, 'package.json');
pack.main = 'dist/main.js';
pack.bin = {
[pack.name]: pack.main,
};
pack.scripts.dist = 'run-s dist:*';
pack.scripts['dist:lint'] = `npm run lint`;
pack.scripts['dist:clean'] = `npm run clean`;
pack.scripts['dist:build'] = ts ? 'tsc' : 'babel src -d dist';
files_1.writeJSON(dir, 'package.json', pack, 2);
}