From 4336c6b886493ac805c64c7680b7e021407c58ff Mon Sep 17 00:00:00 2001 From: Paul Merlin Date: Sat, 13 Jun 2020 12:46:29 +0200 Subject: [PATCH] Add various js build configs --- .eslintignore | 3 +++ .eslintrc.json | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ .prettierignore | 3 +++ .prettierrc.json | 11 ++++++++++ jest.config.js | 7 +++--- jest.setup.js | 1 + 6 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 jest.setup.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..2186947 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +dist/ +lib/ +node_modules/ \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..fd80c49 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,56 @@ +{ + "plugins": ["jest", "@typescript-eslint"], + "extends": ["plugin:github/recommended"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "module", + "project": "./tsconfig.json" + }, + "rules": { + "eslint-comments/no-use": "off", + "import/no-namespace": "off", + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": "error", + "@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}], + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/array-type": "error", + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/ban-ts-ignore": "error", + "camelcase": "off", + "@typescript-eslint/camelcase": "error", + "@typescript-eslint/class-name-casing": "error", + "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}], + "@typescript-eslint/func-call-spacing": ["error", "never"], + "@typescript-eslint/generic-type-naming": ["error", "^[A-Z][A-Za-z]*$"], + "@typescript-eslint/no-array-constructor": "error", + "@typescript-eslint/no-empty-interface": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-extraneous-class": "error", + "@typescript-eslint/no-for-in-array": "error", + "@typescript-eslint/no-inferrable-types": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/no-namespace": "error", + "@typescript-eslint/no-non-null-assertion": "warn", + "@typescript-eslint/no-unnecessary-qualifier": "error", + "@typescript-eslint/no-unnecessary-type-assertion": "error", + "@typescript-eslint/no-useless-constructor": "error", + "@typescript-eslint/no-var-requires": "error", + "@typescript-eslint/prefer-for-of": "warn", + "@typescript-eslint/prefer-function-type": "warn", + "@typescript-eslint/prefer-includes": "error", + "@typescript-eslint/prefer-string-starts-ends-with": "error", + "@typescript-eslint/promise-function-async": "error", + "@typescript-eslint/require-array-sort-compare": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "semi": "off", + "@typescript-eslint/semi": ["error", "never"], + "@typescript-eslint/type-annotation-spacing": "error", + "@typescript-eslint/unbound-method": "error" + }, + "env": { + "node": true, + "es6": true, + "jest/globals": true + } + } diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..2186947 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +dist/ +lib/ +node_modules/ \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..bbf4311 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,11 @@ +{ + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": false, + "singleQuote": true, + "trailingComma": "none", + "bracketSpacing": false, + "arrowParens": "avoid", + "parser": "typescript" + } \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 563d4cc..b205d1b 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,11 +1,12 @@ module.exports = { clearMocks: true, - moduleFileExtensions: ['js', 'ts'], + moduleFileExtensions: ['js', 'ts', 'json'], testEnvironment: 'node', testMatch: ['**/*.test.ts'], testRunner: 'jest-circus/runner', transform: { '^.+\\.ts$': 'ts-jest' }, - verbose: true -} \ No newline at end of file + verbose: true, + setupFilesAfterEnv: ['./jest.setup.js'] +} diff --git a/jest.setup.js b/jest.setup.js new file mode 100644 index 0000000..132fbcc --- /dev/null +++ b/jest.setup.js @@ -0,0 +1 @@ +jest.setTimeout(10000) // in milliseconds