@anansi/generator-js
Version:
Generate Fast React Web Apps
41 lines • 9.61 kB
JavaScript
import { BetterGenerator, resolvePath } from '../utils.js';
export default class extends BetterGenerator {
props;
constructor(args, options, features) {
super(args, options, features);
this.config.set('badges', '');
this.config.set('spa', true);
}
async initializing() {
this.composeWith(await resolvePath('../webpack', import.meta.url), this.options);
if (this.config.get('features')?.includes('SSR')) {
this.composeWith(await resolvePath('../ssr', import.meta.url), this.options);
}
if (this.options.branded) {
this.composeWith(await resolvePath('../anansi-splash', 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.copyTpl(this.templatePath('eslint.config.mjs'), this.destinationPath('eslint.config.mjs'), this.config.getAll());
this.fs.extendJSONTpl(this.templatePath('.vscode/launch.json'), this.destinationPath('.vscode/launch.json'));
this.fs.extendJSONTpl(this.templatePath('.vscode/tasks.json'), this.destinationPath('.vscode/tasks.json'));
}
async writingDependencies() {
await Promise.all([this.addDevDependencies(['@types/react', '@types/react-dom', '@data-client/test', 'react-refresh']), await this.addDependencies(['@anansi/router', '@data-client/react', '@data-client/rest', 'react', 'react-dom', '@data-client/img', 'history', 'core-js'])]);
}
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());
if (this.config.get('features')?.includes('SSR')) {
// We don't use RootProvider in SSR config
this.fs.delete(this.destinationPath(this.config.get('rootPath'), 'RootProvider.tsx'));
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCZXR0ZXJHZW5lcmF0b3IiLCJyZXNvbHZlUGF0aCIsInByb3BzIiwiY29uc3RydWN0b3IiLCJhcmdzIiwib3B0aW9ucyIsImZlYXR1cmVzIiwiY29uZmlnIiwic2V0IiwiaW5pdGlhbGl6aW5nIiwiY29tcG9zZVdpdGgiLCJpbXBvcnQiLCJtZXRhIiwidXJsIiwiZ2V0IiwiaW5jbHVkZXMiLCJicmFuZGVkIiwiY29uZmlndXJpbmciLCJwYWNrYWdlSnNvbiIsIm1lcmdlIiwiZnMiLCJyZWFkSlNPTlRwbCIsInRlbXBsYXRlUGF0aCIsImV4dGVuZEpTT05UcGwiLCJkZXN0aW5hdGlvblBhdGgiLCJjb3B5VHBsIiwiZ2V0QWxsIiwid3JpdGluZ0RlcGVuZGVuY2llcyIsIlByb21pc2UiLCJhbGwiLCJhZGREZXZEZXBlbmRlbmNpZXMiLCJhZGREZXBlbmRlbmNpZXMiLCJ3cml0aW5nIiwiZ2xvYk9wdGlvbnMiLCJkb3QiLCJkZWxldGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGZWF0dXJlcywgQmFzZU9wdGlvbnMgfSBmcm9tICd5ZW9tYW4tZ2VuZXJhdG9yJztcblxuaW1wb3J0IHsgQmV0dGVyR2VuZXJhdG9yLCByZXNvbHZlUGF0aCB9IGZyb20gJy4uL3V0aWxzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBCZXR0ZXJHZW5lcmF0b3Ige1xuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYXJnczogc3RyaW5nIHwgc3RyaW5nW10sXG4gICAgb3B0aW9uczogQmFzZU9wdGlvbnMsXG4gICAgZmVhdHVyZXM6IEJhc2VGZWF0dXJlcyxcbiAgKSB7XG4gICAgc3VwZXIoYXJncywgb3B0aW9ucywgZmVhdHVyZXMpO1xuICAgIHRoaXMuY29uZmlnLnNldCgnYmFkZ2VzJywgJycpO1xuICAgIHRoaXMuY29uZmlnLnNldCgnc3BhJywgdHJ1ZSk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXppbmcoKSB7XG4gICAgdGhpcy5jb21wb3NlV2l0aChcbiAgICAgIGF3YWl0IHJlc29sdmVQYXRoKCcuLi93ZWJwYWNrJywgaW1wb3J0Lm1ldGEudXJsKSxcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICApO1xuICAgIGlmICh0aGlzLmNvbmZpZy5nZXQoJ2ZlYXR1cmVzJyk/LmluY2x1ZGVzKCdTU1InKSkge1xuICAgICAgdGhpcy5jb21wb3NlV2l0aChcbiAgICAgICAgYXdhaXQgcmVzb2x2ZVBhdGgoJy4uL3NzcicsIGltcG9ydC5tZXRhLnVybCksXG4gICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMuYnJhbmRlZCkge1xuICAgICAgdGhpcy5jb21wb3NlV2l0aChcbiAgICAgICAgYXdhaXQgcmVzb2x2ZVBhdGgoJy4uL2FuYW5zaS1zcGxhc2gnLCBpbXBvcnQubWV0YS51cmwpLFxuICAgICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpZ3VyaW5nKCkge1xuICAgIHRoaXMucGFja2FnZUpzb24ubWVyZ2UoXG4gICAgICB0aGlzLmZzLnJlYWRKU09OVHBsKHRoaXMudGVtcGxhdGVQYXRoKCdwYWNrYWdlLmpzb24udHBsJykpLFxuICAgICk7XG4gICAgdGhpcy5mcy5leHRlbmRKU09OVHBsKFxuICAgICAgdGhpcy50ZW1wbGF0ZVBhdGgoJ3RzY29uZmlnLmpzb24nKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCd0c2NvbmZpZy5qc29uJyksXG4gICAgKTtcbiAgICB0aGlzLmZzLmNvcHlUcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnZXNsaW50LmNvbmZpZy5tanMnKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCdlc2xpbnQuY29uZmlnLm1qcycpLFxuICAgICAgdGhpcy5jb25maWcuZ2V0QWxsKCksXG4gICAgKTtcbiAgICB0aGlzLmZzLmV4dGVuZEpTT05UcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnLnZzY29kZS9sYXVuY2guanNvbicpLFxuICAgICAgdGhpcy5kZXN0aW5hdGlvblBhdGgoJy52c2NvZGUvbGF1bmNoLmpzb24nKSxcbiAgICApO1xuICAgIHRoaXMuZnMuZXh0ZW5kSlNPTlRwbChcbiAgICAgIHRoaXMudGVtcGxhdGVQYXRoKCcudnNjb2RlL3Rhc2tzLmpzb24nKSxcbiAgICAgIHRoaXMuZGVzdGluYXRpb25QYXRoKCcudnNjb2RlL3Rhc2tzLmpzb24nKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgd3JpdGluZ0RlcGVuZGVuY2llcygpIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB0aGlzLmFkZERldkRlcGVuZGVuY2llcyhbXG4gICAgICAgICdAdHlwZXMvcmVhY3QnLFxuICAgICAgICAnQHR5cGVzL3JlYWN0LWRvbScsXG4gICAgICAgICdAZGF0YS1jbGllbnQvdGVzdCcsXG4gICAgICAgICdyZWFjdC1yZWZyZXNoJyxcbiAgICAgIF0pLFxuICAgICAgYXdhaXQgdGhpcy5hZGREZXBlbmRlbmNpZXMoW1xuICAgICAgICAnQGFuYW5zaS9yb3V0ZXInLFxuICAgICAgICAnQGRhdGEtY2xpZW50L3JlYWN0JyxcbiAgICAgICAgJ0BkYXRhLWNsaWVudC9yZXN0JyxcbiAgICAgICAgJ3JlYWN0JyxcbiAgICAgICAgJ3JlYWN0LWRvbScsXG4gICAgICAgICdAZGF0YS1jbGllbnQvaW1nJyxcbiAgICAgICAgJ2hpc3RvcnknLFxuICAgICAgICAnY29yZS1qcycsXG4gICAgICBdKSxcbiAgICBdKTtcbiAgfVxuXG4gIHdyaXRpbmcoKSB7XG4gICAgdGhpcy5mcy5jb3B5VHBsKFxuICAgICAgdGhpcy50ZW1wbGF0ZVBhdGgoJ3NyYy8qKicpLFxuICAgICAgdGhpcy5kZXN0aW5hdGlvblBhdGgodGhpcy5jb25maWcuZ2V0KCdyb290UGF0aCcpKSxcbiAgICAgIHRoaXMuY29uZmlnLmdldEFsbCgpLFxuICAgICAge30sXG4gICAgICB7IGdsb2JPcHRpb25zOiB7IGRvdDogdHJ1ZSB9IH0sXG4gICAgKTtcbiAgICB0aGlzLmZzLmNvcHlUcGwoXG4gICAgICB0aGlzLnRlbXBsYXRlUGF0aCgnUkVBRE1FLm1kJyksXG4gICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCgnUkVBRE1FLm1kJyksXG4gICAgICB0aGlzLmNvbmZpZy5nZXRBbGwoKSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmdldCgnZmVhdHVyZXMnKT8uaW5jbHVkZXMoJ1NTUicpKSB7XG4gICAgICAvLyBXZSBkb24ndCB1c2UgUm9vdFByb3ZpZGVyIGluIFNTUiBjb25maWdcbiAgICAgIHRoaXMuZnMuZGVsZXRlKFxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uUGF0aCh0aGlzLmNvbmZpZy5nZXQoJ3Jvb3RQYXRoJyksICdSb290UHJvdmlkZXIudHN4JyksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxlQUFlLEVBQUVDLFdBQVcsUUFBUSxhQUFhO0FBRTFELGVBQWUsY0FBY0QsZUFBZSxDQUFDO0VBQzNDRSxLQUFLO0VBRUxDLFdBQVdBLENBQ1RDLElBQXVCLEVBQ3ZCQyxPQUFvQixFQUNwQkMsUUFBc0IsRUFDdEI7SUFDQSxLQUFLLENBQUNGLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFRLENBQUM7SUFDOUIsSUFBSSxDQUFDQyxNQUFNLENBQUNDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQ0QsTUFBTSxDQUFDQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztFQUM5QjtFQUVBLE1BQU1DLFlBQVlBLENBQUEsRUFBRztJQUNuQixJQUFJLENBQUNDLFdBQVcsQ0FDZCxNQUFNVCxXQUFXLENBQUMsWUFBWSxFQUFFVSxNQUFNLENBQUNDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLEVBQ2hELElBQUksQ0FBQ1IsT0FDUCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUNFLE1BQU0sQ0FBQ08sR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7TUFDaEQsSUFBSSxDQUFDTCxXQUFXLENBQ2QsTUFBTVQsV0FBVyxDQUFDLFFBQVEsRUFBRVUsTUFBTSxDQUFDQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxFQUM1QyxJQUFJLENBQUNSLE9BQ1AsQ0FBQztJQUNIO0lBQ0EsSUFBSSxJQUFJLENBQUNBLE9BQU8sQ0FBQ1csT0FBTyxFQUFFO01BQ3hCLElBQUksQ0FBQ04sV0FBVyxDQUNkLE1BQU1ULFdBQVcsQ0FBQyxrQkFBa0IsRUFBRVUsTUFBTSxDQUFDQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxFQUN0RCxJQUFJLENBQUNSLE9BQ1AsQ0FBQztJQUNIO0VBQ0Y7RUFFQVksV0FBV0EsQ0FBQSxFQUFHO0lBQ1osSUFBSSxDQUFDQyxXQUFXLENBQUNDLEtBQUssQ0FDcEIsSUFBSSxDQUFDQyxFQUFFLENBQUNDLFdBQVcsQ0FBQyxJQUFJLENBQUNDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUMzRCxDQUFDO0lBQ0QsSUFBSSxDQUFDRixFQUFFLENBQUNHLGFBQWEsQ0FDbkIsSUFBSSxDQUFDRCxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQ2xDLElBQUksQ0FBQ0UsZUFBZSxDQUFDLGVBQWUsQ0FDdEMsQ0FBQztJQUNELElBQUksQ0FBQ0osRUFBRSxDQUFDSyxPQUFPLENBQ2IsSUFBSSxDQUFDSCxZQUFZLENBQUMsbUJBQW1CLENBQUMsRUFDdEMsSUFBSSxDQUFDRSxlQUFlLENBQUMsbUJBQW1CLENBQUMsRUFDekMsSUFBSSxDQUFDakIsTUFBTSxDQUFDbUIsTUFBTSxDQUFDLENBQ3JCLENBQUM7SUFDRCxJQUFJLENBQUNOLEVBQUUsQ0FBQ0csYUFBYSxDQUNuQixJQUFJLENBQUNELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxFQUN4QyxJQUFJLENBQUNFLGVBQWUsQ0FBQyxxQkFBcUIsQ0FDNUMsQ0FBQztJQUNELElBQUksQ0FBQ0osRUFBRSxDQUFDRyxhQUFhLENBQ25CLElBQUksQ0FBQ0QsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEVBQ3ZDLElBQUksQ0FBQ0UsZUFBZSxDQUFDLG9CQUFvQixDQUMzQyxDQUFDO0VBQ0g7RUFFQSxNQUFNRyxtQkFBbUJBLENBQUEsRUFBRztJQUMxQixNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNoQixJQUFJLENBQUNDLGtCQUFrQixDQUFDLENBQ3RCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsQ0FDaEIsQ0FBQyxFQUNGLE1BQU0sSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FDekIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDLENBQ0gsQ0FBQztFQUNKO0VBRUFDLE9BQU9BLENBQUEsRUFBRztJQUNSLElBQUksQ0FBQ1osRUFBRSxDQUFDSyxPQUFPLENBQ2IsSUFBSSxDQUFDSCxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQzNCLElBQUksQ0FBQ0UsZUFBZSxDQUFDLElBQUksQ0FBQ2pCLE1BQU0sQ0FBQ08sR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ2pELElBQUksQ0FBQ1AsTUFBTSxDQUFDbUIsTUFBTSxDQUFDLENBQUMsRUFDcEIsQ0FBQyxDQUFDLEVBQ0Y7TUFBRU8sV0FBVyxFQUFFO1FBQUVDLEdBQUcsRUFBRTtNQUFLO0lBQUUsQ0FDL0IsQ0FBQztJQUNELElBQUksQ0FBQ2QsRUFBRSxDQUFDSyxPQUFPLENBQ2IsSUFBSSxDQUFDSCxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQzlCLElBQUksQ0FBQ0UsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUNqQyxJQUFJLENBQUNqQixNQUFNLENBQUNtQixNQUFNLENBQUMsQ0FDckIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDbkIsTUFBTSxDQUFDTyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUVDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtNQUNoRDtNQUNBLElBQUksQ0FBQ0ssRUFBRSxDQUFDZSxNQUFNLENBQ1osSUFBSSxDQUFDWCxlQUFlLENBQUMsSUFBSSxDQUFDakIsTUFBTSxDQUFDTyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsa0JBQWtCLENBQ3RFLENBQUM7SUFDSDtFQUNGO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=