@juuso.piikkila/eslint-config-typescript 3.0.0

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.
@@ -0,0 +1,32 @@
1
+ name: NPM Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ build:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
11
+
12
+ - name: Semantic Release
13
+ uses: cycjimmy/semantic-release-action@v4
14
+ id: semantic
15
+ with:
16
+ branch: main
17
+ extra_plugins: |
18
+ @semantic-release/changelog
19
+ @semantic-release/git
20
+ conventional-changelog-conventionalcommits
21
+ env:
22
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
24
+
25
+ - name: Create release
26
+ if: steps.semantic.outputs.new_release_published == 'true'
27
+ uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1
28
+ with:
29
+ tag: ${{ steps.semantic.outputs.new_release_version }}
30
+ name: ${{ steps.semantic.outputs.new_release_version }}
31
+ body: ${{ steps.semantic.outputs.new_release_notes }}
32
+ token: ${{ secrets.GITHUB_TOKEN }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,203 @@
1
+ ## [3.0.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.8.0...3.0.0) (2025-03-05)
2
+
3
+ ### ⚠ BREAKING CHANGES
4
+
5
+ * update rules
6
+
7
+ ### Features
8
+
9
+ * **deps:** update eslint packages ([#4](https://github.com/juusopiikkila/eslint-config-typescript/issues/4)) ([5aa79f8](https://github.com/juusopiikkila/eslint-config-typescript/commit/5aa79f8d3227a02b065ee080bf147167b23ff3e7))
10
+ * update rules ([7c194c4](https://github.com/juusopiikkila/eslint-config-typescript/commit/7c194c4d182ad7f87b8896d7a1887cb8b7b58457))
11
+
12
+ ## [2.8.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.7.0...2.8.0) (2024-05-17)
13
+
14
+
15
+ ### Features
16
+
17
+ * **deps:** update dependency eslint-plugin-unicorn to v53 ([84d5967](https://github.com/juusopiikkila/eslint-config-typescript/commit/84d5967518aef7f394c1960c06f46a0e82331d6e))
18
+
19
+ ## [2.7.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.6.0...2.7.0) (2024-05-10)
20
+
21
+
22
+ ### Features
23
+
24
+ * **deps:** update dependency eslint to v9 ([62f8f72](https://github.com/juusopiikkila/eslint-config-typescript/commit/62f8f721f76c3493fe54a7f47349fd88f38e7364))
25
+
26
+ ## [2.6.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.5.0...2.6.0) (2024-04-12)
27
+
28
+
29
+ ### Features
30
+
31
+ * **deps:** update dependency eslint-plugin-unicorn to v52 ([2ac618d](https://github.com/juusopiikkila/eslint-config-typescript/commit/2ac618dc9b8b4696d3facd152390fe5288016d38))
32
+
33
+ ## [2.5.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.4.0...2.5.0) (2024-04-05)
34
+
35
+
36
+ ### Features
37
+
38
+ * add vue/block-tag-newline ([7e9542f](https://github.com/juusopiikkila/eslint-config-typescript/commit/7e9542f5f2ef84d21524d01b2c8a4b9b1772bf99))
39
+
40
+ ## [2.4.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.3.0...2.4.0) (2024-03-08)
41
+
42
+
43
+ ### Features
44
+
45
+ * **deps:** update dependency eslint-config-airbnb-typescript to v18 ([ab7afa8](https://github.com/juusopiikkila/eslint-config-typescript/commit/ab7afa8fe65dbc3bde5c3b6ab616b4f56a6cbfa0))
46
+
47
+ ## [2.3.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.2.0...2.3.0) (2024-02-23)
48
+
49
+
50
+ ### Features
51
+
52
+ * **deps:** update typescript-eslint monorepo to v7 ([7c7c6a8](https://github.com/juusopiikkila/eslint-config-typescript/commit/7c7c6a89cc750a88fef658a26c8ccc602cdb4433))
53
+
54
+ ## [2.2.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.1.0...2.2.0) (2024-02-16)
55
+
56
+
57
+ ### Features
58
+
59
+ * **deps:** update dependency eslint-plugin-unicorn to v51 ([4626544](https://github.com/juusopiikkila/eslint-config-typescript/commit/4626544a30affeb23e2d3fafd2c502414fd550c1))
60
+
61
+ ## [2.1.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/2.0.0...2.1.0) (2023-12-29)
62
+
63
+
64
+ ### Features
65
+
66
+ * **deps:** update dependency eslint-plugin-unicorn to v50 ([5603465](https://github.com/juusopiikkila/eslint-config-typescript/commit/5603465a874fd4e70a24202ebe4d15ac7a4ada38))
67
+
68
+ ## [2.0.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.12.0...2.0.0) (2023-11-08)
69
+
70
+
71
+ ### ⚠ BREAKING CHANGES
72
+
73
+ * add more rules
74
+
75
+ ### Features
76
+
77
+ * add component name casing ([61ba901](https://github.com/juusopiikkila/eslint-config-typescript/commit/61ba9015d3cdca085981058e1f1a214dc41ced20))
78
+ * add more rules ([32f9136](https://github.com/juusopiikkila/eslint-config-typescript/commit/32f9136f7a1a0487ebcfb8f98c9db89416bf4a06))
79
+
80
+ ## [1.12.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.11.1...1.12.0) (2023-11-03)
81
+
82
+
83
+ ### Features
84
+
85
+ * **deps:** update dependency eslint-plugin-unicorn to v49 ([e0fc078](https://github.com/juusopiikkila/eslint-config-typescript/commit/e0fc0787a624c4e78f70746f1a53d522ed0d3174))
86
+
87
+ ## [1.11.1](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.11.0...1.11.1) (2023-10-31)
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * add import style ([1ac1529](https://github.com/juusopiikkila/eslint-config-typescript/commit/1ac152913f710e9ae6fb8f5d084c77f16494d590))
93
+ * fix peer dependency ([bb16c01](https://github.com/juusopiikkila/eslint-config-typescript/commit/bb16c01fe9c8a82e4a6dafeae49fb3d13db39170))
94
+
95
+ ## [1.11.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.10.0...1.11.0) (2023-07-21)
96
+
97
+
98
+ ### Features
99
+
100
+ * **deps:** update dependency eslint-plugin-unicorn to v48 ([8486ec6](https://github.com/juusopiikkila/eslint-config-typescript/commit/8486ec6c566f160f1fe1702f4e68fcdf7d0eb77e))
101
+
102
+ ## [1.10.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.9.0...1.10.0) (2023-07-14)
103
+
104
+
105
+ ### Features
106
+
107
+ * **deps:** update typescript-eslint monorepo to v6 ([6fed01b](https://github.com/juusopiikkila/eslint-config-typescript/commit/6fed01b175f6f6a220900efb5b2162cf7aadc659))
108
+
109
+ ## [1.9.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.8.0...1.9.0) (2023-06-23)
110
+
111
+
112
+ ### Features
113
+
114
+ * **deps:** update dependency eslint-plugin-unicorn to v47 ([1d9fe24](https://github.com/juusopiikkila/eslint-config-typescript/commit/1d9fe245f6c8ece0a717c576b3cc01262dcc5d9c))
115
+ * **deps:** update dependency typescript to v5 ([ee83575](https://github.com/juusopiikkila/eslint-config-typescript/commit/ee8357570fb10d6d7a984478bc0294ea94ea83e8))
116
+
117
+ ## [1.8.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.7.0...1.8.0) (2023-03-10)
118
+
119
+
120
+ ### Features
121
+
122
+ * **deps:** update dependency eslint-plugin-unicorn to v46 ([e6a502c](https://github.com/juusopiikkila/eslint-config-typescript/commit/e6a502c31343bd18f27803f87a63f969f52e1d6e))
123
+
124
+ ## [1.7.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.6.0...1.7.0) (2022-11-25)
125
+
126
+
127
+ ### Features
128
+
129
+ * **deps:** update dependency eslint-plugin-unicorn to v45 ([1962a77](https://github.com/juusopiikkila/eslint-config-typescript/commit/1962a77eabcb56640b909d4bbe32671f351b3de5))
130
+
131
+ ## [1.6.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.5.0...1.6.0) (2022-11-04)
132
+
133
+
134
+ ### Features
135
+
136
+ * **deps:** update dependency eslint-plugin-vuejs-accessibility to v2 ([9fb2381](https://github.com/juusopiikkila/eslint-config-typescript/commit/9fb238162a9c922bf3c23a7c191ed6344fe111dd))
137
+
138
+ ## [1.5.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.4.0...1.5.0) (2022-10-07)
139
+
140
+
141
+ ### Features
142
+
143
+ * **deps:** update dependency eslint-plugin-unicorn to v44 ([2b9bb84](https://github.com/juusopiikkila/eslint-config-typescript/commit/2b9bb8453c436c2bcb42db3532832eed74ffc038))
144
+
145
+ ## [1.4.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.3.0...1.4.0) (2022-07-08)
146
+
147
+
148
+ ### Features
149
+
150
+ * **deps:** update dependency eslint-plugin-unicorn to v43 ([9e4b2da](https://github.com/juusopiikkila/eslint-config-typescript/commit/9e4b2da7f5b7284ea55595ef503b4db8bbf4a1e7))
151
+
152
+ ## [1.3.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.2.0...1.3.0) (2022-07-01)
153
+
154
+
155
+ ### Features
156
+
157
+ * **deps:** update dependency eslint-import-resolver-typescript to v3 ([da66659](https://github.com/juusopiikkila/eslint-config-typescript/commit/da6665914acf11cbce9a72a1c49b9b722e921967))
158
+
159
+ ## [1.2.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.1.0...1.2.0) (2022-06-10)
160
+
161
+
162
+ ### Features
163
+
164
+ * adjust no-underscore-dangle ([f6d1849](https://github.com/juusopiikkila/eslint-config-typescript/commit/f6d18491f55a13a60bff58343e09cbffaccbf6d3))
165
+ * disable no-param-reassign on vue config ([6a53619](https://github.com/juusopiikkila/eslint-config-typescript/commit/6a536194200fdbbf0f17ffff9d12aa8843915e58))
166
+
167
+
168
+ ### Bug Fixes
169
+
170
+ * add vue plugins as optional ([d561f1b](https://github.com/juusopiikkila/eslint-config-typescript/commit/d561f1b14e3800e4e0342216202ab49b613a13e8))
171
+
172
+ ## [1.1.0](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.0.1...1.1.0) (2022-06-07)
173
+
174
+
175
+ ### Features
176
+
177
+ * disable unicorn/no-null ([aa029e9](https://github.com/juusopiikkila/eslint-config-typescript/commit/aa029e9deef194dac973a55a69bde559c6d86035))
178
+
179
+
180
+ ### Bug Fixes
181
+
182
+ * add indent ([6eb091a](https://github.com/juusopiikkila/eslint-config-typescript/commit/6eb091af7db6e146f45d1e3247065427daa83122))
183
+
184
+ ## [1.0.1](https://github.com/juusopiikkila/eslint-config-typescript/compare/1.0.0...1.0.1) (2022-06-07)
185
+
186
+
187
+ ### Features
188
+
189
+ * **deps:** update dependency eslint-plugin-vue to v9 ([28225c4](https://github.com/juusopiikkila/eslint-config-typescript/commit/28225c48b0c5c19974e189058368b44f8c85df75))
190
+
191
+
192
+ ### Bug Fixes
193
+
194
+ * correct renovate semantic commit type on major updates ([4279bf8](https://github.com/juusopiikkila/eslint-config-typescript/commit/4279bf8359dcb9d6d6edcb0931e3e7225cc91c49))
195
+
196
+ ## 1.0.0 (2022-04-27)
197
+
198
+
199
+ ### Bug Fixes
200
+
201
+ * add conventional-changelog-conventionalcommits to main ([78b1fe2](https://github.com/juusopiikkila/eslint-config-typescript/commit/78b1fe2982e4fe0ce36a93f92fa3b8627c27dfee))
202
+ * remove @semantic-release/gitlab ([ef7e436](https://github.com/juusopiikkila/eslint-config-typescript/commit/ef7e4362e91d0d11bb71a809e789facd6ff57754))
203
+ * update config ([14ded7f](https://github.com/juusopiikkila/eslint-config-typescript/commit/14ded7f5b960658ae3127f20738ccb6a009fd74f))
@@ -0,0 +1,185 @@
1
+ const canonical = require('eslint-config-canonical/configurations/canonical');
2
+ const regexp = require('eslint-config-canonical/configurations/regexp');
3
+
4
+ module.exports = [
5
+ canonical.recommended,
6
+ regexp.recommended,
7
+ {
8
+ files: [
9
+ '**/*.{ts,cjs,mjs,js,jsx,vue}',
10
+ ],
11
+ rules: {
12
+ '@stylistic/indent': [
13
+ 'error',
14
+ 4,
15
+ ],
16
+ '@stylistic/object-curly-newline': [
17
+ 2,
18
+ {
19
+ ExportDeclaration: {
20
+ consistent: true,
21
+ minProperties: 5,
22
+ multiline: true,
23
+ },
24
+ ImportDeclaration: {
25
+ consistent: true,
26
+ minProperties: 5,
27
+ multiline: true,
28
+ },
29
+ ObjectExpression: {
30
+ consistent: true,
31
+ minProperties: 5,
32
+ multiline: true,
33
+ },
34
+ ObjectPattern: {
35
+ consistent: true,
36
+ minProperties: 5,
37
+ multiline: true,
38
+ },
39
+ },
40
+ ],
41
+ '@stylistic/array-bracket-newline': [
42
+ 2,
43
+ 'consistent',
44
+ ],
45
+ 'max-len': [
46
+ 'error',
47
+ {
48
+ code: 120,
49
+ ignoreComments: true,
50
+ ignoreUrls: true,
51
+ ignoreStrings: true,
52
+ ignoreTemplateLiterals: true,
53
+ },
54
+ ],
55
+ '@stylistic/object-property-newline': [
56
+ 2,
57
+ {
58
+ allowAllPropertiesOnSameLine: true,
59
+ },
60
+ ],
61
+ '@stylistic/member-delimiter-style': [
62
+ 2,
63
+ {
64
+ multiline: {
65
+ delimiter: 'none',
66
+ requireLast: true,
67
+ },
68
+ singleline: {
69
+ delimiter: 'semi',
70
+ requireLast: false,
71
+ },
72
+ },
73
+ ],
74
+ 'arrow-body-style': [
75
+ 'error',
76
+ 'as-needed',
77
+ ],
78
+ '@stylistic/space-before-function-paren': [
79
+ 'error',
80
+ {
81
+ anonymous: 'always',
82
+ named: 'never',
83
+ asyncArrow: 'always',
84
+ },
85
+ ],
86
+ 'canonical/import-specifier-newline': 'off',
87
+ 'import/extensions': 'off',
88
+ 'perfectionist/sort-objects': 'off',
89
+ 'perfectionist/sort-object-types': 'off',
90
+ 'perfectionist/sort-switch-case': 'off',
91
+ 'perfectionist/sort-decorators': 'off',
92
+ 'perfectionist/sort-interfaces': 'off',
93
+ 'perfectionist/sort-modules': 'off',
94
+ 'perfectionist/sort-enums': 'off',
95
+ 'perfectionist/sort-union-types': 'off',
96
+ '@stylistic/operator-linebreak': [
97
+ 'error',
98
+ 'before',
99
+ ],
100
+ '@stylistic/no-extra-parens': [
101
+ 'error',
102
+ 'functions',
103
+ ],
104
+ 'canonical/filename-match-regex': [
105
+ 'error',
106
+ {
107
+ regex:
108
+ '^[a-z0-9-.]+$',
109
+ ignoreExporting: true,
110
+ },
111
+ ],
112
+ 'func-style': [
113
+ 'error',
114
+ 'declaration',
115
+ {
116
+ allowArrowFunctions: true,
117
+ },
118
+ ],
119
+ 'unicorn/numeric-separators-style': [
120
+ 'error',
121
+ {
122
+ onlyIfContainsSeparator: false,
123
+ hexadecimal: {
124
+ minimumDigits: 0,
125
+ groupLength: 2,
126
+ },
127
+ binary: {
128
+ minimumDigits: 0,
129
+ groupLength: 4,
130
+ },
131
+ octal: {
132
+ minimumDigits: 0,
133
+ groupLength: 4,
134
+ },
135
+ number: {
136
+ minimumDigits: 5,
137
+ groupLength: 3,
138
+ },
139
+ },
140
+ ],
141
+ 'perfectionist/sort-classes': 'off',
142
+ 'perfectionist/sort-imports': [
143
+ 2,
144
+ {
145
+ groups: [
146
+ 'type',
147
+ [
148
+ 'builtin',
149
+ 'external',
150
+ ],
151
+ 'internal-type',
152
+ 'internal',
153
+ [
154
+ 'parent-type',
155
+ 'sibling-type',
156
+ 'index-type',
157
+ ],
158
+ [
159
+ 'parent',
160
+ 'sibling',
161
+ 'index',
162
+ ],
163
+ 'object',
164
+ 'unknown',
165
+ ],
166
+ ignoreCase: true,
167
+ maxLineLength: undefined,
168
+ newlinesBetween: 'never',
169
+ type: 'natural',
170
+ },
171
+ ],
172
+ 'no-warning-comments': 'off',
173
+ '@stylistic/comma-dangle': [
174
+ 'error',
175
+ 'always-multiline',
176
+ ],
177
+ 'canonical/destructuring-property-newline': 'off',
178
+ '@stylistic/array-element-newline': [
179
+ 'error',
180
+ 'consistent',
181
+ ],
182
+ 'canonical/id-match': 'off',
183
+ },
184
+ },
185
+ ];
@@ -0,0 +1,86 @@
1
+ const typescript = require('eslint-config-canonical/configurations/typescript');
2
+ const typescriptTypeChecking = require('eslint-config-canonical/configurations/typescript-type-checking');
3
+
4
+ module.exports = [
5
+ typescript.recommended,
6
+ typescriptTypeChecking.recommended,
7
+ {
8
+ files: [
9
+ '**/*.{ts,cjs,mjs,js,jsx,vue}',
10
+ ],
11
+ plugins: {
12
+ '@typescript-eslint': require('@typescript-eslint/eslint-plugin'),
13
+ },
14
+ rules: {
15
+ '@typescript-eslint/no-non-null-assertion': 'off',
16
+ '@typescript-eslint/func-call-spacing': 'off',
17
+ '@typescript-eslint/indent': 'off',
18
+ '@typescript-eslint/object-curly-spacing': 'off',
19
+ '@typescript-eslint/type-annotation-spacing': 'off',
20
+ '@typescript-eslint/no-extraneous-class': [
21
+ 'error',
22
+ {
23
+ allowWithDecorator: true,
24
+ allowConstructorOnly: true,
25
+ },
26
+ ],
27
+ '@typescript-eslint/consistent-type-definitions': [
28
+ 'error',
29
+ 'interface',
30
+ ],
31
+ '@typescript-eslint/naming-convention': [
32
+ 'error',
33
+ {
34
+ selector: 'default',
35
+ format: [
36
+ 'camelCase',
37
+ ],
38
+ },
39
+ {
40
+ selector: 'variable',
41
+ format: [
42
+ 'camelCase',
43
+ 'UPPER_CASE',
44
+ 'PascalCase',
45
+ ],
46
+ },
47
+ {
48
+ selector: 'parameter',
49
+ format: [
50
+ 'camelCase',
51
+ ],
52
+ leadingUnderscore: 'allow',
53
+ },
54
+ {
55
+ selector: 'memberLike',
56
+ modifiers: [
57
+ 'private',
58
+ ],
59
+ format: [
60
+ 'camelCase',
61
+ ],
62
+ },
63
+ {
64
+ selector: 'enumMember',
65
+ format: [
66
+ 'UPPER_CASE',
67
+ ],
68
+ },
69
+ {
70
+ selector: 'typeLike',
71
+ format: [
72
+ 'PascalCase',
73
+ ],
74
+ },
75
+ {
76
+ selector: 'import',
77
+ format: ['camelCase', 'PascalCase'],
78
+ },
79
+ ],
80
+ '@typescript-eslint/return-await': [
81
+ 'error',
82
+ 'in-try-catch',
83
+ ],
84
+ },
85
+ },
86
+ ];
@@ -0,0 +1,193 @@
1
+ const pluginVue = require('eslint-plugin-vue');
2
+ const pluginVueA11y = require('eslint-plugin-vuejs-accessibility');
3
+ const globals = require('globals');
4
+
5
+ module.exports = [
6
+ ...pluginVue.configs['flat/recommended'],
7
+ ...pluginVueA11y.configs['flat/recommended'],
8
+ {
9
+ rules: {
10
+ 'vue/custom-event-name-casing': [
11
+ 'error',
12
+ 'kebab-case',
13
+ ],
14
+ 'vue/first-attribute-linebreak': 'off',
15
+ 'vue/html-button-has-type': [
16
+ 'error',
17
+ {
18
+ button: true,
19
+ submit: true,
20
+ reset: true,
21
+ },
22
+ ],
23
+ 'vue/html-closing-bracket-newline': 'off',
24
+ 'vue/html-indent': [
25
+ 'error',
26
+ 4,
27
+ {
28
+ alignAttributesVertically: false,
29
+ },
30
+ ],
31
+ 'vue/html-self-closing': [
32
+ 'error',
33
+ {
34
+ html: {
35
+ void: 'never',
36
+ normal: 'any',
37
+ component: 'any',
38
+ },
39
+ svg: 'always',
40
+ math: 'always',
41
+ },
42
+ ],
43
+ 'vue/max-attributes-per-line': [
44
+ 2,
45
+ {
46
+ singleline: 1,
47
+ multiline: 1,
48
+ },
49
+ ],
50
+ 'vue/multi-word-component-names': 'off',
51
+ 'vue/new-line-between-multi-line-property': [
52
+ 'error',
53
+ {
54
+ minLineOfMultilineProperty: 2,
55
+ },
56
+ ],
57
+ 'vue/no-boolean-default': [
58
+ 'error',
59
+ 'default-false',
60
+ ],
61
+ 'vue/no-dupe-keys': 'off',
62
+ 'vue/no-useless-mustaches': [
63
+ 'error',
64
+ {
65
+ ignoreIncludesComment: false,
66
+ ignoreStringEscape: false,
67
+ },
68
+ ],
69
+ 'vue/no-useless-v-bind': [
70
+ 'error',
71
+ {
72
+ ignoreIncludesComment: false,
73
+ ignoreStringEscape: false,
74
+ },
75
+ ],
76
+ 'vue/padding-line-between-blocks': [
77
+ 'error',
78
+ 'always',
79
+ ],
80
+ 'vue/prefer-separate-static-class': [
81
+ 'error',
82
+ ],
83
+ 'vue/singleline-html-element-content-newline': 'off',
84
+ 'vue/component-name-in-template-casing': [
85
+ 'error',
86
+ 'kebab-case',
87
+ {
88
+ registeredComponentsOnly: false,
89
+ },
90
+ ],
91
+ 'vue/block-order': [
92
+ 'error',
93
+ {
94
+ order: [
95
+ 'template',
96
+ 'script',
97
+ 'style',
98
+ 'i18n',
99
+ ],
100
+ },
101
+ ],
102
+ 'vue/define-props-declaration': [
103
+ 'error',
104
+ 'type-based',
105
+ ],
106
+ 'vue/define-emits-declaration': [
107
+ 'error',
108
+ 'type-based',
109
+ ],
110
+ 'vue/component-api-style': [
111
+ 'error',
112
+ [
113
+ 'script-setup',
114
+ ],
115
+ ],
116
+ 'vue/define-macros-order': [
117
+ 'error',
118
+ {
119
+ order: [
120
+ 'defineProps',
121
+ 'defineEmits',
122
+ 'defineOptions',
123
+ 'defineSlots',
124
+ ],
125
+ },
126
+ ],
127
+ 'vue/block-lang': [
128
+ 'error',
129
+ {
130
+ script: {
131
+ lang: 'ts',
132
+ },
133
+ },
134
+ ],
135
+ 'vue/next-tick-style': [
136
+ 'error',
137
+ 'promise',
138
+ ],
139
+ 'vue/no-multiple-objects-in-class': [
140
+ 'error',
141
+ ],
142
+ 'vue/no-ref-object-reactivity-loss': [
143
+ 'error',
144
+ ],
145
+ 'vue/no-required-prop-with-default': [
146
+ 'error',
147
+ ],
148
+ 'vue/padding-line-between-tags': [
149
+ 'error',
150
+ [
151
+ {
152
+ blankLine: 'always',
153
+ prev: '*',
154
+ next: '*',
155
+ },
156
+ ],
157
+ ],
158
+ 'vue/prefer-true-attribute-shorthand': [
159
+ 'error',
160
+ ],
161
+ 'vue/require-emit-validator': [
162
+ 'error',
163
+ ],
164
+ 'vue/require-macro-variable-name': [
165
+ 'error', {
166
+ defineProps: 'properties',
167
+ defineEmits: 'emit',
168
+ defineSlots: 'slots',
169
+ useSlots: 'slots',
170
+ useAttrs: 'attrs',
171
+ },
172
+ ],
173
+ 'vue/require-typed-ref': [
174
+ 'error',
175
+ ],
176
+ 'vue/block-tag-newline': [
177
+ 'error',
178
+ {
179
+ singleline: 'always',
180
+ multiline: 'always',
181
+ maxEmptyLines: 0,
182
+ },
183
+ ],
184
+ 'vuejs-accessibility/label-has-for': 'off',
185
+ },
186
+ languageOptions: {
187
+ sourceType: 'module',
188
+ globals: {
189
+ ...globals.browser,
190
+ },
191
+ },
192
+ },
193
+ ];
@@ -0,0 +1,5 @@
1
+ const rules = require('./configurations/base/index.cjs');
2
+
3
+ module.exports = [
4
+ ...rules,
5
+ ];
package/index.cjs ADDED
@@ -0,0 +1,7 @@
1
+ const base = require('./configurations/base/index.cjs');
2
+ const typescript = require('./configurations/typescript/index.cjs');
3
+
4
+ module.exports = [
5
+ ...base,
6
+ ...typescript,
7
+ ];
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@juuso.piikkila/eslint-config-typescript",
3
+ "description": "ESLint config for typescript projects",
4
+ "version": "3.0.0",
5
+ "main": "index.cjs",
6
+ "author": "Juuso Piikkilä",
7
+ "license": "MIT",
8
+ "packageManager": "yarn@4.7.0",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "scripts": {
13
+ "lint": "eslint \"configurations/**/*.cjs\" \"index.cjs\""
14
+ },
15
+ "dependencies": {
16
+ "eslint": "^9.0.0",
17
+ "eslint-config-canonical": "^44.3.43",
18
+ "eslint-plugin-vue": "^10.0.0",
19
+ "eslint-plugin-vuejs-accessibility": "^2.0.0",
20
+ "globals": "^16.0.0",
21
+ "vue-eslint-parser": "^10.1.1"
22
+ },
23
+ "devDependencies": {
24
+ "@semantic-release/changelog": "^6.0.1",
25
+ "@semantic-release/git": "^10.0.1",
26
+ "conventional-changelog-conventionalcommits": "^8.0.0",
27
+ "semantic-release": "^24.0.0"
28
+ }
29
+ }