eslint-plugin-nima 0.1.2 → 0.1.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/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ declare const rules: {
10
10
  }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
11
11
  "manage-functions": RuleModule<"noOptional", [{
12
12
  options: {
13
+ allowFunctions: any[];
13
14
  disableFunctions: any[];
14
15
  files: any[];
15
16
  folders: any[];
@@ -67,6 +68,7 @@ declare const plugin: {
67
68
  }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
68
69
  "manage-functions": RuleModule<"noOptional", [{
69
70
  options: {
71
+ allowFunctions: any[];
70
72
  disableFunctions: any[];
71
73
  files: any[];
72
74
  folders: any[];
@@ -2,6 +2,7 @@ import { ESLintUtils } from "@typescript-eslint/utils";
2
2
  export declare const name = "manage-functions";
3
3
  export declare const rule: ESLintUtils.RuleModule<"noOptional", [{
4
4
  options: {
5
+ allowFunctions: any[];
5
6
  disableFunctions: any[];
6
7
  files: any[];
7
8
  folders: any[];
@@ -7,34 +7,32 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
7
7
  create(context, options) {
8
8
  var _a;
9
9
  const allOptions = ((_a = options[0]) === null || _a === void 0 ? void 0 : _a.options) || [];
10
- function isFileMatched(filename) {
11
- return allOptions.some((option) => {
12
- const folders = option.folders || [];
13
- const files = option.files || [];
14
- if (folders.some((f) => filename.includes(f)))
15
- return true;
16
- if (files.some((f) => filename.endsWith(f)))
17
- return true;
18
- return false;
19
- });
10
+ function isFileMatched(filename, folders, files) {
11
+ return (folders.some((f) => filename.includes(f)) ||
12
+ files.some((f) => filename.endsWith(f)));
20
13
  }
21
- function isFunctionDisabled(name) {
14
+ function isFunctionDisabled(fnName, filename) {
22
15
  return allOptions.some((option) => {
23
16
  const disableFunctions = option.disableFunctions || [];
24
- return disableFunctions.some((fnName) => fnName.toLowerCase() === name);
17
+ const allowFunctions = option.allowFunctions || [];
18
+ const folders = option.folders || [];
19
+ const files = option.files || [];
20
+ // If function is in allowFunctions, only allow it in specified folders/files
21
+ if (allowFunctions.some((fn) => fn.toLowerCase() === fnName)) {
22
+ return !isFileMatched(filename, folders, files);
23
+ }
24
+ // Otherwise, if function is in disableFunctions, block it everywhere
25
+ return disableFunctions.some((fn) => fn.toLowerCase() === fnName);
25
26
  });
26
27
  }
27
28
  return {
28
29
  CallExpression(node) {
29
30
  const callee = node.callee;
30
- if (!isFileMatched(context.filename))
31
- return;
31
+ const filename = context.filename;
32
32
  if (callee.type === "Identifier") {
33
- if (isFunctionDisabled(callee.name.toLowerCase())) {
33
+ if (isFunctionDisabled(callee.name.toLowerCase(), filename)) {
34
34
  context.report({
35
- data: {
36
- fnName: callee.name,
37
- },
35
+ data: { fnName: callee.name },
38
36
  messageId: "noOptional",
39
37
  node: callee,
40
38
  });
@@ -42,11 +40,9 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
42
40
  }
43
41
  else if (callee.type === "MemberExpression" &&
44
42
  callee.property.type === "Identifier") {
45
- if (isFunctionDisabled(callee.property.name.toLowerCase())) {
43
+ if (isFunctionDisabled(callee.property.name.toLowerCase(), filename)) {
46
44
  context.report({
47
- data: {
48
- fnName: callee.property.name,
49
- },
45
+ data: { fnName: callee.property.name },
50
46
  messageId: "noOptional",
51
47
  node: callee.property,
52
48
  });
@@ -59,6 +55,7 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
59
55
  {
60
56
  options: [
61
57
  {
58
+ allowFunctions: [],
62
59
  disableFunctions: [],
63
60
  files: [],
64
61
  folders: [],
@@ -68,7 +65,7 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
68
65
  ],
69
66
  meta: {
70
67
  docs: {
71
- description: "Disallow use of any functions in any files or folders.",
68
+ description: "Disallow use of any functions in any files or folders unless explicitly allowed.",
72
69
  },
73
70
  messages: {
74
71
  noOptional: "Do not use {{ fnName }} in this folder/file.",
@@ -80,18 +77,10 @@ exports.rule = utils_1.ESLintUtils.RuleCreator.withoutDocs({
80
77
  options: {
81
78
  items: {
82
79
  properties: {
83
- disableFunctions: {
84
- items: { type: "string" },
85
- type: "array",
86
- },
87
- files: {
88
- items: { type: "string" },
89
- type: "array",
90
- },
91
- folders: {
92
- items: { type: "string" },
93
- type: "array",
94
- },
80
+ allowFunctions: { items: { type: "string" }, type: "array" },
81
+ disableFunctions: { items: { type: "string" }, type: "array" },
82
+ files: { items: { type: "string" }, type: "array" },
83
+ folders: { items: { type: "string" }, type: "array" },
95
84
  },
96
85
  type: "object",
97
86
  },
@@ -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.2",
3
+ "version": "0.1.3",
4
4
  "description": "ESLint plugin for NIMA Labs",
5
5
  "keywords": [
6
6
  "eslint",