@anansi/generator-js
Version:
Generate Fast React Web Apps
48 lines (47 loc) • 6.29 kB
JavaScript
import chalk from 'chalk';
import filter from 'gulp-filter';
import prettier from 'gulp-prettier';
import shelobsay from 'shelobsay';
import ConfigureGenerator from './ConfigureGenerator.js';
import installWithYarn from '../installWithYarn.js';
import { resolvePath } from '../utils.js';
export { ConfigureGenerator };
export default class AppGenerator extends ConfigureGenerator {
constructor(args, options, features) {
super(args, options, {
...features,
customInstallTask: installWithYarn
});
const jsFilter = filter(['**/*.js', '**/*.ts', '**/*.tsx', '**/*.json', '**/*.html', '**/*.scss', '**/*.css'], {
restore: true
});
// this is actually improperly typed
this.queueTransformStream([
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
jsFilter,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
prettier({
printWidth: 80,
semi: true,
singleQuote: true,
trailingComma: 'all'
}),
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
jsFilter.restore]);
}
async prompting() {
this.log(shelobsay(`Creating a new ${chalk.red('Anansi')} project!`));
const props = await super.prompting();
this.composeWith(await resolvePath('../base', import.meta.url), {
...this.options,
arguments: this.args,
branded: true,
projectType: props.projectType
});
return props;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFsayIsImZpbHRlciIsInByZXR0aWVyIiwic2hlbG9ic2F5IiwiQ29uZmlndXJlR2VuZXJhdG9yIiwiaW5zdGFsbFdpdGhZYXJuIiwicmVzb2x2ZVBhdGgiLCJBcHBHZW5lcmF0b3IiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJvcHRpb25zIiwiZmVhdHVyZXMiLCJjdXN0b21JbnN0YWxsVGFzayIsImpzRmlsdGVyIiwicmVzdG9yZSIsInF1ZXVlVHJhbnNmb3JtU3RyZWFtIiwicHJpbnRXaWR0aCIsInNlbWkiLCJzaW5nbGVRdW90ZSIsInRyYWlsaW5nQ29tbWEiLCJwcm9tcHRpbmciLCJsb2ciLCJyZWQiLCJwcm9wcyIsImNvbXBvc2VXaXRoIiwiaW1wb3J0IiwibWV0YSIsInVybCIsImFyZ3VtZW50cyIsImJyYW5kZWQiLCJwcm9qZWN0VHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCBmaWx0ZXIgZnJvbSAnZ3VscC1maWx0ZXInO1xuaW1wb3J0IHByZXR0aWVyIGZyb20gJ2d1bHAtcHJldHRpZXInO1xuaW1wb3J0IHNoZWxvYnNheSBmcm9tICdzaGVsb2JzYXknO1xuaW1wb3J0IHsgQmFzZUZlYXR1cmVzIH0gZnJvbSAneWVvbWFuLWdlbmVyYXRvcic7XG5cbmltcG9ydCBDb25maWd1cmVHZW5lcmF0b3IsIHtcbiAgdHlwZSBDb25maWd1cmVPcHRpb25zLFxufSBmcm9tICcuL0NvbmZpZ3VyZUdlbmVyYXRvci5qcyc7XG5pbXBvcnQgaW5zdGFsbFdpdGhZYXJuIGZyb20gJy4uL2luc3RhbGxXaXRoWWFybi5qcyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aCB9IGZyb20gJy4uL3V0aWxzLmpzJztcblxuZXhwb3J0IHsgQ29uZmlndXJlR2VuZXJhdG9yLCBDb25maWd1cmVPcHRpb25zIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwcEdlbmVyYXRvcjxcbiAgTyBleHRlbmRzIENvbmZpZ3VyZU9wdGlvbnMgPSBDb25maWd1cmVPcHRpb25zLFxuICBGIGV4dGVuZHMgQmFzZUZlYXR1cmVzID0gQmFzZUZlYXR1cmVzLFxuPiBleHRlbmRzIENvbmZpZ3VyZUdlbmVyYXRvcjxPLCBGPiB7XG4gIGNvbnN0cnVjdG9yKGFyZ3M6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBPLCBmZWF0dXJlczogRikge1xuICAgIHN1cGVyKGFyZ3MsIG9wdGlvbnMsIHsgLi4uZmVhdHVyZXMsIGN1c3RvbUluc3RhbGxUYXNrOiBpbnN0YWxsV2l0aFlhcm4gfSk7XG4gICAgY29uc3QganNGaWx0ZXIgPSBmaWx0ZXIoXG4gICAgICBbXG4gICAgICAgICcqKi8qLmpzJyxcbiAgICAgICAgJyoqLyoudHMnLFxuICAgICAgICAnKiovKi50c3gnLFxuICAgICAgICAnKiovKi5qc29uJyxcbiAgICAgICAgJyoqLyouaHRtbCcsXG4gICAgICAgICcqKi8qLnNjc3MnLFxuICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgXSxcbiAgICAgIHsgcmVzdG9yZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyB0aGlzIGlzIGFjdHVhbGx5IGltcHJvcGVybHkgdHlwZWRcbiAgICB0aGlzLnF1ZXVlVHJhbnNmb3JtU3RyZWFtKFtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGpzRmlsdGVyLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcHJldHRpZXIoe1xuICAgICAgICBwcmludFdpZHRoOiA4MCxcbiAgICAgICAgc2VtaTogdHJ1ZSxcbiAgICAgICAgc2luZ2xlUXVvdGU6IHRydWUsXG4gICAgICAgIHRyYWlsaW5nQ29tbWE6ICdhbGwnLFxuICAgICAgfSksXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBqc0ZpbHRlci5yZXN0b3JlLFxuICAgIF0pO1xuICB9XG5cbiAgYXN5bmMgcHJvbXB0aW5nKCkge1xuICAgIHRoaXMubG9nKHNoZWxvYnNheShgQ3JlYXRpbmcgYSBuZXcgJHtjaGFsay5yZWQoJ0FuYW5zaScpfSBwcm9qZWN0IWApKTtcbiAgICBjb25zdCBwcm9wcyA9IGF3YWl0IHN1cGVyLnByb21wdGluZygpO1xuICAgIHRoaXMuY29tcG9zZVdpdGgoYXdhaXQgcmVzb2x2ZVBhdGgoJy4uL2Jhc2UnLCBpbXBvcnQubWV0YS51cmwpLCB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBhcmd1bWVudHM6IHRoaXMuYXJncyxcbiAgICAgIGJyYW5kZWQ6IHRydWUsXG4gICAgICBwcm9qZWN0VHlwZTogcHJvcHMucHJvamVjdFR5cGUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLE1BQU0sTUFBTSxhQUFhO0FBQ2hDLE9BQU9DLFFBQVEsTUFBTSxlQUFlO0FBQ3BDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBR2pDLE9BQU9DLGtCQUFrQixNQUVsQix5QkFBeUI7QUFDaEMsT0FBT0MsZUFBZSxNQUFNLHVCQUF1QjtBQUNuRCxTQUFTQyxXQUFXLFFBQVEsYUFBYTtBQUV6QyxTQUFTRixrQkFBa0I7QUFFM0IsZUFBZSxNQUFNRyxZQUFZLFNBR3ZCSCxrQkFBa0IsQ0FBTztFQUNqQ0ksV0FBV0EsQ0FBQ0MsSUFBdUIsRUFBRUMsT0FBVSxFQUFFQyxRQUFXLEVBQUU7SUFDNUQsS0FBSyxDQUFDRixJQUFJLEVBQUVDLE9BQU8sRUFBRTtNQUFFLEdBQUdDLFFBQVE7TUFBRUMsaUJBQWlCLEVBQUVQO0lBQWdCLENBQUMsQ0FBQztJQUN6RSxNQUFNUSxRQUFRLEdBQUdaLE1BQU0sQ0FDckIsQ0FDRSxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxVQUFVLENBQ1gsRUFDRDtNQUFFYSxPQUFPLEVBQUU7SUFBSyxDQUNsQixDQUFDOztJQUVEO0lBQ0EsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQztJQUN4QjtJQUNBO0lBQ0FGLFFBQVE7SUFDUjtJQUNBO0lBQ0FYLFFBQVEsQ0FBQztNQUNQYyxVQUFVLEVBQUUsRUFBRTtNQUNkQyxJQUFJLEVBQUUsSUFBSTtNQUNWQyxXQUFXLEVBQUUsSUFBSTtNQUNqQkMsYUFBYSxFQUFFO0lBQ2pCLENBQUMsQ0FBQztJQUNGO0lBQ0E7SUFDQU4sUUFBUSxDQUFDQyxPQUFPLENBQ2pCLENBQUM7RUFDSjtFQUVBLE1BQU1NLFNBQVNBLENBQUEsRUFBRztJQUNoQixJQUFJLENBQUNDLEdBQUcsQ0FBQ2xCLFNBQVMsQ0FBQyxrQkFBa0JILEtBQUssQ0FBQ3NCLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckUsTUFBTUMsS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDSCxTQUFTLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUNJLFdBQVcsQ0FBQyxNQUFNbEIsV0FBVyxDQUFDLFNBQVMsRUFBRW1CLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsRUFBRTtNQUM5RCxHQUFHLElBQUksQ0FBQ2pCLE9BQU87TUFDZmtCLFNBQVMsRUFBRSxJQUFJLENBQUNuQixJQUFJO01BQ3BCb0IsT0FBTyxFQUFFLElBQUk7TUFDYkMsV0FBVyxFQUFFUCxLQUFLLENBQUNPO0lBQ3JCLENBQUMsQ0FBQztJQUNGLE9BQU9QLEtBQUs7RUFDZDtBQUNGIiwiaWdub3JlTGlzdCI6W119