eslint-plugin-nima 0.1.3 → 0.1.4

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/dist/index.d.ts CHANGED
@@ -8,14 +8,14 @@ declare const rules: {
8
8
  checkProperties: boolean;
9
9
  checkVariables: boolean;
10
10
  }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
11
- "manage-functions": RuleModule<"noOptional", [{
11
+ "manage-functions": RuleModule<"noOptional", {
12
12
  options: {
13
- allowFunctions: any[];
14
- disableFunctions: any[];
15
- files: any[];
16
- folders: any[];
13
+ allowFunctions?: string[];
14
+ disableFunctions?: string[];
15
+ files?: string[];
16
+ folders?: string[];
17
17
  }[];
18
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
18
+ }[], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
19
19
  "no-handler-suffix": RuleModule<"badHandleName", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
20
20
  "no-objects-in-deps": RuleModule<"noObjects", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
21
21
  "params-naming-convention": RuleModule<"useObjectParams", [{
@@ -66,14 +66,14 @@ declare const plugin: {
66
66
  checkProperties: boolean;
67
67
  checkVariables: boolean;
68
68
  }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
69
- "manage-functions": RuleModule<"noOptional", [{
69
+ "manage-functions": RuleModule<"noOptional", {
70
70
  options: {
71
- allowFunctions: any[];
72
- disableFunctions: any[];
73
- files: any[];
74
- folders: any[];
71
+ allowFunctions?: string[];
72
+ disableFunctions?: string[];
73
+ files?: string[];
74
+ folders?: string[];
75
75
  }[];
76
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
76
+ }[], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
77
77
  "no-handler-suffix": RuleModule<"badHandleName", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
78
78
  "no-objects-in-deps": RuleModule<"noObjects", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
79
79
  "params-naming-convention": RuleModule<"useObjectParams", [{
@@ -1,10 +1,12 @@
1
1
  import { ESLintUtils } from "@typescript-eslint/utils";
2
- export declare const name = "manage-functions";
3
- export declare const rule: ESLintUtils.RuleModule<"noOptional", [{
2
+ type ManageFunctionsOption = {
4
3
  options: {
5
- allowFunctions: any[];
6
- disableFunctions: any[];
7
- files: any[];
8
- folders: any[];
4
+ allowFunctions?: string[];
5
+ disableFunctions?: string[];
6
+ files?: string[];
7
+ folders?: string[];
9
8
  }[];
10
- }], unknown, ESLintUtils.RuleListener>;
9
+ }[];
10
+ export declare const name = "manage-functions";
11
+ export declare const rule: ESLintUtils.RuleModule<"noOptional", ManageFunctionsOption, unknown, ESLintUtils.RuleListener>;
12
+ export {};
@@ -1,15 +1,23 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.rule = exports.name = void 0;
4
7
  const utils_1 = require("@typescript-eslint/utils");
8
+ const minimatch_1 = require("minimatch");
9
+ const path_1 = __importDefault(require("path"));
5
10
  exports.name = "manage-functions";
6
11
  exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
7
12
  create(context, options) {
8
13
  var _a;
9
14
  const allOptions = ((_a = options[0]) === null || _a === void 0 ? void 0 : _a.options) || [];
10
15
  function isFileMatched(filename, folders, files) {
11
- return (folders.some((f) => filename.includes(f)) ||
12
- files.some((f) => filename.endsWith(f)));
16
+ const dir = path_1.default.dirname(filename);
17
+ const base = path_1.default.basename(filename);
18
+ const folderMatch = folders.some((f) => (0, minimatch_1.minimatch)(dir, f));
19
+ const fileMatch = files.some((f) => (0, minimatch_1.minimatch)(base, f));
20
+ return folderMatch || fileMatch;
13
21
  }
14
22
  function isFunctionDisabled(fnName, filename) {
15
23
  return allOptions.some((option) => {
@@ -17,11 +25,9 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
17
25
  const allowFunctions = option.allowFunctions || [];
18
26
  const folders = option.folders || [];
19
27
  const files = option.files || [];
20
- // If function is in allowFunctions, only allow it in specified folders/files
21
28
  if (allowFunctions.some((fn) => fn.toLowerCase() === fnName)) {
22
29
  return !isFileMatched(filename, folders, files);
23
30
  }
24
- // Otherwise, if function is in disableFunctions, block it everywhere
25
31
  return disableFunctions.some((fn) => fn.toLowerCase() === fnName);
26
32
  });
27
33
  }
@@ -32,7 +38,7 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
32
38
  if (callee.type === "Identifier") {
33
39
  if (isFunctionDisabled(callee.name.toLowerCase(), filename)) {
34
40
  context.report({
35
- data: { fnName: callee.name },
41
+ data: { filename, fnName: callee.name },
36
42
  messageId: "noOptional",
37
43
  node: callee,
38
44
  });
@@ -42,7 +48,7 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
42
48
  callee.property.type === "Identifier") {
43
49
  if (isFunctionDisabled(callee.property.name.toLowerCase(), filename)) {
44
50
  context.report({
45
- data: { fnName: callee.property.name },
51
+ data: { filename, fnName: callee.property.name },
46
52
  messageId: "noOptional",
47
53
  node: callee.property,
48
54
  });
@@ -68,7 +74,7 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
68
74
  description: "Disallow use of any functions in any files or folders unless explicitly allowed.",
69
75
  },
70
76
  messages: {
71
- noOptional: "Do not use {{ fnName }} in this folder/file.",
77
+ noOptional: "Do not use {{ fnName }} inside {{ filename }}.",
72
78
  },
73
79
  schema: [
74
80
  {
@@ -1 +1 @@
1
- {"version":3,"file":"manage-functions.js","sourceRoot":"","sources":["../../src/rules/manage-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manage-functions.js","sourceRoot":"","sources":["../../src/rules/manage-functions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-nima",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "ESLint plugin for NIMA Labs",
5
5
  "keywords": [
6
6
  "eslint",
@@ -28,6 +28,7 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@typescript-eslint/utils": "^8.40.0",
31
+ "minimatch": "^10.0.3",
31
32
  "ts-node": "^10.9.2"
32
33
  },
33
34
  "devDependencies": {