UNPKG

generator-nordnet-es-module

Version:
216 lines (185 loc) 8.27 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _yeomanGenerator = require('yeoman-generator'); var _underscoreString = require('underscore.string'); var _underscoreString2 = _interopRequireDefault(_underscoreString); var _mkdirp = require('mkdirp'); var _mkdirp2 = _interopRequireDefault(_mkdirp); var _normalizeUrl = require('normalize-url'); var _normalizeUrl2 = _interopRequireDefault(_normalizeUrl); var _humanizeUrl = require('humanize-url'); var _humanizeUrl2 = _interopRequireDefault(_humanizeUrl); var NordnetEsModule = (function (_Base) { _inherits(NordnetEsModule, _Base); function NordnetEsModule() { _classCallCheck(this, NordnetEsModule); _get(Object.getPrototypeOf(NordnetEsModule.prototype), 'constructor', this).apply(this, arguments); } _createClass(NordnetEsModule, [{ key: 'init', value: function init() { var _this = this; var cb = this.async(); this.prompt([{ name: 'isCorporate', message: 'corporate?', type: 'confirm', store: true, 'default': true }, { name: 'isOpensource', message: 'open-source?', type: 'confirm', 'default': true }, { name: 'moduleName', message: 'name:', 'default': this.appname.replace(/\s/g, '-'), filter: function filter(val) { return _underscoreString2['default'].slugify(val); } }, { name: 'moduleDesc', message: 'description:' }, { name: 'moduleKeywords', message: 'keywords:' }, { name: 'moduleVersion', message: 'version:', store: true, 'default': '0.0.0' }, { name: 'moduleLicense', message: 'license:', store: true, 'default': 'MIT' }, { name: 'github', message: 'your github:', store: true, validate: function validate(val) { return val.length > 0 ? true : 'You have to provide a username'; } }, { name: 'site', message: 'your site:', store: true, filter: function filter(val) { return (0, _normalizeUrl2['default'])(val); } }, { when: function when(props) { return props.isCorporate; }, name: 'companyName', message: 'company name:', store: true }, { when: function when(props) { return props.isCorporate; }, name: 'companyGithub', message: 'company github:', store: true, validate: function validate(val) { return val.length > 0 ? true : 'You have to provide a username'; } }, { when: function when(props) { return props.isCorporate; }, name: 'companySite', message: 'company site:', store: true }, { when: function when(props) { return !props.isOpensource; }, name: 'repositoryUrl', message: 'repository url:', validate: function validate(val) { return val.length > 0 ? true : 'You have to repositoryUrl URL'; } }, { when: function when(props) { return !props.isOpensource; }, name: 'publishConfig', message: 'publishConfig:', store: true, validate: function validate(val) { return val.length > 0 ? true : 'You have to provide a publishConfig URL'; } }], function (props) { var name = _this.user.git.name(); var email = _this.user.git.email(); var moduleKeywords = (props.moduleKeywords || '').trim().split(',').map(function (i) { return (i || '').trim(); }); var licenseName = props.isCorporate ? props.companyName : name; var licenseSite = props.isCorporate ? props.companySite : props.site; var humanizedSite = props.site && (0, _humanizeUrl2['default'])(props.site); var humanizedCompanySite = props.isCorporate && props.companySite && (0, _humanizeUrl2['default'])(props.companySite); var humanizedLicenseSite = licenseSite && (0, _humanizeUrl2['default'])(licenseSite); var tpl = { moduleName: props.moduleName, camelModuleName: _underscoreString2['default'].camelize(props.moduleName), moduleDesc: props.moduleDesc, moduleKeywords: moduleKeywords, moduleVersion: props.moduleVersion, moduleLicense: props.moduleLicense, github: props.isCorporate ? props.companyGithub : props.github, licenseName: licenseName, licenseSite: licenseSite, humanizedLicenseSite: humanizedLicenseSite, name: name, email: email, site: props.site, repositoryUrl: props.repositoryUrl, isCorporate: props.isCorporate, isOpensource: props.isOpensource, companyName: props.companyName, companySite: props.companySite, humanizedSite: humanizedSite, humanizedCompanySite: humanizedCompanySite, publishConfig: props.publishConfig }; var cpTpl = function cpTpl(from, to) { _this.fs.copyTpl(_this.templatePath(from), _this.destinationPath(to), tpl); }; (0, _mkdirp2['default'])('src'); (0, _mkdirp2['default'])('test'); cpTpl('_README.md', 'README.md'); cpTpl('_indexjs', 'src/index.js'); cpTpl('_testjs', 'test/test.js'); cpTpl('_package.json', 'package.json'); cpTpl('editorconfig', '.editorconfig'); cpTpl('travis.yml', '.travis.yml'); cpTpl('jscsrc', '.jscsrc'); cpTpl('eslintrc', '.eslintrc'); cpTpl('eslintignore', '.eslintignore'); cpTpl('gitignore', '.gitignore'); cpTpl('npmignore', '.npmignore'); cpTpl('istanbul.yml', '.istanbul.yml'); cpTpl('mocha.opts', 'test/mocha.opts'); cb(); }); } }, { key: 'install', value: function install() { this.installDependencies({ bower: false }); } }]); return NordnetEsModule; })(_yeomanGenerator.Base); exports['default'] = NordnetEsModule; module.exports = exports['default'];