ultracite 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,152 @@
1
+ <img src="./logo.svg" width="96" height="96" style="width: 96px; height: 96px;" alt="">
2
+
3
+ <br />
4
+
5
+ # Ultracite
6
+
7
+ Ultracite is a robust linting preset for modern TypeScript apps. It's comprised of configuration files for [ESLint](https://eslint.org/), [Prettier](https://prettier.io/) and [Stylelint](https://stylelint.io/). It is incredibly opinionated and strict, enforcing the maximum amount of type safety and code quality through ESLint rules and TypeScript compiler options. It is designed for [Next.js](https://nextjs.org/) apps, but can be used with any TypeScript project, such as [React Native](https://reactnative.dev/) or [Node.js](https://nodejs.org/).
8
+
9
+ <img src="https://img.shields.io/github/actions/workflow/status/haydenbleasel/ultracite/push.yaml" alt="" />
10
+
11
+ <img src="https://img.shields.io/npm/dy/ultracite" alt="" />
12
+
13
+ <img src="https://img.shields.io/npm/v/ultracite" alt="" />
14
+
15
+ <img src="https://img.shields.io/github/license/haydenbleasel/ultracite" alt="" />
16
+
17
+ ## Features
18
+
19
+ By default, Ultracite combines with pre-defined rulesets for [ESLint](https://eslint.org/), as well as:
20
+
21
+ - [Import](https://www.npmjs.com/package/eslint-plugin-import)
22
+ - [jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y)
23
+ - [React](https://www.npmjs.com/package/eslint-plugin-react)
24
+ - [React Hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)
25
+ - [jest](https://www.npmjs.com/package/eslint-plugin-jest)
26
+ - [promise](https://www.npmjs.com/package/eslint-plugin-promise)
27
+ - [n](https://www.npmjs.com/package/eslint-plugin-n)
28
+ - [Typescript](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin)
29
+ - [Prettier](https://www.npmjs.com/package/eslint-plugin-prettier)
30
+ - [Tailwind](https://github.com/tailwindlabs/prettier-plugin-tailwindcss)
31
+ - [Stylelint](https://stylelint.io/)
32
+ - [Stylelint-Prettier](https://www.npmjs.com/package/stylelint-prettier)
33
+ - [Next.js](https://nextjs.org/docs/basic-features/eslint#eslint-plugin)
34
+ - [Cypress](https://www.npmjs.com/package/eslint-plugin-cypress)
35
+
36
+ ## Installation
37
+
38
+ Run the command below to install Ultracite with peer dependencies:
39
+
40
+ ```sh
41
+ pnpm add -D ultracite eslint@8 prettier stylelint typescript jest
42
+ ```
43
+
44
+ If you're running [VS Code](https://code.visualstudio.com/), ensure you have the following extensions installed:
45
+
46
+ ```sh
47
+ code --install-extension dbaeumer.vscode-eslint
48
+ code --install-extension esbenp.prettier-vscode
49
+ code --install-extension bradlc.vscode-tailwindcss
50
+ code --install-extension stylelint.vscode-stylelint
51
+ ```
52
+
53
+ ## Setup
54
+
55
+ Create an `eslint.config.mjs` with the following contents:
56
+
57
+ ```js
58
+ import ultracite from 'ultracite';
59
+
60
+ export default ultracite;
61
+ ```
62
+
63
+ Add the following to your `package.json`:
64
+
65
+ ```json
66
+ {
67
+ "prettier": "ultracite/prettier",
68
+ "stylelint": {
69
+ "extends": "ultracite/stylelint"
70
+ }
71
+ }
72
+ ```
73
+
74
+ Ultracite is designed to be used with [VS Code](https://code.visualstudio.com/), and includes a `.vscode/settings.json` file that enables full formatting on save. Create a `.vscode/settings.json` file with the following contents:
75
+
76
+ ```json
77
+ {
78
+ "typescript.tsdk": "node_modules/typescript/lib",
79
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
80
+ "editor.formatOnSave": true,
81
+ "editor.formatOnPaste": true,
82
+ "emmet.showExpandedAbbreviation": "never",
83
+ "editor.codeActionsOnSave": {
84
+ "source.fixAll.esbenp.prettier-vscode": "explicit",
85
+ "source.fixAll.eslint": "explicit",
86
+ "source.fixAll.stylelint": "explicit"
87
+ },
88
+ "[typescriptreact]": {
89
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
90
+ },
91
+ "eslint.useFlatConfig": true,
92
+ "eslint.options": {
93
+ "overrideConfigFile": "eslint.config.mjs"
94
+ }
95
+ }
96
+ ```
97
+
98
+ Lastly, ensure your `tsconfig.json` (if it exists) includes your new ESLint config and that `strictNullChecks` is enabled.
99
+
100
+ ```json
101
+ {
102
+ "compilerOptions": {
103
+ "strictNullChecks": true
104
+ },
105
+ "include": ["eslint.config.mjs"]
106
+ }
107
+ ```
108
+
109
+ ## Usage
110
+
111
+ Once Ultracite is set up, it will automatically format your code on save.
112
+
113
+ ## Configuration
114
+
115
+ You can opt-out of certain rules by modifying your `eslint.config.mjs` file. For example, here's a common exception I use to avoid linting [shadcn/ui](https://ui.shadcn.com/) components:
116
+
117
+ ```js
118
+ import ultracite from 'ultracite';
119
+
120
+ ultracite.forEach((config) => {
121
+ if (config.ignores) {
122
+ config.ignores.push('./components/ui/**/*');
123
+ } else {
124
+ config.ignores = ['./components/ui/**/*'];
125
+ }
126
+ });
127
+
128
+ export default ultracite;
129
+ ```
130
+
131
+ ## Debugging
132
+
133
+ If you're having issues with Ultracite, you can open the ESLint Output panel in VS Code to see what's going on. Optimally, it should look something like this:
134
+
135
+ ```
136
+ [Info - 10:42:49 PM] ESLint server is starting.
137
+ [Info - 10:42:49 PM] ESLint server running in node v18.15.0
138
+ [Info - 10:42:49 PM] ESLint server is running.
139
+ [Info - 10:42:50 PM] ESLint library loaded from: /Users/haydenbleasel/GitHub/ultracite/node_modules/.pnpm/eslint@8.51.0/node_modules/eslint/lib/unsupported-api.js
140
+ ```
141
+
142
+ If you see any errors, it could be related to peer dependencies or changes in dependency versions. Feel free to report these as issues.
143
+
144
+ ## Roadmap
145
+
146
+ - https://github.com/SonarSource/eslint-plugin-sonarjs
147
+ - https://github.com/BenoitZugmeyer/eslint-plugin-html
148
+ - https://github.com/ota-meshi/eslint-plugin-yml
149
+ - https://github.com/mdx-js/eslint-mdx/tree/master/packages/eslint-plugin-mdx
150
+ - https://github.com/eslint/eslint-plugin-markdown
151
+ - https://github.com/amilajack/eslint-plugin-compat
152
+ - https://github.com/sindresorhus/eslint-plugin-unicorn
package/SECURITY.md ADDED
@@ -0,0 +1,9 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Currently, only the latest on `main` branch is supported with security updates.
6
+
7
+ ## Reporting a Vulnerability
8
+
9
+ To report a vulnerability, open a new issue or DM me on [Twitter / X](https://twitter.com/haydenbleasel).
@@ -0,0 +1,173 @@
1
+ /* eslint-disable n/no-extraneous-import, import/no-extraneous-dependencies, id-length */
2
+
3
+ import react from 'eslint-plugin-react';
4
+ import reactHooks from 'eslint-plugin-react-hooks';
5
+ import typescript from '@typescript-eslint/eslint-plugin';
6
+ import jsxA11y from 'eslint-plugin-jsx-a11y';
7
+ import * as importPlugin from 'eslint-plugin-import';
8
+ import jest from 'eslint-plugin-jest';
9
+ import promise from 'eslint-plugin-promise';
10
+ import n from 'eslint-plugin-n';
11
+ import next from '@next/eslint-plugin-next';
12
+ import globals from 'globals';
13
+ import prettier from 'eslint-plugin-prettier';
14
+ import cypress from 'eslint-plugin-cypress';
15
+ import storybook from 'eslint-plugin-storybook';
16
+ import unusedImports from 'eslint-plugin-unused-imports';
17
+ // import tailwindcss from 'eslint-plugin-tailwindcss';
18
+ import * as importTypescriptResolver from 'eslint-import-resolver-typescript';
19
+
20
+ import eslintPrettier from 'eslint-config-prettier';
21
+ import * as typescriptParser from '@typescript-eslint/parser';
22
+
23
+ import eslintRules from './rules/eslint.mjs';
24
+ import reactRules from './rules/react.mjs';
25
+ import reactHooksRules from './rules/reactHooks.mjs';
26
+ import typescriptRules from './rules/typescript.mjs';
27
+ import jsxA11yRules from './rules/jsx-a11y.mjs';
28
+ import importRules from './rules/import.mjs';
29
+ import jestRules from './rules/jest.mjs';
30
+ import promiseRules from './rules/promise.mjs';
31
+ import nRules from './rules/n.mjs';
32
+ import nextRules from './rules/next.mjs';
33
+ import prettierRules from './rules/prettier.mjs';
34
+ import eslintTypescriptRules from './rules/eslint-typescript.mjs';
35
+ import cypressRules from './rules/cypress.mjs';
36
+ import storybookRules from './rules/storybook.mjs';
37
+ // import tailwindcssRules from './rules/tailwindcss.mjs';
38
+ import unusedImportsRules from './rules/unused-imports.mjs';
39
+
40
+ // Patch AudioWorkletGlobalScope
41
+ const browserGlobals = { ...globals.browser };
42
+ delete browserGlobals['AudioWorkletGlobalScope '];
43
+
44
+ const config = [
45
+ importPlugin.configs.typescript,
46
+ {
47
+ languageOptions: {
48
+ sourceType: 'module',
49
+ globals: {
50
+ ...browserGlobals,
51
+ ...globals.node,
52
+ },
53
+ parserOptions: {
54
+ ecmaVersion: 'latest',
55
+ sourceType: 'module',
56
+ ecmaFeatures: {
57
+ jsx: true,
58
+ },
59
+ },
60
+ },
61
+ files: [
62
+ '**/*.js',
63
+ '**/*.jsx',
64
+ '**/*.ts',
65
+ '**/*.tsx',
66
+ '**/*.json',
67
+ '**/*.mjs',
68
+ '**/*.cjs',
69
+ ],
70
+ plugins: {
71
+ prettier,
72
+ react,
73
+ 'react-hooks': reactHooks,
74
+ 'jsx-a11y': jsxA11y,
75
+ import: importPlugin,
76
+ promise,
77
+ n,
78
+ '@next/next': next,
79
+ 'unused-imports': unusedImports,
80
+ // tailwindcss,
81
+ },
82
+ rules: {
83
+ ...eslintRules,
84
+ ...reactRules,
85
+ ...reactHooksRules,
86
+ ...jsxA11yRules,
87
+ ...importRules,
88
+ ...promiseRules,
89
+ ...nRules,
90
+ ...nextRules,
91
+ ...prettierRules,
92
+ ...eslintPrettier.rules,
93
+ ...unusedImportsRules,
94
+ // ...tailwindcssRules,
95
+ },
96
+
97
+ settings: {
98
+ react: {
99
+ version: 'detect',
100
+ },
101
+
102
+ // https://github.com/import-js/eslint-plugin-import/issues/2556#issuecomment-1419518561
103
+ 'import/parsers': {
104
+ espree: ['.js', '.cjs', '.mjs', '.jsx', '.ts', '.tsx'],
105
+ },
106
+ 'import/resolver': {
107
+ typescript: true,
108
+ node: true,
109
+ },
110
+ },
111
+ },
112
+ {
113
+ files: ['**/*.ts', '**/*.tsx'],
114
+ languageOptions: {
115
+ parser: typescriptParser,
116
+ parserOptions: {
117
+ project: './tsconfig.json',
118
+ },
119
+ },
120
+ plugins: {
121
+ '@typescript-eslint': typescript,
122
+ 'import/typescript': importTypescriptResolver,
123
+ },
124
+ rules: {
125
+ ...eslintTypescriptRules,
126
+ ...typescriptRules,
127
+ },
128
+ },
129
+ {
130
+ files: ['**/*.test.js', '**/*.test.jsx', 'tests/**/*.js', 'tests/**/*.jsx'],
131
+ languageOptions: {
132
+ globals: {
133
+ ...globals.jest,
134
+ },
135
+ },
136
+ plugins: {
137
+ jest,
138
+ },
139
+ rules: {
140
+ ...jestRules,
141
+ },
142
+ },
143
+ {
144
+ files: ['**/*.cy.js', '**/*.cy.jsx'],
145
+ languageOptions: {
146
+ globals: {
147
+ ...globals.cypress,
148
+ },
149
+ },
150
+ plugins: {
151
+ cypress,
152
+ },
153
+ rules: {
154
+ ...cypressRules,
155
+ },
156
+ },
157
+ {
158
+ files: [
159
+ '**/*.stories.js',
160
+ '**/*.stories.jsx',
161
+ '**/*.stories.ts',
162
+ '**/*.stories.tsx',
163
+ ],
164
+ plugins: {
165
+ storybook,
166
+ },
167
+ rules: {
168
+ ...storybookRules,
169
+ },
170
+ },
171
+ ];
172
+
173
+ export default config;
package/license.md ADDED
@@ -0,0 +1,7 @@
1
+ Copyright (c) 2022 — Present Hayden Bleasel
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/logo.svg ADDED
@@ -0,0 +1 @@
1
+ <svg fill="none" height="118" viewBox="0 0 791 118" width="791" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path d="m73.4415 3.08447-11.5112-3.08447-9.7007 36.2036-8.7579-32.68485-11.5116 3.08447 9.4625 35.31358-23.5687-23.5686-8.42691 8.4269 25.85191 25.8521-32.19444-8.6265-3.08446 11.5112 35.1764 9.4256c-.4027-1.7371-.6158-3.5471-.6158-5.4068 0-13.1637 10.6713-23.8349 23.835-23.8349s23.8349 10.6712 23.8349 23.8349c0 1.8477-.2104 3.6466-.6082 5.3734l31.9687 8.566 3.084-11.5113-35.3158-9.463 32.1968-8.6271-3.085-11.5112-35.3147 9.4624 23.5686-23.5684-8.4269-8.42693-25.4933 25.49343z"/><path d="m81.5886 65.0381c-.9869 4.1725-3.0705 7.9209-5.9294 10.9241l23.16 23.1603 8.4268-8.4269z"/><path d="m75.4254 76.2044c-2.8935 2.9552-6.55 5.1606-10.6505 6.297l8.4275 31.4516 11.5113-3.084z"/><path d="m64.345 82.6165c-1.9025.4891-3.8965.749-5.9514.749-2.2016 0-4.3335-.2985-6.3574-.8573l-8.4351 31.4808 11.5112 3.084z"/><path d="m51.6292 82.3922c-4.0379-1.193-7.6294-3.4264-10.4637-6.3902l-23.217 23.2171 8.4269 8.4269z"/><path d="m40.9741 75.7968c-2.7857-2.9824-4.8149-6.6808-5.7807-10.7889l-32.07328 8.5941 3.08444 11.5112z"/><path d="m230.886 72.7605c0 23.184-12.144 36.9835-33.81 36.9835s-33.81-13.7995-33.81-36.9835v-63.342h16.422v64.722c0 12.834 5.796 20.424 17.388 20.424s17.388-7.59 17.388-20.424v-64.722h16.422zm6.294 20.562h24.84v-61.548c0-5.52-2.484-8.004-7.728-8.004h-17.112v-14.21401h17.112c15.456 0 23.736 7.59001 23.736 22.21801v61.548h22.08v14.2135h-62.928zm84.678-78.246h16.008v19.32h26.772v14.214h-26.772v34.914c0 6.072 3.312 9.798 9.384 9.798h17.112v14.2135h-19.182c-16.146 0-23.322-8.2795-23.322-22.3555v-36.57h-19.734v-14.214h19.734zm80.814 19.32 1.104 13.662c2.484-9.384 8.418-13.662 18.078-13.662h15.318v14.214h-14.076c-10.626 0-15.042 5.106-15.042 16.422v28.29h22.494v14.2135h-56.994v-14.2135h18.492v-44.712h-18.492v-14.214zm38.31 22.08c2.898-14.766 15.042-23.736 31.05-23.736 18.078 0 29.532 10.488 29.532 30.636v24.978c0 3.588 1.38 4.968 4.416 4.968h3.312v14.2135h-4.002c-8.832 0-14.076-4.692-15.456-11.1775-2.898 7.0375-11.868 12.8335-23.184 12.8335-14.904 0-26.91-7.866-26.91-20.8375 0-15.042 10.902-20.424 28.704-23.598l17.112-3.312c-.276-9.522-5.658-14.352-13.938-14.352-7.314 0-12.558 4.278-13.938 10.35zm15.732 31.05c.138 4.416 4.002 7.866 12.144 7.866 9.66 0 16.836-6.762 16.836-17.94v-2.622l-13.386 2.346c-9.246 1.518-15.732 2.76-15.594 10.35zm102.48-25.944c-1.242-8.832-7.866-14.49-15.732-14.49-11.178 0-17.664 8.97-17.664 23.874 0 14.766 6.486 23.874 17.664 23.874 8.28 0 14.904-5.796 16.146-15.18l16.974.828c-2.07 17.388-16.008 28.7035-33.12 28.7035-20.976 0-34.5-14.9035-34.5-38.2255s13.524-38.226 34.5-38.226c16.56 0 30.774 11.04 32.706 27.876zm64.392-27.186v58.926h21.252v14.2135h-62.514v-14.2135h25.254v-44.712h-25.254v-14.214zm-16.836-9.522v-15.31801h16.698v15.31801zm59.838-9.798h16.008v19.32h26.772v14.214h-26.772v34.914c0 6.072 3.312 9.798 9.384 9.798h17.112v14.2135h-19.182c-16.146 0-23.322-8.2795-23.322-22.3555v-36.57h-19.734v-14.214h19.734zm48.384 55.89c0-23.322 13.524-38.226 34.638-38.226 16.974 0 32.568 11.04 33.396 37.536v4.83h-50.922c1.104 12.42 7.314 19.734 17.526 19.734 6.624 0 12.558-4.002 15.318-10.764l16.974 1.656c-4.14 14.214-16.974 23.4595-32.292 23.4595-21.114 0-34.638-14.9035-34.638-38.2255zm17.526-7.314h33.12c-1.932-11.73-8.556-16.56-16.008-16.56-9.246 0-15.318 6.21-17.112 16.56z"/></g></svg>
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "dependencies": {
3
+ "@next/eslint-plugin-next": "^14.0.4",
4
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
5
+ "@typescript-eslint/parser": "^6.14.0",
6
+ "eslint-config-prettier": "^9.1.0",
7
+ "eslint-import-resolver-typescript": "^3.6.1",
8
+ "eslint-plugin-cypress": "^2.15.1",
9
+ "eslint-plugin-import": "^2.29.0",
10
+ "eslint-plugin-jest": "^27.6.0",
11
+ "eslint-plugin-jsx-a11y": "^6.8.0",
12
+ "eslint-plugin-n": "^16.4.0",
13
+ "eslint-plugin-prettier": "^5.0.1",
14
+ "eslint-plugin-promise": "^6.1.1",
15
+ "eslint-plugin-react": "^7.33.2",
16
+ "eslint-plugin-react-hooks": "^4.6.0",
17
+ "eslint-plugin-storybook": "^0.6.15",
18
+ "eslint-plugin-tailwindcss": "^3.13.0",
19
+ "eslint-plugin-unused-imports": "^3.0.0",
20
+ "globals": "^13.24.0",
21
+ "prettier-plugin-tailwindcss": "^0.5.9",
22
+ "stylelint-config-idiomatic-order": "^10.0.0",
23
+ "stylelint-config-standard": "^35.0.0",
24
+ "stylelint-prettier": "^5.0.0"
25
+ },
26
+ "peerDependencies": {
27
+ "eslint": "^8.55.0",
28
+ "jest": "^29.7.0",
29
+ "prettier": "^3.1.1",
30
+ "stylelint": "^16.0.2",
31
+ "typescript": "^5.3.3"
32
+ },
33
+ "devDependencies": {
34
+ "eslint": "^8.55.0",
35
+ "jest": "^29.7.0",
36
+ "prettier": "^3.1.1",
37
+ "stylelint": "^16.0.2",
38
+ "typescript": "^5.3.3"
39
+ },
40
+ "name": "ultracite",
41
+ "description": "Strict, opinionated ESLint config for modern TypeScript apps.",
42
+ "version": "3.2.1",
43
+ "publishConfig": {
44
+ "access": "public",
45
+ "registry": "https://registry.npmjs.org/"
46
+ },
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "git+https://github.com/haydenbleasel/ultracite.git"
50
+ },
51
+ "main": "./eslint.config.mjs",
52
+ "keywords": [
53
+ "ultracite",
54
+ "eslint",
55
+ "prettier",
56
+ "stylelint",
57
+ "typescript"
58
+ ],
59
+ "author": "Hayden Bleasel <hello@haydenbleasel.com>",
60
+ "license": "ISC",
61
+ "bugs": {
62
+ "url": "https://github.com/haydenbleasel/ultracite/issues"
63
+ },
64
+ "homepage": "https://github.com/haydenbleasel/ultracite#readme",
65
+ "prettier": "./prettier.js",
66
+ "stylelint": {
67
+ "extends": "./stylelint.js"
68
+ },
69
+ "auto": {
70
+ "plugins": [
71
+ "npm",
72
+ "all-contributors",
73
+ "conventional-commits",
74
+ "first-time-contributor",
75
+ "released"
76
+ ]
77
+ }
78
+ }
package/prettier.js ADDED
@@ -0,0 +1,13 @@
1
+ /* eslint-disable import/no-commonjs, import/unambiguous */
2
+
3
+ module.exports = {
4
+ tabWidth: 2,
5
+ useTabs: false,
6
+ semi: true,
7
+ singleQuote: true,
8
+ trailingComma: 'es5',
9
+ bracketSpacing: true,
10
+ arrowParens: 'always',
11
+ proseWrap: 'never',
12
+ printWidth: 80,
13
+ };
@@ -0,0 +1,17 @@
1
+ import plugin from 'eslint-plugin-cypress';
2
+
3
+ const { rules } = plugin;
4
+
5
+ const availableKeys = Object.keys(rules).filter(
6
+ (key) => !rules[key].meta.deprecated
7
+ );
8
+
9
+ const baseRules = Object.fromEntries(
10
+ availableKeys.map((key) => [`cypress/${key}`, 'error'])
11
+ );
12
+
13
+ const overrideRules = {};
14
+
15
+ const config = Object.assign(baseRules, overrideRules);
16
+
17
+ export default config;
@@ -0,0 +1,43 @@
1
+ const config = {
2
+ // ESLint Disabled for Typescript-ESLint
3
+ 'brace-style': 'off',
4
+ camelcase: 'off',
5
+ 'comma-dangle': 'off',
6
+ 'comma-spacing': 'off',
7
+ 'default-param-last': 'off',
8
+ 'dot-notation': 'off',
9
+ 'func-call-spacing': 'off',
10
+ indent: 'off',
11
+ 'init-declarations': 'off',
12
+ 'keyword-spacing': 'off',
13
+ 'lines-between-class-members': 'off',
14
+ 'no-array-constructor': 'off',
15
+ 'no-dupe-class-members': 'off',
16
+ 'no-duplicate-imports': 'off',
17
+ 'no-empty-function': 'off',
18
+ 'no-extra-parens': 'off',
19
+ 'no-extra-semi': 'off',
20
+ 'no-implied-eval': 'off',
21
+ 'no-invalid-this': 'off',
22
+ 'no-loop-func': 'off',
23
+ 'no-loss-of-precision': 'off',
24
+ 'no-magic-numbers': 'off',
25
+ 'no-redeclare': 'off',
26
+ 'no-restricted-imports': 'off',
27
+ 'no-shadow': 'off',
28
+ 'no-throw-literal': 'off',
29
+ 'no-unused-expressions': 'off',
30
+ 'no-unused-vars': 'off',
31
+ 'no-use-before-define': 'off',
32
+ 'no-useless-constructor': 'off',
33
+ 'object-curly-spacing': 'off',
34
+ 'padding-line-between-statements': 'off',
35
+ quotes: 'off',
36
+ 'require-await': 'off',
37
+ 'no-return-await': 'off',
38
+ semi: 'off',
39
+ 'space-before-function-paren': 'off',
40
+ 'space-infix-ops': 'off',
41
+ };
42
+
43
+ export default config;