UNPKG

tslib-cli

Version:

maximum overkill for typescript and javascript library authors

46 lines (39 loc) 1.39 kB
const path = require('path') const fs = require('fs') const del = require('del').sync const sync = require('child_process').execSync const chalk = require('chalk') const ask = require('readline-sync') const pkg = require('./package.json') const paths = { app: (...p) => path.join(process.cwd(), ...p), cli: (...p) => path.join(__dirname, ...p), bin: (...p) => path.join(process.cwd(), 'node_modules', '.bin', ...p), } paths.config = (...p) => { const local = paths.app(...p) return fs.existsSync(local) ? local : paths.app('node_modules', 'tslib-cli', 'config', ...p) } const run = (cmd, options) => sync(cmd, { stdio: 'inherit', ...options }) const cpy = (s, d) => fs.writeFileSync(d, fs.readFileSync(s, 'utf8'), 'utf8') const rename = (s, d) => fs.renameSync(s, d) const clean = dir => del([paths.app(dir)]) const prefix = chalk.gray(`${pkg.name}@${pkg.version}: `) const log = msg => console.log(prefix + chalk.green.bold(msg)) const error = msg => console.error(prefix + chalk.red.bold(msg)) const warn = msg => console.error(prefix + chalk.yellow.bold(msg)) const info = msg => console.error(prefix + chalk.gray(msg)) const question = (message, value) => ask.question(chalk.green(message) + chalk.gray(value ? ` [${value}] : ` : ` : `), { defaultInput: value }) module.exports = { paths, run, cpy, rename, clean, log, error, warn, info, question, }