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.templatePath('.gitignore.tpl'), this.destinationPath('.gitignore'), 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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCZXR0ZXJHZW5lcmF0b3IiLCJyZXNvbHZlUGF0aCIsIkRFRkFVTFRfTElCX1BBVEgiLCJwcm9wcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsIm9wdGlvbnMiLCJmZWF0dXJlcyIsIm9wdGlvbiIsImFsaWFzIiwiZGVzY3JpcHRpb24iLCJ0eXBlIiwiU3RyaW5nIiwiZGVmYXVsdCIsImFwcE5hbWUiLCJiYWRnZXMiLCJjb25maWciLCJnZXRBbGwiLCJzZXQiLCJpbml0aWFsaXppbmciLCJnZXQiLCJjb21wb3NlV2l0aCIsImltcG9ydCIsIm1ldGEiLCJ1cmwiLCJjb25maWd1cmluZyIsInBhY2thZ2VKc29uIiwibWVyZ2UiLCJmcyIsInJlYWRKU09OVHBsIiwidGVtcGxhdGVQYXRoIiwiZXh0ZW5kSlNPTlRwbCIsImRlc3RpbmF0aW9uUGF0aCIsImFwcGVuZFRwbCIsIndyaXRpbmdEZXBlbmRlbmNpZXMiLCJhZGREZXZEZXBlbmRlbmNpZXMiLCJhZGREZXBlbmRlbmNpZXMiLCJpbmNsdWRlcyIsInBlZXJEZXBlbmRlbmNpZXMiLCJyZWFjdCIsIndyaXRpbmciLCJjb3B5VHBsIiwiZ2xvYk9wdGlvbnMiLCJkb3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlicmFyeS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRmVhdHVyZXMsIEJhc2VPcHRpb25zIH0gZnJvbSAneWVvbWFuLWdlbmVyYXRvcic7XG5cbmltcG9ydCB7IEJldHRlckdlbmVyYXRvciwgcmVzb2x2ZVBhdGggfSBmcm9tICcuLi91dGlscy5qcyc7XG5cbmNvbnN0IERFRkFVTFRfTElCX1BBVEggPSAnbGliJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBCZXR0ZXJHZW5lcmF0b3I8TGlicmFyeU9wdGlvbnMsIEJhc2VGZWF0dXJlcz4ge1xuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXJnczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgb3B0aW9uczogTGlicmFyeU9wdGlvbnMsXG4gICAgZmVhdHVyZXM6IEJhc2VGZWF0dXJlcyxcbiAgKSB7XG4gICAgc3VwZXIoYXJncywgb3B0aW9ucywgZmVhdHVyZXMpO1xuXG4gICAgdGhpcy5vcHRpb24oJ2xpYi1wYXRoJywge1xuICAgICAgYWxpYXM6ICdsJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRVM2IG1vZHVsZSBkZXN0aW5hdGlvbicsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBERUZBVUxUX0xJQl9QQVRILFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBhcHBOYW1lLCBiYWRnZXMgPSAnJyB9ID0gdGhpcy5jb25maWcuZ2V0QWxsKCk7XG4gICAgdGhpcy5jb25maWcuc2V0KFxuICAgICAgJ2JhZGdlcycsXG4gICAgICBgJHtiYWRnZXN9XG5bIVtucG0gZG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9kbS8ke2FwcE5hbWV9LnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlLyR7YXBwTmFtZX0pXG5bIVtnemlwIHNpemVdKGh0dHBzOi8vaW1nLmJhZGdlc2l6ZS5pby9odHRwczovL3VucGtnLmNvbS8ke2FwcE5hbWV9P2NvbXByZXNzaW9uPWd6aXAmc3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3VucGtnLmNvbS8ke2FwcE5hbWV9KVxuWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvJHthcHBOYW1lfXMuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvJHthcHBOYW1lfSlcblshW1BScyBXZWxjb21lXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1BScy13ZWxjb21lLWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHA6Ly9tYWtlYXB1bGxyZXF1ZXN0LmNvbSlgLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXppbmcoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1snbGliLXBhdGgnXSkge1xuICAgICAgdGhpcy5jb25maWcuc2V0KCdsaWJQYXRoJywgdGhpcy5vcHRpb25zWydsaWItcGF0aCddKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbmZpZy5nZXQoJ2xpYlBhdGgnKSkge1xuICAgICAgdGhpcy5jb25maWcuc2V0KCdsaWJQYXRoJywgREVGQVVMVF9MSUJfUEFUSCk7XG4gICAgfVxuICAgIHRoaXMuY29tcG9zZVdpdGgoXG4gICAgICBhd2FpdCByZXNvbHZlUGF0aCgnLi4vcm9sbHVwJywgaW1wb3J0Lm1ldGEudXJsKSxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgY29uZmlndXJpbmcoKSB7XG4gICAgdGhpcy5wYWNrYWdlSnNvbi5tZXJnZShcbiAgICAgIHRoaXMuZnMucmVhZEpTT05UcGwodGhpcy50ZW1wbGF0ZVBhdGgoJ3BhY2thZ2UuanNvbi50cGwnKSksXG4gICAgKTtcbiAgICB0aGlzLmZzLmV4dGVuZEpTT05UcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgndHNjb25maWcuanNvbicpLFxuICAgICAgdGhpcy5kZXN0aW5hdGlvblBhdGgoJ3RzY29uZmlnLmpzb24nKSxcbiAgICApO1xuICAgIHRoaXMuZnMuYXBwZW5kVHBsKFxuICAgICAgdGhpcy50ZW1wbGF0ZVBhdGgoJy5naXRpZ25vcmUudHBsJyksXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCgnLmdpdGlnbm9yZScpLFxuICAgICAgdGhpcy5jb25maWcuZ2V0QWxsKCksXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRpbmdEZXBlbmRlbmNpZXMoKSB7XG4gICAgYXdhaXQgdGhpcy5hZGREZXZEZXBlbmRlbmNpZXMoW1xuICAgICAgJ0BiYWJlbC9jbGknLFxuICAgICAgJ0B6ZXJvbGx1cC90cy10cmFuc2Zvcm0tcGF0aHMnLFxuICAgICAgJ3JpbXJhZicsXG4gICAgXSk7XG4gICAgYXdhaXQgdGhpcy5hZGREZXBlbmRlbmNpZXMoWydjb3JlLWpzLXB1cmUnXSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLmdldCgnZmVhdHVyZXMnKS5pbmNsdWRlcygnc3Rvcnlib29rJykpIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRkRGV2RGVwZW5kZW5jaWVzKFtcbiAgICAgICAgJ0B0eXBlcy9yZWFjdCcsXG4gICAgICAgICdAdHlwZXMvcmVhY3QtZG9tJyxcbiAgICAgICAgJ3JlYWN0JyxcbiAgICAgICAgJ3JlYWN0LWRvbScsXG4gICAgICBdKTtcbiAgICAgIHRoaXMucGFja2FnZUpzb24ubWVyZ2Uoe1xuICAgICAgICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgcmVhY3Q6ICdeMTguMC4wJyxcbiAgICAgICAgICAncmVhY3QtZG9tJzogJ14xOC4wLjAnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGluZygpIHtcbiAgICB0aGlzLmZzLmNvcHlUcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnc3JjLyoqJyksXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCh0aGlzLmNvbmZpZy5nZXQoJ3Jvb3RQYXRoJykpLFxuICAgICAgdGhpcy5jb25maWcuZ2V0QWxsKCksXG4gICAgICB7fSxcbiAgICAgIHsgZ2xvYk9wdGlvbnM6IHsgZG90OiB0cnVlIH0gfSxcbiAgICApO1xuICAgIHRoaXMuZnMuY29weVRwbChcbiAgICAgIHRoaXMudGVtcGxhdGVQYXRoKCdSRUFETUUubWQnKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCdSRUFETUUubWQnKSxcbiAgICAgIHRoaXMuY29uZmlnLmdldEFsbCgpLFxuICAgICk7XG4gIH1cbn1cblxudHlwZSBMaWJyYXJ5T3B0aW9ucyA9IEJhc2VPcHRpb25zICYgeyAnbGliLXBhdGgnOiBzdHJpbmc7IGZlYXR1cmVzOiBzdHJpbmdbXSB9O1xu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