eslint-plugin-no-implicit-any-function-args 1.4.1 → 1.4.3

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.js CHANGED
@@ -10,19 +10,19 @@ exports.rules = {
10
10
  meta: {
11
11
  type: 'problem',
12
12
  docs: {
13
- description: 'No implicit any for a function argument is allowed.'
13
+ description: 'No implicit any for a function argument is allowed.',
14
14
  },
15
15
  messages: {
16
- noImplicitAnyArg: 'Argument \'{{ name }}\' requires a type'
16
+ noImplicitAnyArg: 'Argument \'{{ name }}\' requires a type',
17
17
  },
18
18
  schema: [{
19
19
  type: 'object',
20
20
  properties: {
21
21
  ignorePattern: {
22
- type: 'string'
23
- }
24
- }
25
- }]
22
+ type: 'string',
23
+ },
24
+ },
25
+ }],
26
26
  },
27
27
  defaultOptions: [{}],
28
28
  create: (context, [options]) => {
@@ -53,8 +53,8 @@ exports.rules = {
53
53
  node: param,
54
54
  messageId: 'noImplicitAnyArg',
55
55
  data: {
56
- name: param.name
57
- }
56
+ name: param.name,
57
+ },
58
58
  });
59
59
  }
60
60
  }
@@ -62,9 +62,9 @@ exports.rules = {
62
62
  return {
63
63
  FunctionDeclaration: functionTest,
64
64
  FunctionExpression: functionTest,
65
- ArrowFunctionExpression: functionTest
65
+ ArrowFunctionExpression: functionTest,
66
66
  };
67
- }
68
- })
67
+ },
68
+ }),
69
69
  };
70
70
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AACvD,2CAAuC;AAEvC,MAAM,UAAU,GAAG,mBAAW,CAAC,WAAW,CACxC,GAAG,EAAE,CAAC,2EAA2E,CAClF,CAAC;AASW,QAAA,KAAK,GAAG;IACnB,+BAA+B,EAAE,UAAU,CAAsB;QAC/D,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,IAAI,EAAE;gBACJ,WAAW,EAAE,qDAAqD;aACnE;YACD,QAAQ,EAAE;gBACR,gBAAgB,EAAE,yCAAyC;aAC5D;YACD,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF,CAAC;SACH;QACD,cAAc,EAAE,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;;YAC7B,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc;gBAClC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO;gBAC1C,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,qBAAqB,EACxD;gBACA,MAAM,IAAI,KAAK,CACb,gLAAgL,CACjL,CAAC;aACH;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1F,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;YAClD,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC;YAEtD,SAAS,YAAY,CAAC,IAAS;;gBAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;wBACzC,MAAM,eAAe,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,cAAc,0CAAE,qBAAqB,0CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC7F,IAAI,CAAC,eAAe;4BAAE,SAAS;wBAE/B,MAAM,IAAI,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBAC7D,IAAI,CAAC,IAAI;4BAAE,SAAS;wBAEpB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,sBAAS,CAAC,GAAG,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACjD,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAE5C,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,kBAAkB;4BAC7B,IAAI,EAAE;gCACJ,IAAI,EAAE,KAAK,CAAC,IAAI;6BACjB;yBACF,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;YAED,OAAO;gBACL,mBAAmB,EAAE,YAAY;gBACjC,kBAAkB,EAAE,YAAY;gBAChC,uBAAuB,EAAE,YAAY;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;CACH,CAAC","sourcesContent":["import { ESLintUtils } from '@typescript-eslint/utils';\nimport { TypeFlags } from 'typescript';\n\nconst createRule = ESLintUtils.RuleCreator(\n () => 'https://github.com/fast-facts/eslint-plugin-no-implicit-any-function-args'\n);\n\nexport type Options = [\n {\n ignorePattern?: string,\n }\n];\nexport type MessageIds = 'noImplicitAnyArg';\n\nexport const rules = {\n 'no-implicit-any-function-args': createRule<Options, MessageIds>({\n name: 'no-implicit-any-function-args',\n meta: {\n type: 'problem',\n docs: {\n description: 'No implicit any for a function argument is allowed.'\n },\n messages: {\n noImplicitAnyArg: 'Argument \\'{{ name }}\\' requires a type'\n },\n schema: [{\n type: 'object',\n properties: {\n ignorePattern: {\n type: 'string'\n }\n }\n }]\n },\n defaultOptions: [{}],\n create: (context, [options]) => {\n if (\n !context.sourceCode.parserServices ||\n !context.sourceCode.parserServices.program ||\n !context.sourceCode.parserServices.esTreeNodeToTSNodeMap\n ) {\n throw new Error(\n 'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the \"parserOptions.project\" property for @typescript-eslint/parser.'\n );\n }\n\n const ignoreRegex = options.ignorePattern ? new RegExp(options.ignorePattern) : undefined;\n\n const service = context.sourceCode.parserServices;\n const typeChecker = service.program?.getTypeChecker();\n\n function functionTest(node: any) {\n for (const param of node.params) {\n if (!param.typeAnnotation && !param.right) {\n const typescriptParam = context.sourceCode.parserServices?.esTreeNodeToTSNodeMap?.get(param);\n if (!typescriptParam) continue;\n\n const type = typeChecker?.getTypeAtLocation(typescriptParam);\n if (!type) continue;\n\n if ((type.flags & TypeFlags.Any) === 0) continue;\n if (ignoreRegex?.test(param.name)) continue;\n\n context.report({\n node: param,\n messageId: 'noImplicitAnyArg',\n data: {\n name: param.name\n }\n });\n }\n }\n }\n\n return {\n FunctionDeclaration: functionTest,\n FunctionExpression: functionTest,\n ArrowFunctionExpression: functionTest\n };\n }\n })\n};"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AACvD,2CAAuC;AAEvC,MAAM,UAAU,GAAG,mBAAW,CAAC,WAAW,CACxC,GAAG,EAAE,CAAC,2EAA2E,CAClF,CAAC;AASW,QAAA,KAAK,GAAG;IACnB,+BAA+B,EAAE,UAAU,CAAsB;QAC/D,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,IAAI,EAAE;gBACJ,WAAW,EAAE,qDAAqD;aACnE;YACD,QAAQ,EAAE;gBACR,gBAAgB,EAAE,yCAAyC;aAC5D;YACD,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF,CAAC;SACH;QACD,cAAc,EAAE,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;;YAC7B,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc;gBAClC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO;gBAC1C,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,qBAAqB,EACxD;gBACA,MAAM,IAAI,KAAK,CACb,gLAAgL,CACjL,CAAC;aACH;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1F,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;YAClD,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC;YAEtD,SAAS,YAAY,CAAC,IAAS;;gBAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;wBACzC,MAAM,eAAe,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,CAAC,cAAc,0CAAE,qBAAqB,0CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC7F,IAAI,CAAC,eAAe;4BAAE,SAAS;wBAE/B,MAAM,IAAI,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBAC7D,IAAI,CAAC,IAAI;4BAAE,SAAS;wBAEpB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,sBAAS,CAAC,GAAG,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACjD,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BAAE,SAAS;wBAE5C,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,kBAAkB;4BAC7B,IAAI,EAAE;gCACJ,IAAI,EAAE,KAAK,CAAC,IAAI;6BACjB;yBACF,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;YAED,OAAO;gBACL,mBAAmB,EAAE,YAAY;gBACjC,kBAAkB,EAAE,YAAY;gBAChC,uBAAuB,EAAE,YAAY;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;CACH,CAAC","sourcesContent":["import { ESLintUtils } from '@typescript-eslint/utils';\nimport { TypeFlags } from 'typescript';\n\nconst createRule = ESLintUtils.RuleCreator(\n () => 'https://github.com/fast-facts/eslint-plugin-no-implicit-any-function-args'\n);\n\nexport type Options = [\n {\n ignorePattern?: string;\n }\n];\nexport type MessageIds = 'noImplicitAnyArg';\n\nexport const rules = {\n 'no-implicit-any-function-args': createRule<Options, MessageIds>({\n name: 'no-implicit-any-function-args',\n meta: {\n type: 'problem',\n docs: {\n description: 'No implicit any for a function argument is allowed.',\n },\n messages: {\n noImplicitAnyArg: 'Argument \\'{{ name }}\\' requires a type',\n },\n schema: [{\n type: 'object',\n properties: {\n ignorePattern: {\n type: 'string',\n },\n },\n }],\n },\n defaultOptions: [{}],\n create: (context, [options]) => {\n if (\n !context.sourceCode.parserServices ||\n !context.sourceCode.parserServices.program ||\n !context.sourceCode.parserServices.esTreeNodeToTSNodeMap\n ) {\n throw new Error(\n 'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the \"parserOptions.project\" property for @typescript-eslint/parser.'\n );\n }\n\n const ignoreRegex = options.ignorePattern ? new RegExp(options.ignorePattern) : undefined;\n\n const service = context.sourceCode.parserServices;\n const typeChecker = service.program?.getTypeChecker();\n\n function functionTest(node: any) {\n for (const param of node.params) {\n if (!param.typeAnnotation && !param.right) {\n const typescriptParam = context.sourceCode.parserServices?.esTreeNodeToTSNodeMap?.get(param);\n if (!typescriptParam) continue;\n\n const type = typeChecker?.getTypeAtLocation(typescriptParam);\n if (!type) continue;\n\n if ((type.flags & TypeFlags.Any) === 0) continue;\n if (ignoreRegex?.test(param.name)) continue;\n\n context.report({\n node: param,\n messageId: 'noImplicitAnyArg',\n data: {\n name: param.name,\n },\n });\n }\n }\n }\n\n return {\n FunctionDeclaration: functionTest,\n FunctionExpression: functionTest,\n ArrowFunctionExpression: functionTest,\n };\n },\n }),\n};\n"]}
package/index.spec.js CHANGED
@@ -23,7 +23,7 @@ ruleTester.run('no-implicit-any-function-args', _1.rules['no-implicit-any-functi
23
23
  getInvalidTestCase('function f(a:number, b) {}'),
24
24
  getInvalidTestCase('(a:number, b) => null'),
25
25
  getInvalidTestCase('_ => null'),
26
- ]
26
+ ],
27
27
  });
28
28
  function getValidTestCase(code, options) {
29
29
  return {
@@ -35,9 +35,9 @@ function getValidTestCase(code, options) {
35
35
  ecmaVersion: 2018,
36
36
  sourceType: 'module',
37
37
  tsconfigRootDir: path.resolve(__dirname, '..'),
38
- project: './tsconfig.spec.json'
39
- }
40
- }
38
+ project: './tsconfig.spec.json',
39
+ },
40
+ },
41
41
  };
42
42
  }
43
43
  function getInvalidTestCase(code, options) {
@@ -51,9 +51,9 @@ function getInvalidTestCase(code, options) {
51
51
  ecmaVersion: 2018,
52
52
  sourceType: 'module',
53
53
  tsconfigRootDir: path.resolve(__dirname, '..'),
54
- project: './tsconfig.spec.json'
55
- }
56
- }
54
+ project: './tsconfig.spec.json',
55
+ },
56
+ },
57
57
  };
58
58
  }
59
59
  //# sourceMappingURL=index.spec.js.map
package/index.spec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;;AAAA,gEAA4F;AAC5F,wBAA+C;AAC/C,mDAA6B;AAE7B,MAAM,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAC;AAEpC,UAAU,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAK,CAAC,+BAA+B,CAAC,EAAE;IACtF,KAAK,EAAE;QACL,gBAAgB,CAAC,wCAAwC,CAAC;QAC1D,gBAAgB,CAAC,qCAAqC,CAAC;QACvD,gBAAgB,CAAC,mCAAmC,CAAC;QACrD,gBAAgB,CAAC,gCAAgC,CAAC;QAClD,gBAAgB,CAAC,8BAA8B,CAAC;QAChD,gBAAgB,CAAC,2BAA2B,CAAC;QAC7C,gBAAgB,CAAC,qDAAqD,CAAC;QACvE,gBAAgB,CAAC,oEAAoE,CAAC;QACtF,6GAA6G;QAC7G,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3D;IAED,OAAO,EAAE;QACP,kBAAkB,CAAC,iCAAiC,CAAC;QACrD,kBAAkB,CAAC,4BAA4B,CAAC;QAChD,kBAAkB,CAAC,uBAAuB,CAAC;QAC3C,kBAAkB,CAAC,WAAW,CAAC;KAChC;CACF,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAiB;IACvD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,sBAAsB;QAChC,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC9C,OAAO,EAAE,sBAAsB;aAChC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAiB;IACzD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC3C,QAAQ,EAAE,sBAAsB;QAChC,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC9C,OAAO,EAAE,sBAAsB;aAChC;SACF;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { InvalidTestCase, RuleTester, ValidTestCase } from '@typescript-eslint/rule-tester';\nimport { rules, Options, MessageIds } from '.';\nimport * as path from 'path';\n\nconst ruleTester = new RuleTester();\n\nruleTester.run('no-implicit-any-function-args', rules['no-implicit-any-function-args'], {\n valid: [\n getValidTestCase('const f = (a:number, b:number) => null'),\n getValidTestCase('const f = (a:number, b = 0) => null'),\n getValidTestCase('function f(a:number, b:number) {}'),\n getValidTestCase('function f(a:number, b = 0) {}'),\n getValidTestCase('(a:number, b:number) => null'),\n getValidTestCase('(a:number, b = 0) => null'),\n getValidTestCase('const f: (a:number, b = 0) => null = (a, b) => null'),\n getValidTestCase('function f(a: number, b: (b: number) => null) { }; f(1, b => null)'),\n // getValidTestCase('const f: (a:number, b: any) => null = (a, b) => null'), // Try and figure this out later\n getInvalidTestCase('_ => null', [{ ignorePattern: '^_' }]),\n ],\n\n invalid: [\n getInvalidTestCase('const f = (a:number, b) => null'),\n getInvalidTestCase('function f(a:number, b) {}'),\n getInvalidTestCase('(a:number, b) => null'),\n getInvalidTestCase('_ => null'),\n ]\n});\n\nfunction getValidTestCase(code: string, options?: Options): ValidTestCase<Options> {\n return {\n code,\n options: options || [{}],\n filename: 'src/fixtures/file.ts',\n languageOptions: {\n parserOptions: {\n ecmaVersion: 2018,\n sourceType: 'module',\n tsconfigRootDir: path.resolve(__dirname, '..'),\n project: './tsconfig.spec.json'\n }\n }\n };\n}\n\nfunction getInvalidTestCase(code: string, options?: Options): InvalidTestCase<MessageIds, Options> {\n return {\n code,\n options: options || [{}],\n errors: [{ messageId: 'noImplicitAnyArg' }],\n filename: 'src/fixtures/file.ts',\n languageOptions: {\n parserOptions: {\n ecmaVersion: 2018,\n sourceType: 'module',\n tsconfigRootDir: path.resolve(__dirname, '..'),\n project: './tsconfig.spec.json'\n }\n }\n };\n}\n"]}
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;;AAAA,gEAA4F;AAC5F,wBAA+C;AAC/C,mDAA6B;AAE7B,MAAM,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAC;AAEpC,UAAU,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAK,CAAC,+BAA+B,CAAC,EAAE;IACtF,KAAK,EAAE;QACL,gBAAgB,CAAC,wCAAwC,CAAC;QAC1D,gBAAgB,CAAC,qCAAqC,CAAC;QACvD,gBAAgB,CAAC,mCAAmC,CAAC;QACrD,gBAAgB,CAAC,gCAAgC,CAAC;QAClD,gBAAgB,CAAC,8BAA8B,CAAC;QAChD,gBAAgB,CAAC,2BAA2B,CAAC;QAC7C,gBAAgB,CAAC,qDAAqD,CAAC;QACvE,gBAAgB,CAAC,oEAAoE,CAAC;QACtF,6GAA6G;QAC7G,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3D;IAED,OAAO,EAAE;QACP,kBAAkB,CAAC,iCAAiC,CAAC;QACrD,kBAAkB,CAAC,4BAA4B,CAAC;QAChD,kBAAkB,CAAC,uBAAuB,CAAC;QAC3C,kBAAkB,CAAC,WAAW,CAAC;KAChC;CACF,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAiB;IACvD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,sBAAsB;QAChC,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC9C,OAAO,EAAE,sBAAsB;aAChC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAiB;IACzD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC3C,QAAQ,EAAE,sBAAsB;QAChC,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;gBAC9C,OAAO,EAAE,sBAAsB;aAChC;SACF;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { InvalidTestCase, RuleTester, ValidTestCase } from '@typescript-eslint/rule-tester';\nimport { MessageIds, Options, rules } from '.';\nimport * as path from 'path';\n\nconst ruleTester = new RuleTester();\n\nruleTester.run('no-implicit-any-function-args', rules['no-implicit-any-function-args'], {\n valid: [\n getValidTestCase('const f = (a:number, b:number) => null'),\n getValidTestCase('const f = (a:number, b = 0) => null'),\n getValidTestCase('function f(a:number, b:number) {}'),\n getValidTestCase('function f(a:number, b = 0) {}'),\n getValidTestCase('(a:number, b:number) => null'),\n getValidTestCase('(a:number, b = 0) => null'),\n getValidTestCase('const f: (a:number, b = 0) => null = (a, b) => null'),\n getValidTestCase('function f(a: number, b: (b: number) => null) { }; f(1, b => null)'),\n // getValidTestCase('const f: (a:number, b: any) => null = (a, b) => null'), // Try and figure this out later\n getInvalidTestCase('_ => null', [{ ignorePattern: '^_' }]),\n ],\n\n invalid: [\n getInvalidTestCase('const f = (a:number, b) => null'),\n getInvalidTestCase('function f(a:number, b) {}'),\n getInvalidTestCase('(a:number, b) => null'),\n getInvalidTestCase('_ => null'),\n ],\n});\n\nfunction getValidTestCase(code: string, options?: Options): ValidTestCase<Options> {\n return {\n code,\n options: options || [{}],\n filename: 'src/fixtures/file.ts',\n languageOptions: {\n parserOptions: {\n ecmaVersion: 2018,\n sourceType: 'module',\n tsconfigRootDir: path.resolve(__dirname, '..'),\n project: './tsconfig.spec.json',\n },\n },\n };\n}\n\nfunction getInvalidTestCase(code: string, options?: Options): InvalidTestCase<MessageIds, Options> {\n return {\n code,\n options: options || [{}],\n errors: [{ messageId: 'noImplicitAnyArg' }],\n filename: 'src/fixtures/file.ts',\n languageOptions: {\n parserOptions: {\n ecmaVersion: 2018,\n sourceType: 'module',\n tsconfigRootDir: path.resolve(__dirname, '..'),\n project: './tsconfig.spec.json',\n },\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "eslint-plugin-no-implicit-any-function-args",
3
- "version": "1.4.1",
3
+ "version": "1.4.3",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "clean": "rm -rf dist",
8
- "lint": "eslint",
8
+ "lint": "eslint --fix",
9
9
  "prebuild": "npm run clean",
10
10
  "build": "tsc",
11
11
  "postbuild": "npm run copy:files",
@@ -16,23 +16,22 @@
16
16
  "author": "",
17
17
  "license": "ISC",
18
18
  "dependencies": {
19
- "@typescript-eslint/utils": "^8.6.0"
19
+ "@typescript-eslint/utils": "^8.8.0"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "typescript": "^4.2.4 || ^5.0.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/jest": "^29.5.13",
26
- "@types/node": "^22.5.5",
27
- "@typescript-eslint/eslint-plugin": "^8.6.0",
28
- "@typescript-eslint/parser": "^8.6.0",
29
- "@typescript-eslint/rule-tester": "^8.6.0",
26
+ "@types/node": "^22.7.4",
27
+ "@typescript-eslint/rule-tester": "^8.8.0",
30
28
  "copyfiles": "^2.4.1",
31
- "eslint": "^9.10.0",
29
+ "eslint": "^9.11.1",
30
+ "eslint-config-final": "^1.4.3",
32
31
  "jest": "^29.7.0",
33
32
  "ts-api-utils": "^1.3.0",
34
33
  "ts-jest": "^29.2.5",
35
34
  "tslib": "^2.7.0",
36
- "typescript-eslint": "^8.6.0"
35
+ "typescript-eslint": "^8.8.0"
37
36
  }
38
37
  }