UNPKG

@anansi/generator-js

Version:
137 lines (135 loc) 16.4 kB
import Generator from 'yeoman-generator'; export const licenses = [{ name: 'Apache 2.0', value: 'Apache-2.0' }, { name: 'MIT', value: 'MIT' }, { name: 'Mozilla Public License 2.0', value: 'MPL-2.0' }, { name: 'BSD 2-Clause (FreeBSD) License', value: 'BSD-2-Clause-FreeBSD' }, { name: 'BSD 3-Clause (NewBSD) License', value: 'BSD-3-Clause' }, { name: 'Internet Systems Consortium (ISC) License', value: 'ISC' }, { name: 'GNU AGPL 3.0', value: 'AGPL-3.0' }, { name: 'GNU GPL 3.0', value: 'GPL-3.0' }, { name: 'GNU LGPL 3.0', value: 'LGPL-3.0' }, { name: 'Unlicense', value: 'unlicense' }, { name: 'No License (Copyrighted)', value: 'UNLICENSED' }]; export default class GeneratorLicense extends Generator { constructor(args, options, features) { if (options.resolved?.startsWith('file://')) options.resolved = options.resolved.substring(7); // @ts-expect-error dynamic options super(args, options, features); this.option('name', { type: String, description: 'Name of the license owner' }); this.option('email', { type: String, description: 'Email of the license owner' }); this.option('website', { type: String, description: 'Website of the license owner' }); this.option('year', { type: String, description: 'Year(s) to include on the license', default: new Date().getFullYear() }); this.option('licensePrompt', { type: String, description: 'License prompt text', default: 'Which license do you want to use?', hide: true }); this.option('defaultLicense', { type: String, description: 'Default license' }); this.option('license', { type: String, description: 'Select a license, so no license prompt will happen, in case you want to handle it outside of this generator' }); this.option('output', { type: String, description: 'Set the output file for the generated license', default: 'LICENSE' }); this.option('publish', { type: Boolean, description: 'Publish the package' }); } async initializing() { this.gitc = { user: { name: await this.git.name(), email: await this.git.email() } }; } prompting() { const prompts = [{ type: 'select', name: 'license', message: this.options.licensePrompt, default: this.options.defaultLicense, when: !this.options.license || licenses.find(x => x.value === this.options.license) === undefined, choices: licenses }]; return this.prompt(prompts).then(props => { this.props = Object.assign({ name: this.options.name || this.gitc.user.name, email: this.options.email || this.gitc.user.email, website: this.options.website, license: this.options.license }, props); }); } configuring() { // License file const filename = this.props.license + '.txt'; let author = this.props.name.trim(); if (this.props.email) { author += ' <' + this.props.email.trim() + '>'; } if (this.props.website) { author += ' (' + this.props.website.trim() + ')'; } this.fs.copyTpl(this.templatePath(filename), this.destinationPath(this.options.output), { year: this.options.year, author: author }); // Package if (!this.fs.exists(this.destinationPath('package.json'))) { return; } const pkg = this.fs.readJSON(this.destinationPath('package.json'), {}); pkg.license = this.props.license; if (this.options.publish === undefined && this.props.license === 'UNLICENSED' || this.options.publish === false) { delete pkg.license; pkg.private = true; } this.packageJson.merge(pkg); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHZW5lcmF0b3IiLCJsaWNlbnNlcyIsIm5hbWUiLCJ2YWx1ZSIsIkdlbmVyYXRvckxpY2Vuc2UiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJvcHRpb25zIiwiZmVhdHVyZXMiLCJyZXNvbHZlZCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJvcHRpb24iLCJ0eXBlIiwiU3RyaW5nIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0IiwiRGF0ZSIsImdldEZ1bGxZZWFyIiwiaGlkZSIsIkJvb2xlYW4iLCJpbml0aWFsaXppbmciLCJnaXRjIiwidXNlciIsImdpdCIsImVtYWlsIiwicHJvbXB0aW5nIiwicHJvbXB0cyIsIm1lc3NhZ2UiLCJsaWNlbnNlUHJvbXB0IiwiZGVmYXVsdExpY2Vuc2UiLCJ3aGVuIiwibGljZW5zZSIsImZpbmQiLCJ4IiwidW5kZWZpbmVkIiwiY2hvaWNlcyIsInByb21wdCIsInRoZW4iLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsIndlYnNpdGUiLCJjb25maWd1cmluZyIsImZpbGVuYW1lIiwiYXV0aG9yIiwidHJpbSIsImZzIiwiY29weVRwbCIsInRlbXBsYXRlUGF0aCIsImRlc3RpbmF0aW9uUGF0aCIsIm91dHB1dCIsInllYXIiLCJleGlzdHMiLCJwa2ciLCJyZWFkSlNPTiIsInB1Ymxpc2giLCJwcml2YXRlIiwicGFja2FnZUpzb24iLCJtZXJnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWNlbnNlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBHZW5lcmF0b3IsIHsgdHlwZSBCYXNlT3B0aW9ucyB9IGZyb20gJ3llb21hbi1nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgbGljZW5zZXMgPSBbXG4gIHsgbmFtZTogJ0FwYWNoZSAyLjAnLCB2YWx1ZTogJ0FwYWNoZS0yLjAnIH0sXG4gIHsgbmFtZTogJ01JVCcsIHZhbHVlOiAnTUlUJyB9LFxuICB7IG5hbWU6ICdNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIDIuMCcsIHZhbHVlOiAnTVBMLTIuMCcgfSxcbiAgeyBuYW1lOiAnQlNEIDItQ2xhdXNlIChGcmVlQlNEKSBMaWNlbnNlJywgdmFsdWU6ICdCU0QtMi1DbGF1c2UtRnJlZUJTRCcgfSxcbiAgeyBuYW1lOiAnQlNEIDMtQ2xhdXNlIChOZXdCU0QpIExpY2Vuc2UnLCB2YWx1ZTogJ0JTRC0zLUNsYXVzZScgfSxcbiAgeyBuYW1lOiAnSW50ZXJuZXQgU3lzdGVtcyBDb25zb3J0aXVtIChJU0MpIExpY2Vuc2UnLCB2YWx1ZTogJ0lTQycgfSxcbiAgeyBuYW1lOiAnR05VIEFHUEwgMy4wJywgdmFsdWU6ICdBR1BMLTMuMCcgfSxcbiAgeyBuYW1lOiAnR05VIEdQTCAzLjAnLCB2YWx1ZTogJ0dQTC0zLjAnIH0sXG4gIHsgbmFtZTogJ0dOVSBMR1BMIDMuMCcsIHZhbHVlOiAnTEdQTC0zLjAnIH0sXG4gIHsgbmFtZTogJ1VubGljZW5zZScsIHZhbHVlOiAndW5saWNlbnNlJyB9LFxuICB7IG5hbWU6ICdObyBMaWNlbnNlIChDb3B5cmlnaHRlZCknLCB2YWx1ZTogJ1VOTElDRU5TRUQnIH0sXG5dO1xuXG50eXBlIExpY2Vuc2VPcHRpb25zID0gQmFzZU9wdGlvbnMgJiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgd2Vic2l0ZTogc3RyaW5nO1xuICB5ZWFyOiBzdHJpbmc7XG4gIGxpY2Vuc2VQcm9tcHQ6IHN0cmluZztcbiAgZGVmYXVsdExpY2Vuc2U6IHN0cmluZztcbiAgbGljZW5zZTogc3RyaW5nO1xuICBvdXRwdXQ6IHN0cmluZztcbiAgcHVibGlzaDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdlbmVyYXRvckxpY2Vuc2UgZXh0ZW5kcyBHZW5lcmF0b3I8XG4gIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIExpY2Vuc2VPcHRpb25zXG4+IHtcbiAgZGVjbGFyZSBwcml2YXRlIGdpdGM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGRlY2xhcmUgcHJpdmF0ZSBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhcmdzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBMaWNlbnNlT3B0aW9ucyxcbiAgICBmZWF0dXJlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICkge1xuICAgIGlmIChvcHRpb25zLnJlc29sdmVkPy5zdGFydHNXaXRoKCdmaWxlOi8vJykpXG4gICAgICBvcHRpb25zLnJlc29sdmVkID0gb3B0aW9ucy5yZXNvbHZlZC5zdWJzdHJpbmcoNyk7XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGR5bmFtaWMgb3B0aW9uc1xuICAgIHN1cGVyKGFyZ3MsIG9wdGlvbnMsIGZlYXR1cmVzKTtcblxuICAgIHRoaXMub3B0aW9uKCduYW1lJywge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBsaWNlbnNlIG93bmVyJyxcbiAgICB9KTtcblxuICAgIHRoaXMub3B0aW9uKCdlbWFpbCcsIHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRW1haWwgb2YgdGhlIGxpY2Vuc2Ugb3duZXInLFxuICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb24oJ3dlYnNpdGUnLCB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgb2YgdGhlIGxpY2Vuc2Ugb3duZXInLFxuICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb24oJ3llYXInLCB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1llYXIocykgdG8gaW5jbHVkZSBvbiB0aGUgbGljZW5zZScsXG4gICAgICBkZWZhdWx0OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksXG4gICAgfSk7XG5cbiAgICB0aGlzLm9wdGlvbignbGljZW5zZVByb21wdCcsIHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTGljZW5zZSBwcm9tcHQgdGV4dCcsXG4gICAgICBkZWZhdWx0OiAnV2hpY2ggbGljZW5zZSBkbyB5b3Ugd2FudCB0byB1c2U/JyxcbiAgICAgIGhpZGU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9wdGlvbignZGVmYXVsdExpY2Vuc2UnLCB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgbGljZW5zZScsXG4gICAgfSk7XG5cbiAgICB0aGlzLm9wdGlvbignbGljZW5zZScsIHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnU2VsZWN0IGEgbGljZW5zZSwgc28gbm8gbGljZW5zZSBwcm9tcHQgd2lsbCBoYXBwZW4sIGluIGNhc2UgeW91IHdhbnQgdG8gaGFuZGxlIGl0IG91dHNpZGUgb2YgdGhpcyBnZW5lcmF0b3InLFxuICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb24oJ291dHB1dCcsIHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2V0IHRoZSBvdXRwdXQgZmlsZSBmb3IgdGhlIGdlbmVyYXRlZCBsaWNlbnNlJyxcbiAgICAgIGRlZmF1bHQ6ICdMSUNFTlNFJyxcbiAgICB9KTtcblxuICAgIHRoaXMub3B0aW9uKCdwdWJsaXNoJywge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaCB0aGUgcGFja2FnZScsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXppbmcoKSB7XG4gICAgdGhpcy5naXRjID0ge1xuICAgICAgdXNlcjoge1xuICAgICAgICBuYW1lOiBhd2FpdCB0aGlzLmdpdC5uYW1lKCksXG4gICAgICAgIGVtYWlsOiBhd2FpdCB0aGlzLmdpdC5lbWFpbCgpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJvbXB0aW5nKCkge1xuICAgIGNvbnN0IHByb21wdHM6IGFueVtdID0gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnc2VsZWN0JyBhcyBjb25zdCxcbiAgICAgICAgbmFtZTogJ2xpY2Vuc2UnLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLm9wdGlvbnMubGljZW5zZVByb21wdCxcbiAgICAgICAgZGVmYXVsdDogdGhpcy5vcHRpb25zLmRlZmF1bHRMaWNlbnNlLFxuICAgICAgICB3aGVuOlxuICAgICAgICAgICF0aGlzLm9wdGlvbnMubGljZW5zZSB8fFxuICAgICAgICAgIGxpY2Vuc2VzLmZpbmQoeCA9PiB4LnZhbHVlID09PSB0aGlzLm9wdGlvbnMubGljZW5zZSkgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgY2hvaWNlczogbGljZW5zZXMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gdGhpcy5wcm9tcHQocHJvbXB0cykudGhlbihwcm9wcyA9PiB7XG4gICAgICB0aGlzLnByb3BzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHRoaXMub3B0aW9ucy5uYW1lIHx8IHRoaXMuZ2l0Yy51c2VyLm5hbWUsXG4gICAgICAgICAgZW1haWw6IHRoaXMub3B0aW9ucy5lbWFpbCB8fCB0aGlzLmdpdGMudXNlci5lbWFpbCxcbiAgICAgICAgICB3ZWJzaXRlOiB0aGlzLm9wdGlvbnMud2Vic2l0ZSxcbiAgICAgICAgICBsaWNlbnNlOiB0aGlzLm9wdGlvbnMubGljZW5zZSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgY29uZmlndXJpbmcoKSB7XG4gICAgLy8gTGljZW5zZSBmaWxlXG4gICAgY29uc3QgZmlsZW5hbWUgPSB0aGlzLnByb3BzLmxpY2Vuc2UgKyAnLnR4dCc7XG4gICAgbGV0IGF1dGhvciA9IHRoaXMucHJvcHMubmFtZS50cmltKCk7XG4gICAgaWYgKHRoaXMucHJvcHMuZW1haWwpIHtcbiAgICAgIGF1dGhvciArPSAnIDwnICsgdGhpcy5wcm9wcy5lbWFpbC50cmltKCkgKyAnPic7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMud2Vic2l0ZSkge1xuICAgICAgYXV0aG9yICs9ICcgKCcgKyB0aGlzLnByb3BzLndlYnNpdGUudHJpbSgpICsgJyknO1xuICAgIH1cblxuICAgIHRoaXMuZnMuY29weVRwbChcbiAgICAgIHRoaXMudGVtcGxhdGVQYXRoKGZpbGVuYW1lKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKHRoaXMub3B0aW9ucy5vdXRwdXQpLFxuICAgICAge1xuICAgICAgICB5ZWFyOiB0aGlzLm9wdGlvbnMueWVhcixcbiAgICAgICAgYXV0aG9yOiBhdXRob3IsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBQYWNrYWdlXG4gICAgaWYgKCF0aGlzLmZzLmV4aXN0cyh0aGlzLmRlc3RpbmF0aW9uUGF0aCgncGFja2FnZS5qc29uJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGtnOiBhbnkgPSB0aGlzLmZzLnJlYWRKU09OKHRoaXMuZGVzdGluYXRpb25QYXRoKCdwYWNrYWdlLmpzb24nKSwge30pO1xuICAgIHBrZy5saWNlbnNlID0gdGhpcy5wcm9wcy5saWNlbnNlO1xuXG4gICAgaWYgKFxuICAgICAgKHRoaXMub3B0aW9ucy5wdWJsaXNoID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgdGhpcy5wcm9wcy5saWNlbnNlID09PSAnVU5MSUNFTlNFRCcpIHx8XG4gICAgICB0aGlzLm9wdGlvbnMucHVibGlzaCA9PT0gZmFsc2VcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBwa2cubGljZW5zZTtcbiAgICAgIHBrZy5wcml2YXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnBhY2thZ2VKc29uLm1lcmdlKHBrZyk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsU0FBUyxNQUE0QixrQkFBa0I7QUFFOUQsT0FBTyxNQUFNQyxRQUFRLEdBQUcsQ0FDdEI7RUFBRUMsSUFBSSxFQUFFLFlBQVk7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