@checkdigit/eslint-plugin 7.12.0-PR.45-1e1c → 7.12.0-PR.45-9cdb
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,11 +1,11 @@
|
|
|
1
1
|
// src/require-assert-message.ts
|
|
2
|
-
import { strict as assert } from "node:assert";
|
|
3
2
|
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
4
3
|
import { TSESTree } from "@typescript-eslint/types";
|
|
5
4
|
import getDocumentationUrl from "./get-documentation-url.mjs";
|
|
6
5
|
var ruleId = "require-assert-message";
|
|
7
6
|
var MISSING_ASSERT_MESSAGE = "MISSING_ASSERT_MESSAGE";
|
|
8
|
-
var
|
|
7
|
+
var messageIndexCache = {};
|
|
8
|
+
var assertAlias = "assert";
|
|
9
9
|
var createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
10
10
|
var rule = createRule({
|
|
11
11
|
name: ruleId,
|
|
@@ -21,10 +21,8 @@ var rule = createRule({
|
|
|
21
21
|
},
|
|
22
22
|
defaultOptions: [],
|
|
23
23
|
create(context) {
|
|
24
|
-
let assertAlias = "assert";
|
|
25
24
|
const parserServices = ESLintUtils.getParserServices(context);
|
|
26
25
|
const checker = parserServices.program.getTypeChecker();
|
|
27
|
-
const messageIndexCache = {};
|
|
28
26
|
return {
|
|
29
27
|
ImportDeclaration(node) {
|
|
30
28
|
if (node.source.value === "node:assert") {
|
|
@@ -41,12 +39,11 @@ var rule = createRule({
|
|
|
41
39
|
if (callee.type === TSESTree.AST_NODE_TYPES.MemberExpression && callee.object.type === TSESTree.AST_NODE_TYPES.Identifier && callee.property.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
42
40
|
const objectName = callee.object.name;
|
|
43
41
|
const methodName = callee.property.name;
|
|
44
|
-
if (objectName === assertAlias
|
|
42
|
+
if (objectName === assertAlias) {
|
|
45
43
|
if (!(methodName in messageIndexCache)) {
|
|
46
44
|
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
47
45
|
const signature = checker.getResolvedSignature(tsNode);
|
|
48
|
-
|
|
49
|
-
messageIndexCache[methodName] = messageParameterIndex ?? 2;
|
|
46
|
+
messageIndexCache[methodName] = signature?.getParameters().findIndex((param) => param.name === "message");
|
|
50
47
|
}
|
|
51
48
|
const messageIndex = messageIndexCache[methodName];
|
|
52
49
|
if (messageIndex !== void 0 && node.arguments.length <= messageIndex) {
|
|
@@ -77,4 +74,4 @@ export {
|
|
|
77
74
|
require_assert_message_default as default,
|
|
78
75
|
ruleId
|
|
79
76
|
};
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JlcXVpcmUtYXNzZXJ0LW1lc3NhZ2UudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsU0FBUyxtQkFBNkI7QUFDdEMsU0FBUyxnQkFBZ0I7QUFDekIsT0FBTyx5QkFBeUI7QUFFekIsSUFBTSxTQUFTO0FBQ3RCLElBQU0seUJBQXlCO0FBRS9CLElBQU0sb0JBQXdELENBQUM7QUFDL0QsSUFBSSxjQUFjO0FBRWxCLElBQU0sYUFBYSxZQUFZLFlBQVksQ0FBQyxTQUFTLG9CQUFvQixJQUFJLENBQUM7QUFDOUUsSUFBTSxPQUErQyxXQUFXO0FBQUEsRUFDOUQsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxzQkFBc0IsR0FBRztBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUFBLEVBQ0EsZ0JBQWdCLENBQUM7QUFBQSxFQUNqQixPQUFPLFNBQVM7QUFDZCxVQUFNLGlCQUFpQixZQUFZLGtCQUFrQixPQUFPO0FBQzVELFVBQU0sVUFBVSxlQUFlLFFBQVEsZUFBZTtBQUV0RCxXQUFPO0FBQUEsTUFDTCxrQkFBa0IsTUFBa0M7QUFDbEQsWUFBSSxLQUFLLE9BQU8sVUFBVSxlQUFlO0FBQ3ZDLGdCQUFNLFlBQVksS0FBSyxXQUFXO0FBQUEsWUFDaEMsQ0FBQyxvQkFDQyxnQkFBZ0IsU0FBUyxTQUFTLGVBQWUsMEJBQ2pELGdCQUFnQixTQUFTLFNBQVMsZUFBZTtBQUFBLFVBQ3JEO0FBQ0EsY0FBSSxXQUFXO0FBQ2IsMEJBQWMsVUFBVSxNQUFNO0FBQUEsVUFDaEM7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLE1BQ0EsZUFBZSxNQUErQjtBQUM1QyxjQUFNLFNBQVMsS0FBSztBQUNwQixZQUNFLE9BQU8sU0FBUyxTQUFTLGVBQWUsb0JBQ3hDLE9BQU8sT0FBTyxTQUFTLFNBQVMsZUFBZSxjQUMvQyxPQUFPLFNBQVMsU0FBUyxTQUFTLGVBQWUsWUFDakQ7QUFDQSxnQkFBTSxhQUFhLE9BQU8sT0FBTztBQUNqQyxnQkFBTSxhQUFhLE9BQU8sU0FBUztBQUVuQyxjQUFJLGVBQWUsYUFBYTtBQUM5QixnQkFBSSxFQUFFLGNBQWMsb0JBQW9CO0FBQ3RDLG9CQUFNLFNBQVMsZUFBZSxzQkFBc0IsSUFBSSxJQUFJO0FBQzVELG9CQUFNLFlBQVksUUFBUSxxQkFBcUIsTUFBTTtBQUNyRCxnQ0FBa0IsVUFBVSxJQUFJLFdBQVcsY0FBYyxFQUFFLFVBQVUsQ0FBQyxVQUFVLE1BQU0sU0FBUyxTQUFTO0FBQUEsWUFDMUc7QUFFQSxrQkFBTSxlQUFlLGtCQUFrQixVQUFVO0FBQ2pELGdCQUFJLGlCQUFpQixVQUFhLEtBQUssVUFBVSxVQUFVLGNBQWM7QUFDdkUsc0JBQVEsT0FBTztBQUFBLGdCQUNiO0FBQUEsZ0JBQ0EsV0FBVztBQUFBLGdCQUNYLE1BQU07QUFBQSxrQkFDSjtBQUFBLGdCQUNGO0FBQUEsY0FDRixDQUFDO0FBQUEsWUFDSDtBQUFBLFVBQ0Y7QUFBQSxRQUNGLFdBQ0UsT0FBTyxTQUFTLFNBQVMsZUFBZSxjQUN4QyxPQUFPLFNBQVMsZUFDaEIsS0FBSyxVQUFVLFNBQVMsR0FDeEI7QUFDQSxrQkFBUSxPQUFPO0FBQUEsWUFDYjtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osWUFBWTtBQUFBLFlBQ2Q7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUVELElBQU8saUNBQVE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"7.12.0-PR.45-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"7.12.0-PR.45-9cdb","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 .","lint:fix":"eslint --max-warnings 0 --fix .","prepare":"","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@typescript-eslint/type-utils":"^8.23.0","@typescript-eslint/utils":"^8.23.0","http-status-codes":"^2.3.0","ts-api-utils":"^2.0.1"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"^9.0.0","@eslint/js":"^9.19.0","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@typescript-eslint/parser":"^8.23.0","@typescript-eslint/rule-tester":"^8.23.0","eslint":"^9.19.0","eslint-config-prettier":"^10.0.1","eslint-import-resolver-typescript":"^3.7.0","eslint-plugin-eslint-plugin":"^6.4.0","eslint-plugin-import":"^2.31.0","eslint-plugin-no-only-tests":"^3.3.0","eslint-plugin-no-secrets":"^2.2.1","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"1.0.4","rimraf":"^6.0.1","typescript-eslint":"^8.23.0"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=22.11"}}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* This code is licensed under the MIT license (see LICENSE.txt for details).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { strict as assert } from 'node:assert';
|
|
10
9
|
import { ESLintUtils, TSESLint } from '@typescript-eslint/utils';
|
|
11
10
|
import { TSESTree } from '@typescript-eslint/types';
|
|
12
11
|
import getDocumentationUrl from './get-documentation-url.ts';
|
|
@@ -14,7 +13,8 @@ import getDocumentationUrl from './get-documentation-url.ts';
|
|
|
14
13
|
export const ruleId = 'require-assert-message';
|
|
15
14
|
const MISSING_ASSERT_MESSAGE = 'MISSING_ASSERT_MESSAGE';
|
|
16
15
|
|
|
17
|
-
const
|
|
16
|
+
const messageIndexCache: Record<string, number | undefined> = {};
|
|
17
|
+
let assertAlias = 'assert';
|
|
18
18
|
|
|
19
19
|
const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
20
20
|
const rule: TSESLint.RuleModule<string, unknown[]> = createRule({
|
|
@@ -31,10 +31,8 @@ const rule: TSESLint.RuleModule<string, unknown[]> = createRule({
|
|
|
31
31
|
},
|
|
32
32
|
defaultOptions: [],
|
|
33
33
|
create(context) {
|
|
34
|
-
let assertAlias = 'assert';
|
|
35
34
|
const parserServices = ESLintUtils.getParserServices(context);
|
|
36
35
|
const checker = parserServices.program.getTypeChecker();
|
|
37
|
-
const messageIndexCache: Record<string, number> = {};
|
|
38
36
|
|
|
39
37
|
return {
|
|
40
38
|
ImportDeclaration(node: TSESTree.ImportDeclaration) {
|
|
@@ -59,12 +57,11 @@ const rule: TSESLint.RuleModule<string, unknown[]> = createRule({
|
|
|
59
57
|
const objectName = callee.object.name;
|
|
60
58
|
const methodName = callee.property.name;
|
|
61
59
|
|
|
62
|
-
if (objectName === assertAlias
|
|
60
|
+
if (objectName === assertAlias) {
|
|
63
61
|
if (!(methodName in messageIndexCache)) {
|
|
64
62
|
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
65
63
|
const signature = checker.getResolvedSignature(tsNode);
|
|
66
|
-
|
|
67
|
-
messageIndexCache[methodName] = messageParameterIndex ?? 2;
|
|
64
|
+
messageIndexCache[methodName] = signature?.getParameters().findIndex((param) => param.name === 'message');
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
const messageIndex = messageIndexCache[methodName];
|