@starterlib/eslint-config 0.10.11 → 0.10.13
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/index.mjs +27 -2
- package/package.json +1 -1
package/index.mjs
CHANGED
|
@@ -156,9 +156,17 @@ const FOURNI_PAR_L_HOTE = [
|
|
|
156
156
|
/**
|
|
157
157
|
* La configuration d'une SPA. `prefixe` : celui de ses selecteurs (`ct`, jamais `st`) ; `racine` :
|
|
158
158
|
* `import.meta.dirname` de son `eslint.config.mjs` (le projet TypeScript) ; `role` : `remote` (par
|
|
159
|
-
* defaut) ou `hote` ; `ignores` : des chemins de plus a ne pas lire
|
|
159
|
+
* defaut) ou `hote` ; `ignores` : des chemins de plus a ne pas lire ; `nomDesElements` : le nom
|
|
160
|
+
* ENREGISTRE sous lequel la SPA definit ses custom elements (`<nom>-*`, lot 299, registre des custom
|
|
161
|
+
* elements du socle frontal), absent tant qu'elle n'en definit aucun.
|
|
160
162
|
*/
|
|
161
|
-
export function configurationDuSocle({
|
|
163
|
+
export function configurationDuSocle({
|
|
164
|
+
prefixe,
|
|
165
|
+
racine,
|
|
166
|
+
role = 'remote',
|
|
167
|
+
ignores = [],
|
|
168
|
+
nomDesElements,
|
|
169
|
+
} = {}) {
|
|
162
170
|
if (typeof prefixe !== 'string' || !PREFIXE.test(prefixe) || prefixe === 'st') {
|
|
163
171
|
throw new Error(
|
|
164
172
|
`@starterlib/eslint-config : prefixe "${String(prefixe)}", deux a huit minuscules attendues (jamais st).`,
|
|
@@ -172,6 +180,19 @@ export function configurationDuSocle({ prefixe, racine, role = 'remote', ignores
|
|
|
172
180
|
if (role !== 'remote' && role !== 'hote') {
|
|
173
181
|
throw new Error(`@starterlib/eslint-config : role "${String(role)}", remote ou hote attendu.`);
|
|
174
182
|
}
|
|
183
|
+
// Le nom des custom elements n'est jamais un prefixe de selecteurs (Angular instancierait le composant
|
|
184
|
+
// une seconde fois), ni celui du socle, de la coquille ou du temoin.
|
|
185
|
+
if (
|
|
186
|
+
nomDesElements !== undefined &&
|
|
187
|
+
(typeof nomDesElements !== 'string' ||
|
|
188
|
+
!/^[a-z][a-z0-9-]{1,23}$/.test(nomDesElements) ||
|
|
189
|
+
nomDesElements === prefixe ||
|
|
190
|
+
['st', 'sc', 'tm', 'starter'].includes(nomDesElements))
|
|
191
|
+
) {
|
|
192
|
+
throw new Error(
|
|
193
|
+
`@starterlib/eslint-config : nomDesElements "${String(nomDesElements)}", le nom enregistre de l'application attendu (jamais son prefixe de selecteurs).`,
|
|
194
|
+
);
|
|
195
|
+
}
|
|
175
196
|
|
|
176
197
|
return tseslint.config(
|
|
177
198
|
{
|
|
@@ -237,6 +258,10 @@ export function configurationDuSocle({ prefixe, racine, role = 'remote', ignores
|
|
|
237
258
|
'socle/route-has-title': 'error',
|
|
238
259
|
'socle/no-toast-danger': 'error',
|
|
239
260
|
'socle/no-free-text-query-param': 'error',
|
|
261
|
+
'socle/custom-element-name': [
|
|
262
|
+
'error',
|
|
263
|
+
{ noms: nomDesElements === undefined ? [] : [nomDesElements] },
|
|
264
|
+
],
|
|
240
265
|
},
|
|
241
266
|
},
|
|
242
267
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starterlib/eslint-config",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.13",
|
|
4
4
|
"description": "Configuration ESLint d'une SPA du socle frontal starter, parametree par son prefixe, et configuration stylelint de ses feuilles. Remplace les eslint.config.mjs recopies.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|