From 9f589f436c42b627fb9bb48d6d65c90a31a3a360 Mon Sep 17 00:00:00 2001 From: mtperesvx Date: Tue, 26 Jul 2022 18:10:39 -0300 Subject: [PATCH] feat: generate lint on new project and run lint on update project --- src/commands/new.js | 7 +++++++ src/commands/update.js | 1 + src/generators/src/packagejson.js | 3 ++- src/templates/.eslintrc.ejs | 15 +++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/templates/.eslintrc.ejs diff --git a/src/commands/new.js b/src/commands/new.js index 6711575..0a771cb 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') } 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 b9dbf4c..d2355d8 100644 --- a/src/generators/src/packagejson.js +++ b/src/generators/src/packagejson.js @@ -6,7 +6,8 @@ const optionalPackages = { sqlserver: ['"@herbsjs/herbs2knex": "^1.5.2"', '"tedious": "^14.4.8"', '"mssql": "^8.1.0"'], mysql: ['"@herbsjs/herbs2knex": "^1.5.2"', '"mysql2": "^2.3.3"'], rest: ['"express": "^4.18.1"', '"cors": "^2.8.5"', '"@herbsjs/herbs2rest": "^2.0.2"'], - graphql: ['"graphql": "^16.5.0"', '"@herbsjs/herbs2gql": "^2.1.7"', '"apollo-server": "^3.8.2"','"apollo-server-express": "^3.8.2"', '"graphql-tools": "^8.2.12"', '"graphql-scalars": "^1.17.0"',] + graphql: ['"graphql": "^16.5.0"', '"@herbsjs/herbs2gql": "^2.1.7"', '"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: { + } +}