UNPKG

@anansi/generator-js

Version:
58 lines 10.5 kB
import { BetterGenerator, resolvePath } from '../utils.js'; const DEFAULT_LIB_PATH = 'lib'; export default class extends BetterGenerator { props; constructor(args, options, features) { super(args, options, features); this.option('lib-path', { alias: 'l', description: 'ES6 module destination', type: String, default: DEFAULT_LIB_PATH }); const { appName, badges = '' } = this.config.getAll(); this.config.set('badges', `${badges} [![npm downloads](https://img.shields.io/npm/dm/${appName}.svg?style=flat-square)](https://www.npmjs.com/package/${appName}) [![gzip size](https://img.badgesize.io/https://unpkg.com/${appName}?compression=gzip&style=flat-square)](https://unpkg.com/${appName}) [![npm version](https://img.shields.io/npm/v/${appName}s.svg?style=flat-square)](https://www.npmjs.com/package/${appName}) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)`); } async initializing() { if (this.options['lib-path']) { this.config.set('libPath', this.options['lib-path']); } else if (!this.config.get('libPath')) { this.config.set('libPath', DEFAULT_LIB_PATH); } this.composeWith(await resolvePath('../rollup', import.meta.url), this.options); } configuring() { this.packageJson.merge(this.fs.readJSONTpl(this.templatePath('package.json.tpl'))); this.fs.extendJSONTpl(this.templatePath('tsconfig.json'), this.destinationPath('tsconfig.json')); this.fs.appendTpl(this.destinationPath('.gitignore'), this.fs.read(this.templatePath('.gitignore.tpl')), this.config.getAll()); } async writingDependencies() { await this.addDevDependencies(['@babel/cli', '@zerollup/ts-transform-paths', 'rimraf']); await this.addDependencies(['core-js-pure']); if (this.config.get('features').includes('storybook')) { await this.addDevDependencies(['@types/react', '@types/react-dom', 'react', 'react-dom']); this.packageJson.merge({ peerDependencies: { react: '^18.0.0', 'react-dom': '^18.0.0' } }); } } writing() { this.fs.copyTpl(this.templatePath('src/**'), this.destinationPath(this.config.get('rootPath')), this.config.getAll(), { globOptions: { dot: true } }); this.fs.copyTpl(this.templatePath('README.md'), this.destinationPath('README.md'), this.config.getAll()); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCZXR0ZXJHZW5lcmF0b3IiLCJyZXNvbHZlUGF0aCIsIkRFRkFVTFRfTElCX1BBVEgiLCJwcm9wcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsIm9wdGlvbnMiLCJmZWF0dXJlcyIsIm9wdGlvbiIsImFsaWFzIiwiZGVzY3JpcHRpb24iLCJ0eXBlIiwiU3RyaW5nIiwiZGVmYXVsdCIsImFwcE5hbWUiLCJiYWRnZXMiLCJjb25maWciLCJnZXRBbGwiLCJzZXQiLCJpbml0aWFsaXppbmciLCJnZXQiLCJjb21wb3NlV2l0aCIsImltcG9ydCIsIm1ldGEiLCJ1cmwiLCJjb25maWd1cmluZyIsInBhY2thZ2VKc29uIiwibWVyZ2UiLCJmcyIsInJlYWRKU09OVHBsIiwidGVtcGxhdGVQYXRoIiwiZXh0ZW5kSlNPTlRwbCIsImRlc3RpbmF0aW9uUGF0aCIsImFwcGVuZFRwbCIsInJlYWQiLCJ3cml0aW5nRGVwZW5kZW5jaWVzIiwiYWRkRGV2RGVwZW5kZW5jaWVzIiwiYWRkRGVwZW5kZW5jaWVzIiwiaW5jbHVkZXMiLCJwZWVyRGVwZW5kZW5jaWVzIiwicmVhY3QiLCJ3cml0aW5nIiwiY29weVRwbCIsImdsb2JPcHRpb25zIiwiZG90Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYnJhcnkvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUZlYXR1cmVzLCBCYXNlT3B0aW9ucyB9IGZyb20gJ3llb21hbi1nZW5lcmF0b3InO1xuXG5pbXBvcnQgeyBCZXR0ZXJHZW5lcmF0b3IsIHJlc29sdmVQYXRoIH0gZnJvbSAnLi4vdXRpbHMuanMnO1xuXG5jb25zdCBERUZBVUxUX0xJQl9QQVRIID0gJ2xpYic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQmV0dGVyR2VuZXJhdG9yPExpYnJhcnlPcHRpb25zLCBCYXNlRmVhdHVyZXM+IHtcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFyZ3M6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM6IExpYnJhcnlPcHRpb25zLFxuICAgIGZlYXR1cmVzOiBCYXNlRmVhdHVyZXMsXG4gICkge1xuICAgIHN1cGVyKGFyZ3MsIG9wdGlvbnMsIGZlYXR1cmVzKTtcblxuICAgIHRoaXMub3B0aW9uKCdsaWItcGF0aCcsIHtcbiAgICAgIGFsaWFzOiAnbCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0VTNiBtb2R1bGUgZGVzdGluYXRpb24nLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogREVGQVVMVF9MSUJfUEFUSCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgYXBwTmFtZSwgYmFkZ2VzID0gJycgfSA9IHRoaXMuY29uZmlnLmdldEFsbCgpO1xuICAgIHRoaXMuY29uZmlnLnNldChcbiAgICAgICdiYWRnZXMnLFxuICAgICAgYCR7YmFkZ2VzfVxuWyFbbnBtIGRvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vJHthcHBOYW1lfS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8ke2FwcE5hbWV9KVxuWyFbZ3ppcCBzaXplXShodHRwczovL2ltZy5iYWRnZXNpemUuaW8vaHR0cHM6Ly91bnBrZy5jb20vJHthcHBOYW1lfT9jb21wcmVzc2lvbj1nemlwJnN0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly91bnBrZy5jb20vJHthcHBOYW1lfSlcblshW25wbSB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92LyR7YXBwTmFtZX1zLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlLyR7YXBwTmFtZX0pXG5bIVtQUnMgV2VsY29tZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9QUnMtd2VsY29tZS1icmlnaHRncmVlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwOi8vbWFrZWFwdWxscmVxdWVzdC5jb20pYCxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6aW5nKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ2xpYi1wYXRoJ10pIHtcbiAgICAgIHRoaXMuY29uZmlnLnNldCgnbGliUGF0aCcsIHRoaXMub3B0aW9uc1snbGliLXBhdGgnXSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5jb25maWcuZ2V0KCdsaWJQYXRoJykpIHtcbiAgICAgIHRoaXMuY29uZmlnLnNldCgnbGliUGF0aCcsIERFRkFVTFRfTElCX1BBVEgpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvc2VXaXRoKFxuICAgICAgYXdhaXQgcmVzb2x2ZVBhdGgoJy4uL3JvbGx1cCcsIGltcG9ydC5tZXRhLnVybCksXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyaW5nKCkge1xuICAgIHRoaXMucGFja2FnZUpzb24ubWVyZ2UoXG4gICAgICB0aGlzLmZzLnJlYWRKU09OVHBsKHRoaXMudGVtcGxhdGVQYXRoKCdwYWNrYWdlLmpzb24udHBsJykpLFxuICAgICk7XG4gICAgdGhpcy5mcy5leHRlbmRKU09OVHBsKFxuICAgICAgdGhpcy50ZW1wbGF0ZVBhdGgoJ3RzY29uZmlnLmpzb24nKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCd0c2NvbmZpZy5qc29uJyksXG4gICAgKTtcbiAgICB0aGlzLmZzLmFwcGVuZFRwbChcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCcuZ2l0aWdub3JlJyksXG4gICAgICB0aGlzLmZzLnJlYWQodGhpcy50ZW1wbGF0ZVBhdGgoJy5naXRpZ25vcmUudHBsJykpLFxuICAgICAgdGhpcy5jb25maWcuZ2V0QWxsKCksXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRpbmdEZXBlbmRlbmNpZXMoKSB7XG4gICAgYXdhaXQgdGhpcy5hZGREZXZEZXBlbmRlbmNpZXMoW1xuICAgICAgJ0BiYWJlbC9jbGknLFxuICAgICAgJ0B6ZXJvbGx1cC90cy10cmFuc2Zvcm0tcGF0aHMnLFxuICAgICAgJ3JpbXJhZicsXG4gICAgXSk7XG4gICAgYXdhaXQgdGhpcy5hZGREZXBlbmRlbmNpZXMoWydjb3JlLWpzLXB1cmUnXSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLmdldCgnZmVhdHVyZXMnKS5pbmNsdWRlcygnc3Rvcnlib29rJykpIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRkRGV2RGVwZW5kZW5jaWVzKFtcbiAgICAgICAgJ0B0eXBlcy9yZWFjdCcsXG4gICAgICAgICdAdHlwZXMvcmVhY3QtZG9tJyxcbiAgICAgICAgJ3JlYWN0JyxcbiAgICAgICAgJ3JlYWN0LWRvbScsXG4gICAgICBdKTtcbiAgICAgIHRoaXMucGFja2FnZUpzb24ubWVyZ2Uoe1xuICAgICAgICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgcmVhY3Q6ICdeMTguMC4wJyxcbiAgICAgICAgICAncmVhY3QtZG9tJzogJ14xOC4wLjAnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGluZygpIHtcbiAgICB0aGlzLmZzLmNvcHlUcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnc3JjLyoqJyksXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCh0aGlzLmNvbmZpZy5nZXQoJ3Jvb3RQYXRoJykpLFxuICAgICAgdGhpcy5jb25maWcuZ2V0QWxsKCksXG4gICAgICB7IGdsb2JPcHRpb25zOiB7IGRvdDogdHJ1ZSB9IH0sXG4gICAgKTtcbiAgICB0aGlzLmZzLmNvcHlUcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnUkVBRE1FLm1kJyksXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCgnUkVBRE1FLm1kJyksXG4gICAgICB0aGlzLmNvbmZpZy5nZXRBbGwoKSxcbiAgICApO1xuICB9XG59XG5cbnR5cGUgTGlicmFyeU9wdGlvbnMgPSBCYXNlT3B0aW9ucyAmIHsgJ2xpYi1wYXRoJzogc3RyaW5nOyBmZWF0dXJlczogc3Ry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