UNPKG

@nhz.io/slush-um

Version:

Micro module generator (@nhz.io scoped)

116 lines (94 loc) 2.34 kB
// # Micro module generator (@nhz.io scoped) // ## You get: // * **TDD Dev environment configured for tiny packages** // * **Literate Coffeescript template to start with (README.litcoffee)** // > // * `npm start` - to start TDD // * `npm build` // > // * [coffeescript 2] // * [coffeelint] // * [coffeetape] // * [faucet] // * [tape-async] // * [chokidar-cli] // * [husky] // > // * `.travis.yml` for scoped publish (public) - just set `NPM_AUTH_TOKEN` // ## Install // ```bash // npm i -g slush @nhz.io/slush-um // ``` // ## Usage // ```bash // mkdir um && cd um // slush @nhz.io/um // ``` // ## Literate Source // ### Imports // > Builtins var camelcase, conflict, gulp, inquirer, install, path, pump, rename, slugify, template; path = require('path'); // > General gulp = require('gulp'); pump = require('pump'); inquirer = require('inquirer'); // > Gulp plugins install = require('gulp-install'); conflict = require('gulp-conflict'); template = require('gulp-template'); rename = require('gulp-rename'); // > String utils imports slugify = require('slugify'); camelcase = require('camelcase'); // ## Default task gulp.task('default', async function() { var answers; answers = (await inquirer.prompt([ { name: 'pkgName', message: 'Package name?', // > Strip scope prefix from default package name default: (path.basename(process.cwd())).replace(/^(nhz-io-)?/, '') }, { name: 'pkgDescription', message: 'Description?' }, { name: 'pkgVersion', message: 'Version?', default: '0.0.0' }, { type: 'confirm', name: 'continue', message: 'Continue?' } ])); if (!answers.continue) { return done(); } // > Strip scope prefix from package name answers.pkgName = answers.pkgName.replace(/^nhz-io-/, ''); // > Slugify answers.pkgNameSlug = slugify(answers.pkgName, '-'); // > Camel Case answers.pkgNameCamelCase = camelcase(answers.pkgName); // > Generate package return pump([ gulp.src(__dirname + '/templates/**'), template(answers), rename(function(f) { if (f.basename[0] === '_') { return f.basename = `.${f.basename.slice(1)}`; } }), conflict('./'), gulp.dest('./'), install() ]); }); // ## Version 1.1.5 // ## License [MIT](LICENSE)