eslint-plugin-raflint 1.5.1 → 1.5.2

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.
@@ -1,5 +1,6 @@
1
1
  // Le backslash doit etre echappe en premier, sinon il redouble ceux ajoutes ensuite.
2
2
  const escapeTemplateLiteral = (value) => value.replaceAll('\\', '\\\\').replaceAll('`', '\\`').replaceAll('${', '\\${');
3
+ const MESSAGE = 'Utilisez des template strings au lieu de path.join() pour la concaténation de chemins simples';
3
4
  const rule = {
4
5
  meta: {
5
6
  type: 'suggestion',
@@ -13,7 +14,15 @@ const rule = {
13
14
  create(context) {
14
15
  return {
15
16
  CallExpression(node) {
16
- if (!(node.callee.type === 'MemberExpression' && node.callee.object.name === 'path' && node.callee.property.name === 'join' && node.arguments.length >= 2)) {
17
+ if (!(node.callee.type === 'MemberExpression' &&
18
+ node.callee.object.name === 'path' &&
19
+ node.callee.property.name === 'join' &&
20
+ node.arguments.length >= 2)) {
21
+ return;
22
+ }
23
+ // Un spread ne peut pas être interpolé (`${...parts}` est une erreur de syntaxe) : on signale sans corriger.
24
+ if (node.arguments.some((argument) => argument.type === 'SpreadElement')) {
25
+ context.report({ node, message: MESSAGE });
17
26
  return;
18
27
  }
19
28
  const sourceCode = context.sourceCode ?? context.getSourceCode();
@@ -26,7 +35,7 @@ const rule = {
26
35
  const replacement = `\`${parts.join('/')}\``;
27
36
  context.report({
28
37
  node,
29
- message: 'Utilisez des template strings au lieu de path.join() pour la concaténation de chemins simples',
38
+ message: MESSAGE,
30
39
  fix: (fixer) => fixer.replaceText(node, replacement),
31
40
  });
32
41
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-raflint",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [],
@@ -27,29 +27,29 @@
27
27
  "dependencies": {
28
28
  "@babel/eslint-parser": "^8.0.1",
29
29
  "eslint-plugin-n": "^18.2.2",
30
- "eslint-plugin-sonarjs": "^4.1.0",
31
- "eslint-plugin-unicorn": "^71.1.0"
30
+ "eslint-plugin-sonarjs": "^4.2.0",
31
+ "eslint-plugin-unicorn": "^72.0.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@eslint/js": "^10.0.1",
35
- "@stoplight/spectral-cli": "^6.16.1",
36
- "c8": "^11.0.0",
35
+ "@stoplight/spectral-cli": "^6.16.2",
36
+ "c8": "^12.0.0",
37
37
  "eslint": "^10.5.0",
38
38
  "eslint-import-resolver-typescript": "^4.4.5",
39
39
  "eslint-plugin-import-x": "^4.17.1",
40
40
  "eslint-plugin-promise": "^7.3.0",
41
- "eslint-plugin-raflint": "^1.5.0",
41
+ "eslint-plugin-raflint": "^1.5.1",
42
42
  "eslint-plugin-react-hooks": "^7.1.1",
43
- "globals": "^17.7.0",
43
+ "globals": "^17.8.0",
44
44
  "husky": "^9.1.7",
45
- "lint-staged": "^17.0.8",
46
- "markdownlint": "^0.41.0",
45
+ "lint-staged": "^17.2.0",
46
+ "markdownlint": "^0.41.1",
47
47
  "mocha": "^11.7.6",
48
- "prettier": "^3.9.5",
48
+ "prettier": "^3.9.6",
49
49
  "ts-api-utils": "^2.5.0",
50
50
  "tsx": "^4.23.1",
51
51
  "typescript": "^6.0.3",
52
- "typescript-eslint": "^8.63.0"
52
+ "typescript-eslint": "^8.65.0"
53
53
  },
54
54
  "engines": {
55
55
  "node": ">=21.0.0"