@o3r/eslint-config 13.2.0-prerelease.32 → 13.2.0-prerelease.34
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/package.json +7 -7
- package/schematics/ng-add/eslint/index.d.ts.map +1 -1
- package/schematics/ng-add/eslint/index.js +37 -2
- package/schematics/ng-add/eslint/index.js.map +1 -1
- package/schematics/ng-add/eslint/templates/project/eslint.local.config.__extension__.template +14 -1
- package/schematics/ng-add/schema.json +2 -1
- package/src/rules/typescript.cjs +33 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/eslint-config",
|
|
3
|
-
"version": "13.2.0-prerelease.
|
|
3
|
+
"version": "13.2.0-prerelease.34",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"build:builders": "tsc -b tsconfig.builders.json --pretty && yarn generate-cjs-manifest"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@o3r/schematics": "^13.2.0-prerelease.
|
|
40
|
+
"@o3r/schematics": "^13.2.0-prerelease.34"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"@angular-devkit/core": "^20.0.0",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@angular/compiler": "^20.0.0",
|
|
47
47
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
|
|
48
48
|
"@eslint/js": "^8.57.0 || ^9.22.0",
|
|
49
|
-
"@o3r/eslint-plugin": "^13.2.0-prerelease.
|
|
50
|
-
"@o3r/schematics": "^13.2.0-prerelease.
|
|
49
|
+
"@o3r/eslint-plugin": "^13.2.0-prerelease.34",
|
|
50
|
+
"@o3r/schematics": "^13.2.0-prerelease.34",
|
|
51
51
|
"@schematics/angular": "^20.0.0",
|
|
52
52
|
"@stylistic/eslint-plugin": "~5.3.0",
|
|
53
53
|
"@typescript-eslint/parser": "^8.15.0",
|
|
@@ -81,9 +81,9 @@
|
|
|
81
81
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
|
|
82
82
|
"@eslint/js": "~9.35.0",
|
|
83
83
|
"@nx/eslint-plugin": "~21.5.0",
|
|
84
|
-
"@o3r/build-helpers": "^13.2.0-prerelease.
|
|
85
|
-
"@o3r/eslint-plugin": "^13.2.0-prerelease.
|
|
86
|
-
"@o3r/test-helpers": "^13.2.0-prerelease.
|
|
84
|
+
"@o3r/build-helpers": "^13.2.0-prerelease.34",
|
|
85
|
+
"@o3r/eslint-plugin": "^13.2.0-prerelease.34",
|
|
86
|
+
"@o3r/test-helpers": "^13.2.0-prerelease.34",
|
|
87
87
|
"@schematics/angular": "~20.2.0",
|
|
88
88
|
"@stylistic/eslint-plugin": "~5.3.0",
|
|
89
89
|
"@types/jest": "~29.5.2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/eslint/index.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/eslint/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,IAAI,EAGV,MAAM,4BAA4B,CAAC;AAsEpC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,KAAG,IAgE3E,CAAC"}
|
|
@@ -5,6 +5,11 @@ const path = require("node:path");
|
|
|
5
5
|
const core_1 = require("@angular-devkit/core");
|
|
6
6
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
7
7
|
const schematics_2 = require("@o3r/schematics");
|
|
8
|
+
/**
|
|
9
|
+
* Setup the lint task in the angular.json file
|
|
10
|
+
* @param projectName
|
|
11
|
+
* @param extension
|
|
12
|
+
*/
|
|
8
13
|
const editAngularJson = (projectName, extension) => (tree, context) => {
|
|
9
14
|
let workspace = null;
|
|
10
15
|
try {
|
|
@@ -24,13 +29,36 @@ const editAngularJson = (projectName, extension) => (tree, context) => {
|
|
|
24
29
|
options: {
|
|
25
30
|
eslintConfig: `${workspaceProject.root}/eslint.config.${extension}`,
|
|
26
31
|
lintFilePatterns: [
|
|
27
|
-
`${workspaceProject.
|
|
32
|
+
`${workspaceProject.root}/**/*.{m,c,}{j,t}s`,
|
|
33
|
+
`${workspaceProject.root}/**/*.json`,
|
|
34
|
+
`${workspaceProject.root}/**/*.html`
|
|
28
35
|
]
|
|
29
36
|
}
|
|
30
37
|
};
|
|
31
38
|
workspace.projects[projectName] = workspaceProject;
|
|
32
39
|
tree.overwrite('/angular.json', JSON.stringify(workspace, null, 2));
|
|
33
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Add the lint task in the package.json
|
|
43
|
+
* @param projectPath
|
|
44
|
+
* @param projectName
|
|
45
|
+
*/
|
|
46
|
+
const editPackageJson = (projectPath, projectName) => (tree) => {
|
|
47
|
+
const packageJsonPath = path.posix.join(projectPath, 'package.json');
|
|
48
|
+
const packageJson = tree.readJson(packageJsonPath);
|
|
49
|
+
packageJson.scripts ??= {};
|
|
50
|
+
packageJson.scripts.lint ??= `ng lint ${projectName}`;
|
|
51
|
+
tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
52
|
+
};
|
|
53
|
+
const isInstalled = (packageName) => {
|
|
54
|
+
try {
|
|
55
|
+
require.resolve(packageName);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
};
|
|
34
62
|
/**
|
|
35
63
|
* Update ESLint Config
|
|
36
64
|
* @param rootPath
|
|
@@ -50,6 +78,8 @@ const updateEslintConfig = (rootPath, projectName) => (tree, context) => {
|
|
|
50
78
|
const templateOptions = {
|
|
51
79
|
extension: 'mjs',
|
|
52
80
|
codeBeforeConfig: '',
|
|
81
|
+
playwrightInstalled: isInstalled('playwright'),
|
|
82
|
+
jest: isInstalled('jest'),
|
|
53
83
|
codeAfterConfig: '',
|
|
54
84
|
oldConfig: '',
|
|
55
85
|
relativePathToRoot: path.posix.relative(projectRootPath, '.'),
|
|
@@ -75,7 +105,12 @@ const updateEslintConfig = (rootPath, projectName) => (tree, context) => {
|
|
|
75
105
|
tree.delete(filePath);
|
|
76
106
|
}
|
|
77
107
|
return (0, schematics_1.chain)([
|
|
78
|
-
projectName
|
|
108
|
+
...projectName
|
|
109
|
+
? [
|
|
110
|
+
editAngularJson(projectName, templateOptions.extension),
|
|
111
|
+
editPackageJson(projectRootPath, projectName)
|
|
112
|
+
]
|
|
113
|
+
: [],
|
|
79
114
|
(0, schematics_1.applyToSubtree)(projectRootPath, [
|
|
80
115
|
(0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)((0, schematics_2.getTemplateFolder)(rootPath, __dirname, `./templates/${projectRootPath === '.' ? 'workspace' : 'project'}`)), [
|
|
81
116
|
(0, schematics_1.template)(templateOptions),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/eslint/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,+CAG8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/eslint/index.ts"],"names":[],"mappings":"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"}
|
package/schematics/ng-add/eslint/templates/project/eslint.local.config.__extension__.template
CHANGED
|
@@ -31,5 +31,18 @@ const __dirname = dirname(__filename);
|
|
|
31
31
|
...globals.browser
|
|
32
32
|
}<% } %>
|
|
33
33
|
}
|
|
34
|
-
}
|
|
34
|
+
}<% if (playwrightInstalled) { %>,
|
|
35
|
+
{
|
|
36
|
+
name: '<%= packageName %>/e2e',
|
|
37
|
+
files: [
|
|
38
|
+
'**/e2e-playwright/**/*.{j,t}s'
|
|
39
|
+
],
|
|
40
|
+
languageOptions: {
|
|
41
|
+
globals: {
|
|
42
|
+
...globals.node,
|
|
43
|
+
NodeJS: true
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
<% } %>
|
|
35
48
|
]);
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
},
|
|
19
19
|
"fix": {
|
|
20
20
|
"type": "boolean",
|
|
21
|
-
"description": "Fix known issues with our ESLint config after Otter application or library generation"
|
|
21
|
+
"description": "Fix known issues with our ESLint config after Otter application or library generation",
|
|
22
|
+
"default": true
|
|
22
23
|
},
|
|
23
24
|
"skipLinter": {
|
|
24
25
|
"type": "boolean",
|
package/src/rules/typescript.cjs
CHANGED
|
@@ -24,15 +24,18 @@ const stylisticConfig = require('./typescript/stylistic.cjs');
|
|
|
24
24
|
const unicornConfig = require('./typescript/unicorn.cjs');
|
|
25
25
|
const unusedImportsConfig = require('./typescript/unused-imports.cjs');
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const checkDependency = (packageName) => {
|
|
28
28
|
try {
|
|
29
|
-
require.resolve(
|
|
29
|
+
require.resolve(packageName);
|
|
30
30
|
} catch {
|
|
31
31
|
return false;
|
|
32
32
|
}
|
|
33
33
|
return true;
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
const hasPlaywrightInstalled = checkDependency('@playwright/test');
|
|
37
|
+
|
|
38
|
+
const hasJestDependency = checkDependency('jest');
|
|
36
39
|
|
|
37
40
|
/**
|
|
38
41
|
* @type {import('@typescript-eslint/utils').TSESLint.FlatConfig.ConfigArray}
|
|
@@ -141,7 +144,33 @@ const configArray = [
|
|
|
141
144
|
}
|
|
142
145
|
}
|
|
143
146
|
}
|
|
144
|
-
}
|
|
147
|
+
}, {
|
|
148
|
+
name: '@o3r/eslint-config/node-files',
|
|
149
|
+
files: [
|
|
150
|
+
'**/schematics/**/*.{j,t}s',
|
|
151
|
+
...hasJestDependency ? ['**/jest.config.{c,m,}{j,t}s'] : []
|
|
152
|
+
],
|
|
153
|
+
languageOptions: {
|
|
154
|
+
globals: {
|
|
155
|
+
...globals.node,
|
|
156
|
+
NodeJS: true
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
...hasPlaywrightInstalled
|
|
161
|
+
? [{
|
|
162
|
+
name: '@o3r/eslint-config/e2e-playwright',
|
|
163
|
+
files: [
|
|
164
|
+
'**/e2e-playwright/**/*.{j,t}s'
|
|
165
|
+
],
|
|
166
|
+
languageOptions: {
|
|
167
|
+
globals: {
|
|
168
|
+
...globals.node,
|
|
169
|
+
NodeJS: true
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}]
|
|
173
|
+
: []
|
|
145
174
|
];
|
|
146
175
|
|
|
147
176
|
module.exports = configArray;
|