diff --git a/src/commands/new.js b/src/commands/new.js index daaf1fa..67436a6 100644 --- a/src/commands/new.js +++ b/src/commands/new.js @@ -66,6 +66,12 @@ const questions = [ return val.toLowerCase() }, }, + { + type: 'confirm', + name: 'ESlint', + message: 'Do you want to initialize a ESlint on this project', + default: true, + }, { type: 'confirm', name: 'git', @@ -136,6 +142,7 @@ const cmd = { if (npmOptions.npmInstall === 'Yeah, please' || npmOptions.npmInstall === 'yes') { await exec('npm install') + await exec('npx eslint \"**/*.{js,jsx}\" --fix') await exec('herbs update') } await checkNewVersion() diff --git a/src/commands/update.js b/src/commands/update.js index 5910bfe..074b6f2 100644 --- a/src/commands/update.js +++ b/src/commands/update.js @@ -6,6 +6,7 @@ const cmd = { alias: ['u'], run: async toolbox => { const generators = (await generator(toolbox)).update + await exec('npx eslint \"**/*.{js,jsx}\" --fix') for (const layer of Object.keys(generators)) { await generators[layer]() } toolbox.print.success('Project updated! 🤩') } diff --git a/src/generators/src/packagejson.js b/src/generators/src/packagejson.js index 28f1d33..7d32f05 100644 --- a/src/generators/src/packagejson.js +++ b/src/generators/src/packagejson.js @@ -7,6 +7,7 @@ const optionalPackages = { mysql: ['"@herbsjs/herbs2knex": "^1.5.2"', '"mysql2": "^2.3.3"'], rest: ['"express": "^4.18.1"', '"cors": "^2.8.5"', '"@herbsjs/herbs2rest": "^3.0.1"'], graphql: ['"graphql": "^16.5.0"', '"@herbsjs/herbs2gql": "^2.2.0"', '"apollo-server": "^3.8.2"','"apollo-server-express": "^3.8.2"', '"graphql-tools": "^8.2.12"', '"graphql-scalars": "^1.17.0"',] + eslint: ['"eslint": "^8.20.0"', '"eslint-config-standard": "^17.0.0"', '"eslint-plugin-import": "^2.26.0","eslint-plugin-n": "^15.2.4"','"eslint-plugin-promise": "^6.0.0"'] } const defaultOptions = (options) => { diff --git a/src/templates/.eslintrc.ejs b/src/templates/.eslintrc.ejs new file mode 100644 index 0000000..a583298 --- /dev/null +++ b/src/templates/.eslintrc.ejs @@ -0,0 +1,15 @@ +module.exports = { + env: { + es2021: true, + node: true + }, + extends: [ + 'standard' + ], + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module' + }, + rules: { + } +}