Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 2x 2x 2x 2x 2x 2x 4x 4x 4x 4x 4x 2x 2x 2x 1x 2x | import Generator, { Answers } from 'yeoman-generator';
import { Filenames } from '../lib/enums/filenames';
import { Messages } from '../lib/enums/messages';
import { Names } from '../lib/enums/names';
import rootPkg from '../lib/helpers/package';
module.exports = class extends Generator {
withPrettier = false;
constructor(args: string | string[], config: any) {
super(args, config);
this.withPrettier = config.withPrettier;
}
answers!: Answers;
async prompting(): Promise<void> {
this.answers = await this.prompt({
type: 'confirm',
name: Names.LINT_STAGED,
message: Messages.LINT_STAGED,
default: false,
});
}
writing() {
if (this.answers[Names.LINT_STAGED]) {
this.fs.append(this.destinationPath(Filenames.README), this.fs.read(this.templatePath(Filenames.README)));
const lintStagedCommands = ['eslint . --fix', 'git add'];
// add prettier command to lint-staged
if (this.withPrettier) {
lintStagedCommands.splice(1, 0, 'prettier --write');
}
this.fs.extendJSON(this.destinationPath(Filenames.PACKAGE_JSON), {
devDependencies: {
husky: rootPkg.devDependencies.husky,
'lint-staged': rootPkg.devDependencies['lint-staged'],
},
'lint-staged': {
'src/**/*.{js,ts}': lintStagedCommands,
},
husky: {
hooks: {
'pre-commit': 'lint-staged',
},
},
});
}
}
};
|