@soleil-se/eslint-config 3.0.1 → 4.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.
- package/CHANGELOG.md +14 -59
- package/LICENSE.md +1 -1
- package/README.md +62 -216
- package/index.js +55 -0
- package/legacy.js +38 -0
- package/package.json +7 -7
- package/svelte.prettier.js +1 -1
- package/utils/hasDependency.js +15 -0
- package/FAQ.md +0 -21
- package/client.js +0 -16
- package/docs/structure.md +0 -115
- package/global.js +0 -41
- package/overrides/svelte.js +0 -22
- package/overrides/vue.js +0 -20
- package/server-es6.js +0 -16
- package/server-legacy.js +0 -29
- package/server.js +0 -2
- package/shared/client.js +0 -31
- package/shared/server.js +0 -33
- package/shared/universal.js +0 -33
- package/svelte.config.js +0 -14
- package/universal.js +0 -2
- package/utils/index.js +0 -41
- package/webapp.js +0 -31
package/CHANGELOG.md
CHANGED
|
@@ -5,72 +5,60 @@ Alla förändringar i detta repository antecknas här.
|
|
|
5
5
|
Formatet baseras på [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
och projektet använder [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [4.0.0] - 2022-06-22
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
- Förenkla genom att ta bort de de olika konfigurationerna och använd en och samma config för allt utom legacy kod.
|
|
11
|
+
- Modernisera legacy konfigurationen för att tillåta begränsad användning av ES2015+ som stöds av Rhino.
|
|
12
|
+
- Använd `eslint-config-prettier` i Svelte komponenter för att undvika krockar med ESLint.
|
|
13
|
+
- Ta bort stöd för Vue.
|
|
14
|
+
|
|
15
|
+
## [3.1.0] - 2022-04-11
|
|
16
|
+
|
|
17
|
+
- Tillåt användning av `console.error()` - för exempelvis try catch.
|
|
18
|
+
|
|
19
|
+
## [3.0.1] - 2022-02-07
|
|
11
20
|
|
|
12
21
|
- Ignorera `import/no-unresolved` för importer som börjar med `@sitevision/api/server`,
|
|
13
22
|
`@sitevision/api/common` och `@sitevision/api/client` då alla API:er inte finns dokumenterade.
|
|
14
23
|
|
|
15
24
|
## [3.0.0] - 2022-02-07
|
|
16
25
|
|
|
17
|
-
### Ändrat
|
|
18
|
-
|
|
19
26
|
- Tillåt enbart importer av Sitevisions API:er via `@sitevision/api`.
|
|
20
27
|
- Uppdaterat sökvägarna i den globala och webapp configen för att stödja WebApps 2 strukturen.
|
|
21
28
|
- Uppdaterat `peerDependencies` till senaste major versionerna.
|
|
22
29
|
|
|
23
30
|
## [2.4.5] - 2021-11-04
|
|
24
31
|
|
|
25
|
-
### Fixat
|
|
26
|
-
|
|
27
32
|
- Sätt `ecmaVersion` till 2021 i client kontfigurationen om Vue används.
|
|
28
33
|
|
|
29
34
|
## [2.4.4] - 2021-09-09
|
|
30
35
|
|
|
31
|
-
### Fixat
|
|
32
|
-
|
|
33
36
|
- Lägg till `options` i `svelteSortOrder`.
|
|
34
37
|
|
|
35
38
|
## [2.4.3] - 2021-08-27
|
|
36
39
|
|
|
37
|
-
### Fixat
|
|
38
|
-
|
|
39
40
|
- Felstavning i regeln `no-return-assign` i Svelte-filer.
|
|
40
41
|
|
|
41
42
|
## [2.4.2] - 2021-08-17
|
|
42
43
|
|
|
43
|
-
### Fixat
|
|
44
|
-
|
|
45
44
|
- Om Vue används i projektet sätt `ecmaVersion` till 2021 istället då pluginet använder Espree vilket inte klarar av samma versionsnamn som ESLint.
|
|
46
45
|
|
|
47
46
|
## [2.4.1] - 2021-08-17
|
|
48
47
|
|
|
49
|
-
### Ändrat
|
|
50
|
-
|
|
51
48
|
- Sätt `ecmaVersion` till `latest` för att slippa uppdatera version varje år.
|
|
52
49
|
|
|
53
50
|
## [2.4.0] - 2021-03-24
|
|
54
51
|
|
|
55
|
-
### Nytt
|
|
56
|
-
|
|
57
52
|
- Meddelande av deprekering för konfigurationerna `@soleil/eslint-config-sitevision/universal` och `@soleil/eslint-config-sitevision/server`
|
|
58
53
|
- Nya konfigurationer med tydligare namn: `@soleil/eslint-config-sitevision/webapp` och `@soleil/eslint-config-sitevision/server-legacy`
|
|
59
|
-
|
|
60
|
-
### Ändrat
|
|
61
|
-
|
|
62
54
|
- Tillåt fler properties per rad i ett objekt i `object-curly-newline`.
|
|
63
55
|
|
|
64
56
|
## [2.3.1] - 2021-02-24
|
|
65
57
|
|
|
66
|
-
### Ändrat
|
|
67
|
-
|
|
68
58
|
- Dra tillbaka till `ecmaVersion` till 2020.
|
|
69
59
|
|
|
70
60
|
## [2.3.0] - 2021-02-24
|
|
71
61
|
|
|
72
|
-
### Ändrat
|
|
73
|
-
|
|
74
62
|
- Fler regler överlappar när man skriver universell kod.
|
|
75
63
|
- Slagit av `import/prefer-default-export`.
|
|
76
64
|
- Slagit av `no-return-assig` i Svelte komponenter.
|
|
@@ -78,77 +66,52 @@ och projektet använder [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
78
66
|
|
|
79
67
|
## [2.2.1] - 2021-01-07
|
|
80
68
|
|
|
81
|
-
### Fixat
|
|
82
|
-
|
|
83
69
|
- Tagit bort `babel-eslint` från dependencies.
|
|
84
70
|
|
|
85
71
|
## [2.2.0] - 2021-01-07
|
|
86
72
|
|
|
87
|
-
### Ändrat
|
|
88
|
-
|
|
89
73
|
- Tagit bort `babel-eslint` och använder standardparsern med ES2020.
|
|
90
74
|
- Förenklat `svelte.config.js`, oftast behövs inte plugin för globbing.
|
|
91
75
|
- Lagt till paketet `cache` som undantag för SiteVision paket.
|
|
92
76
|
|
|
93
77
|
## [2.1.4] - 2020-10-26
|
|
94
78
|
|
|
95
|
-
### Fixat
|
|
96
|
-
|
|
97
79
|
- Tagit bort felaktig konfiguration av `a11y-no-onchange`.
|
|
98
80
|
|
|
99
81
|
## [2.1.3] - 2020-10-21
|
|
100
82
|
|
|
101
|
-
### Ändrat
|
|
102
|
-
|
|
103
83
|
- Lagt till `app_src/views/**/*.js` i server configen.
|
|
104
84
|
|
|
105
85
|
## [2.1.2] - 2020-10-06
|
|
106
86
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- Felaktiga `parserOptions` i `server-es6` configen.
|
|
87
|
+
- Åträgrdat felaktiga `parserOptions` i `server-es6` configen.
|
|
110
88
|
|
|
111
89
|
## [2.1.1] - 2020-10-06
|
|
112
90
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- Ordning på config så de inställningar Svelte behöver för serversidan kommer med.
|
|
91
|
+
- Ändrat ordning på config så de inställningar Svelte behöver för serversidan kommer med.
|
|
116
92
|
|
|
117
93
|
## [2.1.0] - 2020-09-28
|
|
118
94
|
|
|
119
|
-
### Ändrat
|
|
120
|
-
|
|
121
95
|
- Dependencies som behövs som standard ligger som peerDependencies
|
|
122
96
|
- Dependencies för ramverksspecifika plugins behöver installeras utöver peerDependencies.
|
|
123
97
|
|
|
124
98
|
## [2.0.0] - 2020-09-28
|
|
125
99
|
|
|
126
|
-
### Ändrat
|
|
127
|
-
|
|
128
100
|
- Stöd för Svelte.
|
|
129
101
|
- Uppdaterad struktur.
|
|
130
102
|
- Uppdatering till ESLint 7.
|
|
131
|
-
|
|
132
|
-
### Tagit bort
|
|
133
|
-
|
|
134
|
-
- Konfigurationen för Vue, ligger nu i client.
|
|
103
|
+
- Tagit bort konfigurationen för Vue, ligger nu i client.
|
|
135
104
|
|
|
136
105
|
## [1.1.2] - 2020-02-05
|
|
137
106
|
|
|
138
|
-
### Ändrat
|
|
139
|
-
|
|
140
107
|
- Ändrat regeln `import/extensions` så den ignorerar json-filer.
|
|
141
108
|
|
|
142
109
|
## [1.1.1] - 2020-01-27
|
|
143
110
|
|
|
144
|
-
### Ändrat
|
|
145
|
-
|
|
146
111
|
- Ändrat regeln `import/extensions` så den ignorerar vue-filer.
|
|
147
112
|
|
|
148
113
|
## [1.1.0] - 2020-01-21
|
|
149
114
|
|
|
150
|
-
### Ändrat
|
|
151
|
-
|
|
152
115
|
- Ändrat regeln `import/extensions` så den ignorerar paket, löser problem med import via alias.
|
|
153
116
|
|
|
154
117
|
## [1.0.0] - 2020-01-13
|
|
@@ -159,24 +122,16 @@ och projektet använder [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
159
122
|
|
|
160
123
|
## [0.3.3] - 2019-12-06
|
|
161
124
|
|
|
162
|
-
### Ändrat
|
|
163
|
-
|
|
164
125
|
- Det får nu vara max 3 attribut per rad i Vue (`vue/max-attributes-per-line`).
|
|
165
126
|
|
|
166
127
|
## [0.3.2] - 2019-06-03
|
|
167
128
|
|
|
168
|
-
### Fixat
|
|
169
|
-
|
|
170
129
|
- Lagt till `server_src/api` i server på den globala configen.
|
|
171
130
|
|
|
172
131
|
## [0.3.1] - 2019-05-20
|
|
173
132
|
|
|
174
|
-
### Ändrat
|
|
175
|
-
|
|
176
133
|
- Slagit av `global-require` för att kunna skriva `require` innanför IIFE i `src/index.js` i en WebApp.
|
|
177
134
|
|
|
178
135
|
## [0.3.0] - 2019-05-20
|
|
179
136
|
|
|
180
|
-
### Nytt
|
|
181
|
-
|
|
182
137
|
- Lagt till en global config som kan användas i roten av ett projekt som använder standardstrukturen och `@soleil/sv-gulp-build@^3.0.0`.
|
package/LICENSE.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(c) Copyright
|
|
1
|
+
(c) Copyright 2022 Soleil AB, all rights reserved.
|
package/README.md
CHANGED
|
@@ -1,77 +1,58 @@
|
|
|
1
1
|
|
|
2
|
-
# `@soleil-se/eslint-config-sitevision@^
|
|
2
|
+
# `@soleil-se/eslint-config-sitevision@^5.0.0`
|
|
3
3
|
|
|
4
|
-
ESLint
|
|
4
|
+
ESLint konfiguration för Sitevision projekt som bygger på Airbnbs JavaScript styleguide.
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**ES2015+**
|
|
7
7
|
<https://github.com/airbnb/javascript>
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Legacy (ES5)**
|
|
10
10
|
<https://github.com/airbnb/javascript/tree/es5-deprecated/es5>
|
|
11
11
|
|
|
12
|
-
Om man stöter på ett fel man inte förstår kan man kolla i styleguiden eller söka på
|
|
12
|
+
Om man stöter på ett fel man inte förstår kan man kolla i styleguiden eller söka på ESLints hemsida.
|
|
13
13
|
<https://eslint.org/docs/rules/>
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<!-- TOC depthFrom:2 updateOnSave:true -->
|
|
18
|
-
|
|
19
|
-
- [Innehållsförteckning](#innehållsförteckning)
|
|
20
|
-
- [Installera](#installera)
|
|
21
|
-
- [Svelte](#svelte)
|
|
22
|
-
- [Vue](#vue)
|
|
23
|
-
- [Uppgradera 2.x.x -> 3.x.x](#uppgradera-2xx---3xx)
|
|
24
|
-
- [Uppgradera 1.x.x -> 2.x.x](#uppgradera-1xx---2xx)
|
|
25
|
-
- [Config](#config)
|
|
26
|
-
- [Struktur](#struktur)
|
|
27
|
-
- [Importera config](#importera-config)
|
|
28
|
-
- [Global](#global)
|
|
29
|
-
- [WebApp](#webapp)
|
|
30
|
-
- [Client](#client)
|
|
31
|
-
- [Server](#server)
|
|
32
|
-
- [ESLint ignore](#eslint-ignore)
|
|
33
|
-
- [Editors](#editors)
|
|
34
|
-
- [VS Code](#vs-code)
|
|
35
|
-
- [End of line](#end-of-line)
|
|
36
|
-
- [Indentation](#indentation)
|
|
37
|
-
- [Autofix](#autofix)
|
|
38
|
-
- [Max length](#max-length)
|
|
39
|
-
- [Velocity](#velocity)
|
|
40
|
-
- [Svelte](#svelte-1)
|
|
41
|
-
- [Vue](#vue-1)
|
|
42
|
-
- [Global konfig i underkatalog](#global-konfig-i-underkatalog)
|
|
43
|
-
- [Komplett config](#komplett-config)
|
|
44
|
-
- [CLI](#cli)
|
|
45
|
-
- [Svelte](#svelte-2)
|
|
46
|
-
- [Kodformatering](#kodformatering)
|
|
47
|
-
- [Preprocessing](#preprocessing)
|
|
48
|
-
- [Git](#git)
|
|
49
|
-
|
|
50
|
-
<!-- /TOC -->
|
|
15
|
+
|
|
51
16
|
|
|
52
17
|
## Installera
|
|
53
18
|
|
|
54
|
-
Installera konfigurationen,
|
|
55
|
-
`yarn add @soleil-se/eslint-config-sitevision eslint@^7 eslint-config-airbnb-base@^14 eslint-plugin-import@^2 --dev`
|
|
19
|
+
Installera konfigurationen, ESLint och de plugins som behövs plugins i ditt projekt genom att köra:
|
|
56
20
|
|
|
57
|
-
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @soleil-se/eslint-config-sitevision eslint@^8.0.0 eslint-config-airbnb-base@^15.0.0 eslint-plugin-import@^2.0.0 --dev
|
|
23
|
+
```
|
|
58
24
|
|
|
59
25
|
Om Svelte används i projektet:
|
|
60
|
-
`yarn add eslint-plugin-svelte3@^3 svelte@^3 svelte-preprocess@^4 --dev`
|
|
61
26
|
|
|
62
|
-
|
|
27
|
+
```bash
|
|
28
|
+
yarn add eslint-plugin-svelte3@^3.0.0 svelte@^3.0.0 svelte-preprocess@^4.0.0 eslint-config-prettier@^8.0.0 --dev
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Uppgradera
|
|
32
|
+
|
|
33
|
+
### Version 3.x.x > 4.x.x
|
|
63
34
|
|
|
64
|
-
Om Vue används i projektet
|
|
65
|
-
|
|
35
|
+
- Om Vue används i projektet **stanna** på version 3, stödet för Vue plockas bort i denna version.
|
|
36
|
+
- Uppgradera `@soleil-se/eslint-config-sitevision` till version 4 med `yarn upgrade @soleil-se/eslint-config-sitevision@latest`.
|
|
37
|
+
- Om Svelte används i projektet installera `eslint-config-prettier` med `yarn add eslint-config-prettier --dev`.
|
|
38
|
+
- Byt ut alla importer av konfigurationer:
|
|
39
|
+
- `@soleil-se/eslint-config-sitevision/global` > `@soleil-se/eslint-config-sitevision`
|
|
40
|
+
- `@soleil-se/eslint-config-sitevision/webapp` > `@soleil-se/eslint-config-sitevision`
|
|
41
|
+
- `@soleil-se/eslint-config-sitevision/client` > `@soleil-se/eslint-config-sitevision`
|
|
42
|
+
- `@soleil-se/eslint-config-sitevision/server-es6` > `@soleil-se/eslint-config-sitevision`
|
|
43
|
+
- `@soleil-se/eslint-config-sitevision/universal` > `@soleil-se/eslint-config-sitevision`
|
|
44
|
+
- Byt ut alla importer av legacy konfigurationer:
|
|
45
|
+
- `@soleil-se/eslint-config-sitevision/server-legacy` > `@soleil-se/eslint-config-sitevision/legacy`
|
|
46
|
+
- `@soleil-se/eslint-config-sitevision/server` > `@soleil-se/eslint-config-sitevision/legacy`
|
|
66
47
|
|
|
67
|
-
|
|
48
|
+
### Version 2.x.x > 3.x.x
|
|
68
49
|
|
|
69
50
|
- Uppgradera `@soleil-se/eslint-config-sitevision` till version 3.
|
|
70
51
|
- Uppgradera `eslint` till version 8.
|
|
71
52
|
- Uppgradera `eslint-config-airbnb-base` till version 15.
|
|
72
53
|
- Ändra importer till Sitevisions API:er till `@sitevision/api/(server|common|client)/NamnPåAPI`.
|
|
73
54
|
|
|
74
|
-
|
|
55
|
+
### VErsion 1.x.x > 2.x.x
|
|
75
56
|
|
|
76
57
|
- Uppgradera `eslint` till version 7.
|
|
77
58
|
- Installera alla dependencies enligt installationssteget.
|
|
@@ -79,82 +60,35 @@ Om Vue används i projektet:
|
|
|
79
60
|
|
|
80
61
|
## Config
|
|
81
62
|
|
|
82
|
-
ESLint läster främst från `.eslintrc.js` filer i projektet.
|
|
63
|
+
ESLint läster främst från `.eslintrc.js` filer i projektet.
|
|
83
64
|
<https://eslint.org/docs/user-guide/configuring#using-configuration-files-1>
|
|
84
65
|
|
|
85
|
-
### Struktur
|
|
86
|
-
|
|
87
|
-
[Här finns exempel på struktur](./docs/structure.md).
|
|
88
|
-
|
|
89
66
|
### Importera config
|
|
90
67
|
|
|
91
|
-
### Global
|
|
92
|
-
|
|
93
|
-
Global konfiguration som läses in i rotkatalogen för projektet.
|
|
94
|
-
Kan användas om projektet följer standardstrukturen.
|
|
95
|
-
|
|
96
|
-
```js
|
|
97
|
-
module.exports = {
|
|
98
|
-
extends: '@soleil-se/eslint-config-sitevision/global'
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### WebApp
|
|
103
|
-
|
|
104
|
-
Konfiguration om man har en självstående WebApp.
|
|
105
|
-
Läses in i rotkatalogen för appen.
|
|
106
|
-
|
|
107
68
|
```js
|
|
108
69
|
module.exports = {
|
|
109
|
-
extends: '@soleil-se/eslint-config-sitevision
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Client
|
|
115
|
-
|
|
116
|
-
Konfiguration för kod som ska köras på klientsidan (browsern).
|
|
117
|
-
|
|
118
|
-
```js
|
|
119
|
-
module.exports = {
|
|
120
|
-
extends: '@soleil-se/eslint-config-sitevision/client',
|
|
121
|
-
root: true,
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Server
|
|
126
|
-
|
|
127
|
-
Konfiguration för kod som ska köras på serversidan (Sitevision).
|
|
128
|
-
|
|
129
|
-
I kontext med stöd för ES6+.
|
|
130
|
-
Till exempel serverkod som byggs ihop.
|
|
131
|
-
|
|
132
|
-
```js
|
|
133
|
-
module.exports = {
|
|
134
|
-
extends: '@soleil-se/eslint-config-sitevision/server-es6',
|
|
135
|
-
root: true,
|
|
136
|
-
}
|
|
70
|
+
extends: '@soleil-se/eslint-config-sitevision',
|
|
71
|
+
};
|
|
137
72
|
```
|
|
138
73
|
|
|
139
|
-
|
|
140
|
-
Till exempel serverkod som ska laddas upp som den är till Sitevision utan
|
|
74
|
+
Legacy config som används i en kontext med stöd för ES5 och delvis ES2015+.
|
|
75
|
+
Till exempel serverkod som ska laddas upp som den är till Sitevision utan kompilering.
|
|
141
76
|
|
|
142
77
|
```js
|
|
143
78
|
module.exports = {
|
|
144
|
-
extends: '@soleil-se/eslint-config-sitevision/
|
|
79
|
+
extends: '@soleil-se/eslint-config-sitevision/legacy',
|
|
145
80
|
root: true,
|
|
146
|
-
}
|
|
81
|
+
};
|
|
147
82
|
```
|
|
148
83
|
|
|
149
84
|
### ESLint ignore
|
|
150
85
|
|
|
151
|
-
Lägg med en `.eslintignore` fil i roten av projektet för att slå av linting av filer i `node_modules
|
|
86
|
+
Lägg med en `.eslintignore` fil i roten av projektet för att slå av linting av filer i bland annat `node_modules` och `dist`.
|
|
152
87
|
|
|
153
88
|
```
|
|
154
89
|
dist
|
|
155
90
|
node_nodules
|
|
156
91
|
**/node_nodules
|
|
157
|
-
**/*.vm
|
|
158
92
|
svelte.config
|
|
159
93
|
```
|
|
160
94
|
|
|
@@ -162,22 +96,15 @@ svelte.config
|
|
|
162
96
|
|
|
163
97
|
Enklaste sättet att komma igång med ESLint är att installera det som extension i din editor.
|
|
164
98
|
|
|
165
|
-
###
|
|
166
|
-
|
|
167
|
-
Installera [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) till VS Code.
|
|
168
|
-
Byt package manager till `yarn` i settings för eslint.
|
|
99
|
+
### Visual Studio Code
|
|
169
100
|
|
|
170
|
-
|
|
171
|
-
{
|
|
172
|
-
"eslint.packageManager": "yarn"
|
|
173
|
-
}
|
|
174
|
-
```
|
|
101
|
+
Installera [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) till Visual Studio Code.
|
|
175
102
|
|
|
176
103
|
#### End of line
|
|
177
104
|
|
|
178
|
-
Airbnb använder sig av LF för EOL. Ställs in under [settings](https://code.visualstudio.com/docs/getstarted/settings) i
|
|
179
|
-
Ändra `\r\n` till `\n`.
|
|
180
|
-
Sen vill man även ha att en ny rad inkluderas i filerna.
|
|
105
|
+
Airbnb använder sig av LF för EOL. Ställs in under [settings](https://code.visualstudio.com/docs/getstarted/settings) i Visual Studio Code.
|
|
106
|
+
Ändra `\r\n` till `\n`.
|
|
107
|
+
Sen vill man även ha att en ny rad inkluderas i filerna.
|
|
181
108
|
|
|
182
109
|
```json
|
|
183
110
|
{
|
|
@@ -199,7 +126,7 @@ Airbnb indenterar med två spaces.
|
|
|
199
126
|
|
|
200
127
|
#### Autofix
|
|
201
128
|
|
|
202
|
-
Man kan ställa in så enklare fel åtgärdas automatiskt under [settings](https://code.visualstudio.com/docs/getstarted/settings) i
|
|
129
|
+
Man kan ställa in så enklare fel åtgärdas automatiskt under [settings](https://code.visualstudio.com/docs/getstarted/settings) i Visual Studio Code.
|
|
203
130
|
|
|
204
131
|
```json
|
|
205
132
|
{
|
|
@@ -211,8 +138,8 @@ Man kan ställa in så enklare fel åtgärdas automatiskt under [settings](https
|
|
|
211
138
|
|
|
212
139
|
#### Max length
|
|
213
140
|
|
|
214
|
-
Airbnb föresrpåkar en maxlängd på 100 tecken på en rad.
|
|
215
|
-
Man kan ställa så man visar en linje i
|
|
141
|
+
Airbnb föresrpåkar en maxlängd på 100 tecken på en rad.
|
|
142
|
+
Man kan ställa så man visar en linje i Visual Studio Code för att visualisera detta. Görs i [settings](https://code.visualstudio.com/docs/getstarted/settings).
|
|
216
143
|
|
|
217
144
|
```json
|
|
218
145
|
{
|
|
@@ -222,68 +149,29 @@ Man kan ställa så man visar en linje i VS Code för att visualisera detta. Gö
|
|
|
222
149
|
}
|
|
223
150
|
```
|
|
224
151
|
|
|
225
|
-
Eller om man bara vill visa för JavaScript och Vue:
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"[javascript]": {
|
|
230
|
-
"editor.rulers": [
|
|
231
|
-
100
|
|
232
|
-
]
|
|
233
|
-
},
|
|
234
|
-
"[vue]": {
|
|
235
|
-
"editor.rulers": [
|
|
236
|
-
100
|
|
237
|
-
]
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
#### Velocity
|
|
243
|
-
|
|
244
|
-
För att få stöd för skripttaggar i Velocity behöver man lägga in följande i [settings](https://code.visualstudio.com/docs/getstarted/settings).
|
|
245
|
-
|
|
246
|
-
```json
|
|
247
|
-
"eslint.validate": [
|
|
248
|
-
"javascript",
|
|
249
|
-
"javascriptreact",
|
|
250
|
-
"velocity"
|
|
251
|
-
]
|
|
252
|
-
```
|
|
253
|
-
|
|
254
152
|
#### Svelte
|
|
255
153
|
|
|
256
154
|
För att få stöd för Svelte behöver man lägga in följande i [settings](https://code.visualstudio.com/docs/getstarted/settings).
|
|
257
155
|
|
|
258
156
|
```json
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
#### Vue
|
|
267
|
-
|
|
268
|
-
För att få stöd för Vue behöver man lägga in följande i [settings](https://code.visualstudio.com/docs/getstarted/settings).
|
|
269
|
-
|
|
270
|
-
```json
|
|
271
|
-
"eslint.validate": [
|
|
272
|
-
"javascript",
|
|
273
|
-
"javascriptreact",
|
|
274
|
-
"vue"
|
|
275
|
-
]
|
|
157
|
+
{
|
|
158
|
+
"eslint.validate": [
|
|
159
|
+
"javascript",
|
|
160
|
+
"javascriptreact",
|
|
161
|
+
"svelte"
|
|
162
|
+
]
|
|
163
|
+
}
|
|
276
164
|
```
|
|
277
165
|
|
|
278
|
-
####
|
|
166
|
+
#### Konfig i underkatalog
|
|
279
167
|
|
|
280
|
-
Om man vill köra ESLint i en underkatalog som kör `@soleil-se/sv-gulp-build^
|
|
168
|
+
Om man vill köra ESLint i en underkatalog som kör `@soleil-se/sv-gulp-build^4.0.0` behöver man lägga till denna som `workingDirectory` i ESLint tilläggets inställningar.
|
|
281
169
|
Läs mer här: <https://github.com/microsoft/vscode-eslint#settings-options>
|
|
282
170
|
|
|
283
|
-
Exempelvis om det ligger i mappen
|
|
171
|
+
Exempelvis om det ligger i mappen `next`:
|
|
284
172
|
|
|
285
173
|
```json
|
|
286
|
-
"eslint.workingDirectories": [".", { "directory": "
|
|
174
|
+
"eslint.workingDirectories": [".", { "directory": "./next", "changeProcessCWD": true }],
|
|
287
175
|
```
|
|
288
176
|
|
|
289
177
|
#### Komplett config
|
|
@@ -306,10 +194,7 @@ Exempelvis om det ligger i mappen `@next`:
|
|
|
306
194
|
"eslint.packageManager": "yarn",
|
|
307
195
|
"eslint.validate": [
|
|
308
196
|
"javascript",
|
|
309
|
-
"javascriptreact",
|
|
310
|
-
"vue",
|
|
311
|
-
"html",
|
|
312
|
-
"velocity",
|
|
197
|
+
"javascriptreact",
|
|
313
198
|
"svelte",
|
|
314
199
|
],
|
|
315
200
|
"[svelte]": {
|
|
@@ -320,12 +205,12 @@ Exempelvis om det ligger i mappen `@next`:
|
|
|
320
205
|
|
|
321
206
|
## CLI
|
|
322
207
|
|
|
323
|
-
Om man vill köra ESLint i sin
|
|
208
|
+
Om man vill köra ESLint i sin terminal.
|
|
324
209
|
<https://eslint.org/docs/user-guide/command-line-interface>
|
|
325
210
|
|
|
326
211
|
## Svelte
|
|
327
212
|
|
|
328
|
-
Installera [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) tillägget till
|
|
213
|
+
Installera [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) tillägget till Visual Studio Code.
|
|
329
214
|
|
|
330
215
|
### Kodformatering
|
|
331
216
|
|
|
@@ -338,7 +223,7 @@ Skapa en fil som heter `.prettierrc.js` i roten av projektet.
|
|
|
338
223
|
module.exports = require('@soleil-se/eslint-config-sitevision/svelte.prettier');
|
|
339
224
|
```
|
|
340
225
|
|
|
341
|
-
För att formatera automatiskt behöver man lägga till följande i `settings.json` i
|
|
226
|
+
För att formatera automatiskt behöver man lägga till följande i `settings.json` i Visual Studio Code.
|
|
342
227
|
|
|
343
228
|
```json
|
|
344
229
|
{
|
|
@@ -360,44 +245,6 @@ Man kan även stänga av formateringen av skript genom att lägga till kommentar
|
|
|
360
245
|
<p>{foo}</p>
|
|
361
246
|
```
|
|
362
247
|
|
|
363
|
-
### Preprocessing
|
|
364
|
-
|
|
365
|
-
För att få korrekta felmeddelanden i SCSS och Less behöver man berätta för Svelte att man använder en preprocessor.
|
|
366
|
-
Skapa en fil som heter `svelte.config.js` i roten av projektet.
|
|
367
|
-
|
|
368
|
-
Om du använder SCSS i projektet:
|
|
369
|
-
|
|
370
|
-
```js
|
|
371
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
372
|
-
const preprocess = require('svelte-preprocess');
|
|
373
|
-
|
|
374
|
-
module.exports = {
|
|
375
|
-
preprocess: preprocess({
|
|
376
|
-
scss: {
|
|
377
|
-
includePaths: [`${process.cwd()}/client_src/sass`],
|
|
378
|
-
},
|
|
379
|
-
postcss: false,
|
|
380
|
-
}),
|
|
381
|
-
};
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
Om du använder Less i projektet:
|
|
385
|
-
|
|
386
|
-
```js
|
|
387
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
388
|
-
const preprocess = require('svelte-preprocess');
|
|
389
|
-
|
|
390
|
-
module.exports = {
|
|
391
|
-
preprocess: preprocess({
|
|
392
|
-
less: {
|
|
393
|
-
paths: ['./client_src/less'],
|
|
394
|
-
},
|
|
395
|
-
postcss: false,
|
|
396
|
-
}),
|
|
397
|
-
};
|
|
398
|
-
|
|
399
|
-
```
|
|
400
|
-
|
|
401
248
|
## Git
|
|
402
249
|
|
|
403
250
|
Om man har problem med linebreaks i git kan man behöva göra följande:
|
|
@@ -409,5 +256,4 @@ Om man har problem med linebreaks i git kan man behöva göra följande:
|
|
|
409
256
|
5. Kör: `git reset --hard`.
|
|
410
257
|
6. Pusha upp filen.
|
|
411
258
|
|
|
412
|
-
Mer info:
|
|
413
259
|
<https://stackoverflow.com/questions/9976986/force-lf-eol-in-git-repo-and-working-copy/34810209#34810209>
|
package/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const { hasSvelte, hasPrettier } = require('./utils/hasDependency');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
extends: ['airbnb-base'],
|
|
5
|
+
plugins: hasSvelte ? ['svelte3'] : [],
|
|
6
|
+
parserOptions: {
|
|
7
|
+
ecmaVersion: 'latest',
|
|
8
|
+
sourceType: 'module',
|
|
9
|
+
},
|
|
10
|
+
env: {
|
|
11
|
+
browser: true,
|
|
12
|
+
jquery: true,
|
|
13
|
+
},
|
|
14
|
+
globals: {
|
|
15
|
+
process: 'readonly',
|
|
16
|
+
Packages: 'readonly',
|
|
17
|
+
},
|
|
18
|
+
rules: {
|
|
19
|
+
'import/extensions': ['error', 'never', {
|
|
20
|
+
ignorePackages: true,
|
|
21
|
+
pattern: {
|
|
22
|
+
svelte: 'always',
|
|
23
|
+
json: 'always',
|
|
24
|
+
},
|
|
25
|
+
}],
|
|
26
|
+
'import/no-unresolved': [2, { ignore: ['#', '@sitevision/api/server', '@sitevision/api/common', '@sitevision/api/client'] }],
|
|
27
|
+
'import/prefer-default-export': 0,
|
|
28
|
+
'object-curly-newline': ['error', {
|
|
29
|
+
ObjectExpression: { minProperties: 8, multiline: true, consistent: true },
|
|
30
|
+
ObjectPattern: { minProperties: 8, multiline: true, consistent: true },
|
|
31
|
+
ImportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
32
|
+
ExportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
33
|
+
}],
|
|
34
|
+
'no-console': [1, { allow: ['error'] }],
|
|
35
|
+
},
|
|
36
|
+
overrides: [{
|
|
37
|
+
files: ['*.svelte'],
|
|
38
|
+
extends: hasPrettier ? ['prettier'] : [],
|
|
39
|
+
processor: 'svelte3/svelte3',
|
|
40
|
+
rules: {
|
|
41
|
+
'import/first': 0,
|
|
42
|
+
'import/no-mutable-exports': 0,
|
|
43
|
+
'import/prefer-default-export': 0,
|
|
44
|
+
'no-multiple-empty-lines': 0,
|
|
45
|
+
'no-label-var': 0,
|
|
46
|
+
'no-undef-init': 0,
|
|
47
|
+
'no-return-assign': 0,
|
|
48
|
+
'operator-linebreak': 'off',
|
|
49
|
+
'object-curly-newline': 'off',
|
|
50
|
+
},
|
|
51
|
+
settings: {
|
|
52
|
+
'svelte3/ignore-styles': () => true,
|
|
53
|
+
},
|
|
54
|
+
}],
|
|
55
|
+
};
|
package/legacy.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
extends: 'airbnb-base/legacy',
|
|
3
|
+
env: {
|
|
4
|
+
es6: true,
|
|
5
|
+
amd: true,
|
|
6
|
+
node: false,
|
|
7
|
+
commonjs: false,
|
|
8
|
+
},
|
|
9
|
+
parserOptions: {
|
|
10
|
+
ecmaVersion: 'latest',
|
|
11
|
+
},
|
|
12
|
+
globals: {
|
|
13
|
+
scriptVariables: 'readonly',
|
|
14
|
+
Packages: 'readonly',
|
|
15
|
+
request: 'readonly',
|
|
16
|
+
print: 'readonly',
|
|
17
|
+
out: 'readonly',
|
|
18
|
+
},
|
|
19
|
+
rules: {
|
|
20
|
+
'vars-on-top': 0,
|
|
21
|
+
'no-param-reassign': ['error', {
|
|
22
|
+
props: true,
|
|
23
|
+
ignorePropertyModificationsFor: ['data'],
|
|
24
|
+
}],
|
|
25
|
+
'func-names': 0,
|
|
26
|
+
'global-require': 0,
|
|
27
|
+
strict: 0,
|
|
28
|
+
'no-redeclare': ['error', { builtinGlobals: false }],
|
|
29
|
+
'comma-dangle': ['error', 'always-multiline'],
|
|
30
|
+
},
|
|
31
|
+
overrides: [{
|
|
32
|
+
files: ['.eslintrc.js'],
|
|
33
|
+
env: {
|
|
34
|
+
node: true,
|
|
35
|
+
commonjs: true,
|
|
36
|
+
},
|
|
37
|
+
}],
|
|
38
|
+
};
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soleil-se/eslint-config",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "ESLint konfiguration för Sitevision utveckling",
|
|
5
5
|
"author": "Soleil AB",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"private": false,
|
|
8
8
|
"homepage": "https://docs.soleilit.se/03.packages/@soleil&@soleil-se/eslint-config",
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"eslint": "^8.
|
|
10
|
+
"eslint": "^8.13.0",
|
|
11
11
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
12
|
-
"eslint-
|
|
13
|
-
"eslint-plugin-
|
|
14
|
-
"eslint-plugin-
|
|
15
|
-
"svelte": "^3.
|
|
12
|
+
"eslint-config-prettier": "^8.5.0",
|
|
13
|
+
"eslint-plugin-import": "^2.26.0",
|
|
14
|
+
"eslint-plugin-svelte3": "^3.4.1",
|
|
15
|
+
"svelte": "^3.47.0"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"eslint": "^8.0.0",
|
package/svelte.prettier.js
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const isRequireable = (id) => {
|
|
2
|
+
try {
|
|
3
|
+
require.resolve(id, {
|
|
4
|
+
paths: [process.cwd()],
|
|
5
|
+
});
|
|
6
|
+
return true;
|
|
7
|
+
} catch (e) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
module.exports = {
|
|
13
|
+
hasSvelte: isRequireable('eslint-plugin-svelte3'),
|
|
14
|
+
hasPrettier: isRequireable('eslint-config-prettier'),
|
|
15
|
+
};
|
package/FAQ.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# FAQ
|
|
2
|
-
<!-- TOC depthTo:2 -->
|
|
3
|
-
|
|
4
|
-
- [Parsing error: Unexpected token](#Parsing-error:-Unexpected-token)
|
|
5
|
-
|
|
6
|
-
<!-- /TOC -->
|
|
7
|
-
|
|
8
|
-
## Parsing error: Unexpected token
|
|
9
|
-
|
|
10
|
-
### Felmeddelandet
|
|
11
|
-
```sh
|
|
12
|
-
1:1 Parsing error: Unexpected token <
|
|
13
|
-
```
|
|
14
|
-
### Inträffar
|
|
15
|
-
När man kör `yarn gulp` och försöker bygga en webbapp med Vue.
|
|
16
|
-
|
|
17
|
-
### Vad det betyder
|
|
18
|
-
Eslint tasken klagar, förmodligen är den utdaterad och behöver uppdateras.
|
|
19
|
-
|
|
20
|
-
### Hur man kan lösa det
|
|
21
|
-
Följ stegen för Vue här: https://github.com/soleilit/eslint-config-sitevision#2-installera
|
package/client.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const {
|
|
2
|
-
getExtends, getPlugins, getOverrides, hasVue,
|
|
3
|
-
} = require('./utils');
|
|
4
|
-
const client = require('./shared/client');
|
|
5
|
-
|
|
6
|
-
module.exports = {
|
|
7
|
-
extends: getExtends(),
|
|
8
|
-
plugins: getPlugins(),
|
|
9
|
-
parserOptions: {
|
|
10
|
-
// Vue plugin uses Espree for ECMA versions, 'latest' does not work.
|
|
11
|
-
ecmaVersion: hasVue ? 2021 : 'latest',
|
|
12
|
-
sourceType: 'module',
|
|
13
|
-
},
|
|
14
|
-
overrides: getOverrides(),
|
|
15
|
-
...client,
|
|
16
|
-
};
|
package/docs/structure.md
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Projectstruktur
|
|
2
|
-
|
|
3
|
-
Här finns exempel var konfigurationsfilerna bör ligga.
|
|
4
|
-
|
|
5
|
-
<!-- TOC -->
|
|
6
|
-
|
|
7
|
-
- [Global](#global)
|
|
8
|
-
- [WebApp](#webapp)
|
|
9
|
-
- [Enskilda filer](#enskilda-filer)
|
|
10
|
-
|
|
11
|
-
<!-- /TOC -->
|
|
12
|
-
|
|
13
|
-
## Global
|
|
14
|
-
|
|
15
|
-
Ett projekt som kör `@soleil/sv-gulp-build@^3.0.0` eller `@soleil/sv-project-build` och inläsning global config.
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
<sitevision_projekt>
|
|
19
|
-
|
|
|
20
|
-
+---- server_src
|
|
21
|
-
| |
|
|
22
|
-
| +---- snippets
|
|
23
|
-
| |
|
|
24
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-legacy)
|
|
25
|
-
|
|
|
26
|
-
+---- .eslintrc.js (@soleil/eslint-config-sitevision/global)
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## WebApp
|
|
31
|
-
|
|
32
|
-
I en fristående WebApp.
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
MyWebApp
|
|
36
|
-
|
|
|
37
|
-
+---- src
|
|
38
|
-
|
|
|
39
|
-
+---- .eslintrc.js (@soleil/eslint-config-sitevision/webapp)
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Enskilda filer
|
|
44
|
-
|
|
45
|
-
Ett projekt som kör `@soleil/sv-gulp-build@^3.0.0` eller `@soleil/sv-project-build` och inläsning av enskilda config-filer.
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
<sitevision_projekt>
|
|
49
|
-
|
|
|
50
|
-
+---- client_src
|
|
51
|
-
| |
|
|
52
|
-
| +---- js
|
|
53
|
-
| |
|
|
54
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/client)
|
|
55
|
-
|
|
|
56
|
-
+---- server_src
|
|
57
|
-
|
|
|
58
|
-
+---- api
|
|
59
|
-
| |
|
|
60
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-es6)
|
|
61
|
-
|
|
|
62
|
-
+---- restapps
|
|
63
|
-
| |
|
|
64
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-es6)
|
|
65
|
-
|
|
|
66
|
-
+---- scripts
|
|
67
|
-
| |
|
|
68
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-es6)
|
|
69
|
-
|
|
|
70
|
-
+---- snippets
|
|
71
|
-
| |
|
|
72
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-legacy)
|
|
73
|
-
|
|
|
74
|
-
+---- webapps
|
|
75
|
-
|
|
|
76
|
-
+---- api
|
|
77
|
-
| |
|
|
78
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-es6)
|
|
79
|
-
|
|
|
80
|
-
+---- apps
|
|
81
|
-
|
|
|
82
|
-
+---- App
|
|
83
|
-
|
|
|
84
|
-
+---- .eslintrc.js (@soleil/eslint-config-sitevision/webapp)
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Ett projekt som kör `@soleil/sv-gulp-build@^2.0.0`
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
<sitevision_projekt>
|
|
91
|
-
|
|
|
92
|
-
+---- client_src
|
|
93
|
-
| |
|
|
94
|
-
| +---- js
|
|
95
|
-
| |
|
|
96
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/client)
|
|
97
|
-
|
|
|
98
|
-
+---- server_src
|
|
99
|
-
| |
|
|
100
|
-
| +---- .eslintrc.js
|
|
101
|
-
|
|
|
102
|
-
+---- webapps_src
|
|
103
|
-
|
|
|
104
|
-
+---- apps
|
|
105
|
-
|
|
|
106
|
-
+---- App
|
|
107
|
-
|
|
|
108
|
-
+---- src
|
|
109
|
-
| |
|
|
110
|
-
| +---- .eslintrc.js (@soleil/eslint-config-sitevision/server-legacy)
|
|
111
|
-
|
|
|
112
|
-
+---- vue
|
|
113
|
-
|
|
|
114
|
-
+---- .eslintrc.js (@soleil/eslint-config-sitevision/client)
|
|
115
|
-
```
|
package/global.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
const {
|
|
2
|
-
getExtends, getPlugins, getOverrides, hasVue,
|
|
3
|
-
} = require('./utils');
|
|
4
|
-
|
|
5
|
-
const server = require('./shared/server');
|
|
6
|
-
const client = require('./shared/client');
|
|
7
|
-
const universal = require('./shared/universal');
|
|
8
|
-
|
|
9
|
-
module.exports = {
|
|
10
|
-
extends: getExtends(),
|
|
11
|
-
plugins: getPlugins(),
|
|
12
|
-
parserOptions: {
|
|
13
|
-
// Vue plugin uses Espree for ECMA versions, 'latest' does not work.
|
|
14
|
-
ecmaVersion: hasVue ? 2021 : 'latest',
|
|
15
|
-
sourceType: 'module',
|
|
16
|
-
},
|
|
17
|
-
overrides: [
|
|
18
|
-
{
|
|
19
|
-
files: [
|
|
20
|
-
'*.vue',
|
|
21
|
-
'client_src/js/**/*.js',
|
|
22
|
-
],
|
|
23
|
-
...client,
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
files: [
|
|
27
|
-
'server_src/api/**/*.js',
|
|
28
|
-
'server_src/scripts/**/*.js',
|
|
29
|
-
'server_src/restapps/**/*.js',
|
|
30
|
-
],
|
|
31
|
-
...server,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
files: [
|
|
35
|
-
'*.svelte',
|
|
36
|
-
'server_src/webapps/**/*.js',
|
|
37
|
-
],
|
|
38
|
-
...universal,
|
|
39
|
-
},
|
|
40
|
-
].concat(getOverrides()),
|
|
41
|
-
};
|
package/overrides/svelte.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
files: ['*.svelte'],
|
|
3
|
-
processor: 'svelte3/svelte3',
|
|
4
|
-
rules: {
|
|
5
|
-
'import/first': 0,
|
|
6
|
-
'import/no-mutable-exports': 0,
|
|
7
|
-
'import/prefer-default-export': 0,
|
|
8
|
-
'no-multiple-empty-lines': 0,
|
|
9
|
-
'no-label-var': 0,
|
|
10
|
-
'no-undef-init': 0,
|
|
11
|
-
'no-return-assign': 0,
|
|
12
|
-
'operator-linebreak': 'off',
|
|
13
|
-
'object-curly-newline': 'off',
|
|
14
|
-
},
|
|
15
|
-
settings: {
|
|
16
|
-
'svelte3/ignore-styles': () => true,
|
|
17
|
-
'svelte3/ignore-warnings': ({ code }) => {
|
|
18
|
-
if (code === 'a11y-no-onchange') return true;
|
|
19
|
-
return false;
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
package/overrides/vue.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
files: ['*.vue'],
|
|
3
|
-
rules: {
|
|
4
|
-
'no-param-reassign': ['error', {
|
|
5
|
-
props: true,
|
|
6
|
-
ignorePropertyModificationsFor: ['state'],
|
|
7
|
-
}],
|
|
8
|
-
'vue/max-attributes-per-line': ['error', {
|
|
9
|
-
singleline: 3,
|
|
10
|
-
multiline: {
|
|
11
|
-
max: 1,
|
|
12
|
-
allowFirstLine: true,
|
|
13
|
-
},
|
|
14
|
-
}],
|
|
15
|
-
'vue/component-name-in-template-casing': ['error', 'PascalCase', {
|
|
16
|
-
registeredComponentsOnly: true,
|
|
17
|
-
ignores: [],
|
|
18
|
-
}],
|
|
19
|
-
},
|
|
20
|
-
};
|
package/server-es6.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const {
|
|
2
|
-
getExtends, getPlugins, getOverrides, hasVue,
|
|
3
|
-
} = require('./utils');
|
|
4
|
-
const server = require('./shared/server');
|
|
5
|
-
|
|
6
|
-
module.exports = {
|
|
7
|
-
extends: getExtends(),
|
|
8
|
-
parserOptions: {
|
|
9
|
-
// Vue plugin uses Espree for ECMA versions, 'latest' does not work.
|
|
10
|
-
ecmaVersion: hasVue ? 2021 : 'latest',
|
|
11
|
-
sourceType: 'module',
|
|
12
|
-
},
|
|
13
|
-
plugins: getPlugins(),
|
|
14
|
-
overrides: getOverrides(),
|
|
15
|
-
...server,
|
|
16
|
-
};
|
package/server-legacy.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
extends: 'airbnb-base/legacy',
|
|
3
|
-
env: {
|
|
4
|
-
amd: true,
|
|
5
|
-
nashorn: true,
|
|
6
|
-
node: false,
|
|
7
|
-
commonjs: false,
|
|
8
|
-
},
|
|
9
|
-
globals: {
|
|
10
|
-
scriptVariables: false,
|
|
11
|
-
Packages: false,
|
|
12
|
-
request: false,
|
|
13
|
-
svimport: false,
|
|
14
|
-
print: false,
|
|
15
|
-
out: false,
|
|
16
|
-
Api: true,
|
|
17
|
-
solimport: true,
|
|
18
|
-
},
|
|
19
|
-
rules: {
|
|
20
|
-
'vars-on-top': 0,
|
|
21
|
-
'no-param-reassign': ['error', {
|
|
22
|
-
props: true,
|
|
23
|
-
ignorePropertyModificationsFor: ['data'],
|
|
24
|
-
}],
|
|
25
|
-
'func-names': 0,
|
|
26
|
-
'global-require': 0,
|
|
27
|
-
strict: 0,
|
|
28
|
-
},
|
|
29
|
-
};
|
package/server.js
DELETED
package/shared/client.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
env: {
|
|
3
|
-
browser: true,
|
|
4
|
-
jquery: true,
|
|
5
|
-
},
|
|
6
|
-
globals: {
|
|
7
|
-
process: true,
|
|
8
|
-
},
|
|
9
|
-
rules: {
|
|
10
|
-
'import/extensions': ['error', 'never', {
|
|
11
|
-
ignorePackages: true,
|
|
12
|
-
pattern: {
|
|
13
|
-
vue: 'always',
|
|
14
|
-
svelte: 'always',
|
|
15
|
-
json: 'always',
|
|
16
|
-
},
|
|
17
|
-
}],
|
|
18
|
-
'no-param-reassign': ['error', {
|
|
19
|
-
props: true,
|
|
20
|
-
ignorePropertyModificationsFor: ['state'],
|
|
21
|
-
}],
|
|
22
|
-
'import/no-unresolved': [2, { ignore: ['#', '@sitevision/api/common', '@sitevision/api/client'] }],
|
|
23
|
-
'import/prefer-default-export': 0,
|
|
24
|
-
'object-curly-newline': ['error', {
|
|
25
|
-
ObjectExpression: { minProperties: 8, multiline: true, consistent: true },
|
|
26
|
-
ObjectPattern: { minProperties: 8, multiline: true, consistent: true },
|
|
27
|
-
ImportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
28
|
-
ExportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
29
|
-
}],
|
|
30
|
-
},
|
|
31
|
-
};
|
package/shared/server.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
env: {
|
|
3
|
-
amd: true,
|
|
4
|
-
nashorn: true,
|
|
5
|
-
node: false,
|
|
6
|
-
commonjs: false,
|
|
7
|
-
},
|
|
8
|
-
globals: {
|
|
9
|
-
scriptVariables: false,
|
|
10
|
-
Packages: false,
|
|
11
|
-
request: false,
|
|
12
|
-
print: false,
|
|
13
|
-
out: false,
|
|
14
|
-
process: true,
|
|
15
|
-
},
|
|
16
|
-
rules: {
|
|
17
|
-
'func-names': 0,
|
|
18
|
-
'import/extensions': ['error', 'never', {
|
|
19
|
-
ignorePackages: true,
|
|
20
|
-
pattern: {
|
|
21
|
-
json: 'always',
|
|
22
|
-
},
|
|
23
|
-
}],
|
|
24
|
-
'import/no-unresolved': [2, { ignore: ['#', '@sitevision/api/server', '@sitevision/api/common'] }],
|
|
25
|
-
'import/prefer-default-export': 0,
|
|
26
|
-
'object-curly-newline': ['error', {
|
|
27
|
-
ObjectExpression: { minProperties: 8, multiline: true, consistent: true },
|
|
28
|
-
ObjectPattern: { minProperties: 8, multiline: true, consistent: true },
|
|
29
|
-
ImportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
30
|
-
ExportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
31
|
-
}],
|
|
32
|
-
},
|
|
33
|
-
};
|
package/shared/universal.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
env: {
|
|
3
|
-
browser: true,
|
|
4
|
-
jquery: true,
|
|
5
|
-
nashorn: true,
|
|
6
|
-
},
|
|
7
|
-
globals: {
|
|
8
|
-
process: true,
|
|
9
|
-
Packages: false,
|
|
10
|
-
},
|
|
11
|
-
rules: {
|
|
12
|
-
'import/extensions': ['error', 'never', {
|
|
13
|
-
ignorePackages: true,
|
|
14
|
-
pattern: {
|
|
15
|
-
vue: 'always',
|
|
16
|
-
svelte: 'always',
|
|
17
|
-
json: 'always',
|
|
18
|
-
},
|
|
19
|
-
}],
|
|
20
|
-
'no-param-reassign': ['error', {
|
|
21
|
-
props: true,
|
|
22
|
-
ignorePropertyModificationsFor: ['state'],
|
|
23
|
-
}],
|
|
24
|
-
'import/no-unresolved': [2, { ignore: ['#', '@sitevision/api/server', '@sitevision/api/common', '@sitevision/api/client'] }],
|
|
25
|
-
'import/prefer-default-export': 0,
|
|
26
|
-
'object-curly-newline': ['error', {
|
|
27
|
-
ObjectExpression: { minProperties: 8, multiline: true, consistent: true },
|
|
28
|
-
ObjectPattern: { minProperties: 8, multiline: true, consistent: true },
|
|
29
|
-
ImportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
30
|
-
ExportDeclaration: { minProperties: 8, multiline: true, consistent: true },
|
|
31
|
-
}],
|
|
32
|
-
},
|
|
33
|
-
};
|
package/svelte.config.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-unresolved, import/no-extraneous-dependencies */
|
|
2
|
-
const preprocess = require('svelte-preprocess');
|
|
3
|
-
|
|
4
|
-
module.exports = {
|
|
5
|
-
preprocess: preprocess({
|
|
6
|
-
scss: {
|
|
7
|
-
includePaths: [`${process.cwd()}/client_src/sass`],
|
|
8
|
-
},
|
|
9
|
-
less: {
|
|
10
|
-
paths: ['./client_src/less'],
|
|
11
|
-
},
|
|
12
|
-
postcss: false,
|
|
13
|
-
}),
|
|
14
|
-
};
|
package/universal.js
DELETED
package/utils/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
const isRequireable = (id) => {
|
|
2
|
-
try {
|
|
3
|
-
require.resolve(id, {
|
|
4
|
-
paths: [process.cwd()],
|
|
5
|
-
});
|
|
6
|
-
return true;
|
|
7
|
-
} catch (e) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const hasVue = isRequireable('eslint-plugin-vue');
|
|
13
|
-
const hasSvelte = isRequireable('eslint-plugin-svelte3');
|
|
14
|
-
|
|
15
|
-
const getExtends = () => {
|
|
16
|
-
const extend = ['airbnb-base'];
|
|
17
|
-
if (hasVue) extend.push('plugin:vue/recommended');
|
|
18
|
-
return extend;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const getPlugins = () => {
|
|
22
|
-
const plugins = [];
|
|
23
|
-
if (hasVue) plugins.push('vue');
|
|
24
|
-
if (hasSvelte) plugins.push('svelte3');
|
|
25
|
-
return plugins;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const getOverrides = () => {
|
|
29
|
-
const overrides = [];
|
|
30
|
-
if (hasVue) overrides.push(require('../overrides/vue'));
|
|
31
|
-
if (hasSvelte) overrides.push(require('../overrides/svelte'));
|
|
32
|
-
return overrides;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
module.exports = {
|
|
36
|
-
hasVue,
|
|
37
|
-
hasSvelte,
|
|
38
|
-
getExtends,
|
|
39
|
-
getPlugins,
|
|
40
|
-
getOverrides,
|
|
41
|
-
};
|
package/webapp.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
const {
|
|
2
|
-
getExtends, getPlugins, getOverrides, hasVue,
|
|
3
|
-
} = require('./utils');
|
|
4
|
-
|
|
5
|
-
const client = require('./shared/client');
|
|
6
|
-
const universal = require('./shared/universal');
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
extends: getExtends(),
|
|
10
|
-
plugins: getPlugins(),
|
|
11
|
-
parserOptions: {
|
|
12
|
-
// Vue plugin uses Espree for ECMA versions, 'latest' does not work.
|
|
13
|
-
ecmaVersion: hasVue ? 2021 : 'latest',
|
|
14
|
-
sourceType: 'module',
|
|
15
|
-
},
|
|
16
|
-
overrides: [
|
|
17
|
-
{
|
|
18
|
-
files: [
|
|
19
|
-
'*.vue',
|
|
20
|
-
],
|
|
21
|
-
...client,
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
files: [
|
|
25
|
-
'*.svelte',
|
|
26
|
-
'*.js',
|
|
27
|
-
],
|
|
28
|
-
...universal,
|
|
29
|
-
},
|
|
30
|
-
].concat(getOverrides()),
|
|
31
|
-
};
|