UNPKG

npmize

Version:

Let's create an npm package without worrying about anything.

75 lines (74 loc) 3.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.build = exports.dev = exports.init = exports.app = void 0; const noarg_1 = __importDefault(require("noarg")); const config_1 = __importDefault(require("./config")); const utils_1 = require("./utils"); const ansi_colors_1 = __importDefault(require("ansi-colors")); exports.app = noarg_1.default.create(config_1.default.name, { description: config_1.default.description, flags: { version: noarg_1.default.boolean().aliases('v').description('Show the version'), }, }).on((_, flags) => { if (flags.version) { console.log((0, utils_1.getVersion)()); } else exports.app.renderHelp(); }); exports.init = exports.app.create('init', { description: 'Initialize a new npm package', arguments: [ { name: 'name', description: 'Name of the package', type: noarg_1.default.string().default('.').ask("What's the name of the package?"), }, ], flags: { pkg: noarg_1.default.boolean().default(true).description('Make package.json with needed fields'), tsconfig: noarg_1.default.boolean().default(true).description('Write "tsconfig.json"'), workflow: noarg_1.default.boolean().default(true).description('Write a workflow file'), install: noarg_1.default.boolean().default(true).description('Install needed npm packages'), sample: noarg_1.default.boolean().default(true).description('Write a sample file ./src/index.ts'), ignore: noarg_1.default.boolean().default(true).description("Write '.gitignore' and '.npmignore'"), npmignore: noarg_1.default.boolean().default(true).description('Write .npmignore'), gitignore: noarg_1.default.boolean().default(true).description('Write .gitignore'), }, }); const devAndBuild = noarg_1.default.defineConfig({ optionalArguments: [ { name: 'root', description: 'Root directory of the package', type: noarg_1.default.string().description('Root directory'), }, ], flags: { module: noarg_1.default.string('cjs', 'mjs').aliases('m').description('Output module type .cjs or .mjs'), node: noarg_1.default.boolean() .aliases('n') .default(false) .description('Enable __dirname and __filename in ES modules'), }, notes: [ `Arguments after "${ansi_colors_1.default.yellow('--tsc')}" will be passed to ${ansi_colors_1.default.yellow('TypeScript')} compiler.`, ['--project', '--module', '--outDir', '--watch'] .map((flag) => ansi_colors_1.default.yellow(flag)) .join(', ') + ' and their aliases are ignored.', ], trailingArguments: '--tsc', customRenderHelp: { helpUsageTrailingArgsLabel: '[TypeScript Args]' }, }); exports.dev = exports.app.create('dev', Object.assign(Object.assign({}, devAndBuild), { description: 'Start the development compiler', flags: Object.assign(Object.assign({}, devAndBuild.flags), { focus: noarg_1.default.string('cjs', 'mjs') .aliases('f') .default('mjs') .description('Focus the typescript compilation process of a specific module') }) })); exports.build = exports.app.create('build', Object.assign(Object.assign({}, devAndBuild), { description: 'Build the package for production', flags: Object.assign(Object.assign({}, devAndBuild.flags), { worker: noarg_1.default.boolean() .aliases('w') .default(false) .description('Run the build process in a worker thread') }) }));