@anansi/generator-js
Version:
Generate Fast React Web Apps
58 lines • 10.5 kB
JavaScript
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}
[](https://www.npmjs.com/package/${appName})
[](https://unpkg.com/${appName})
[](https://www.npmjs.com/package/${appName})
[](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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