UNPKG

npm-pkg-kit

Version:

CLI tool to simplify NPM package creation by generating boilerplate setup

52 lines (51 loc) 1.77 kB
"use strict"; 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); }