eslint-cdk-plugin 0.4.0 → 1.0.0

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.
Files changed (45) hide show
  1. package/CONTRIBUTING.md +105 -0
  2. package/README.md +52 -7
  3. package/VERSIONING_POLICY.md +34 -0
  4. package/assets/logo.png +0 -0
  5. package/dist/index.d.mts +31 -0
  6. package/dist/index.mjs +8 -1
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/no-class-in-interface-props.d.mts +2 -0
  9. package/dist/no-class-in-interface-props.mjs +10 -18
  10. package/dist/no-class-in-interface-props.mjs.map +1 -0
  11. package/dist/no-construct-stack-suffix.d.mts +2 -0
  12. package/dist/no-construct-stack-suffix.mjs +13 -22
  13. package/dist/no-construct-stack-suffix.mjs.map +1 -0
  14. package/dist/no-import-private.d.mts +2 -0
  15. package/dist/no-import-private.mjs +17 -29
  16. package/dist/no-import-private.mjs.map +1 -0
  17. package/dist/no-mutable-props-interface.d.mts +2 -0
  18. package/dist/no-mutable-props-interface.mjs +11 -23
  19. package/dist/no-mutable-props-interface.mjs.map +1 -0
  20. package/dist/no-mutable-public-fields.d.mts +2 -0
  21. package/dist/no-mutable-public-fields.mjs +20 -33
  22. package/dist/no-mutable-public-fields.mjs.map +1 -0
  23. package/dist/no-parent-name-construct-id-match.d.mts +2 -0
  24. package/dist/no-parent-name-construct-id-match.mjs +82 -129
  25. package/dist/no-parent-name-construct-id-match.mjs.map +1 -0
  26. package/dist/no-public-class-fields.d.mts +2 -0
  27. package/dist/no-public-class-fields.mjs +30 -57
  28. package/dist/no-public-class-fields.mjs.map +1 -0
  29. package/dist/no-variable-construct-id.d.mts +2 -0
  30. package/dist/no-variable-construct-id.mjs +63 -0
  31. package/dist/no-variable-construct-id.mjs.map +1 -0
  32. package/dist/pascal-case-construct-id.d.mts +2 -0
  33. package/dist/pascal-case-construct-id.mjs +17 -44
  34. package/dist/pascal-case-construct-id.mjs.map +1 -0
  35. package/dist/require-passing-this.d.mts +2 -0
  36. package/dist/require-passing-this.mjs +39 -0
  37. package/dist/require-passing-this.mjs.map +1 -0
  38. package/dist/utils/convertString.d.mts +1 -0
  39. package/dist/utils/convertString.mjs +4 -9
  40. package/dist/utils/convertString.mjs.map +1 -0
  41. package/dist/utils/typeCheck.d.mts +3 -0
  42. package/dist/utils/typeCheck.mjs +16 -0
  43. package/dist/utils/typeCheck.mjs.map +1 -0
  44. package/package.json +6 -3
  45. package/dist/utils/isConstructOrStackType.mjs +0 -19
@@ -1,12 +1,6 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
2
- import { isConstructOrStackType } from "./utils/isConstructOrStackType.mjs";
3
- /**
4
- * Disallow mutable public class fields
5
- * @param context - The rule context provided by ESLint
6
- * @returns An object containing the AST visitor functions
7
- * @see {@link https://eslint-cdk-plugin.dev/rules/no-mutable-public-fields} - Documentation
8
- */
9
- export var noMutablePublicFields = ESLintUtils.RuleCreator.withoutDocs({
2
+ import { isConstructOrStackType } from "./utils/typeCheck.mjs";
3
+ export const noMutablePublicFields = ESLintUtils.RuleCreator.withoutDocs({
10
4
  meta: {
11
5
  type: "problem",
12
6
  docs: {
@@ -19,52 +13,45 @@ export var noMutablePublicFields = ESLintUtils.RuleCreator.withoutDocs({
19
13
  schema: [],
20
14
  },
21
15
  defaultOptions: [],
22
- create: function (context) {
23
- var parserServices = ESLintUtils.getParserServices(context);
24
- var checker = parserServices.program.getTypeChecker();
25
- var sourceCode = context.sourceCode;
16
+ create(context) {
17
+ const parserServices = ESLintUtils.getParserServices(context);
18
+ const typeChecker = parserServices.program.getTypeChecker();
19
+ const sourceCode = context.sourceCode;
26
20
  return {
27
- ClassDeclaration: function (node) {
28
- var _a;
29
- var type = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node));
21
+ ClassDeclaration(node) {
22
+ const type = typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node));
30
23
  if (!isConstructOrStackType(type)) {
31
24
  return;
32
25
  }
33
- var _loop_1 = function (member) {
34
- // NOTE: check property definition
26
+ for (const member of node.body.body) {
35
27
  if (member.type !== AST_NODE_TYPES.PropertyDefinition ||
36
28
  member.key.type !== AST_NODE_TYPES.Identifier) {
37
- return "continue";
29
+ continue;
38
30
  }
39
- // NOTE: Skip private and protected fields
40
- if (["private", "protected"].includes((_a = member.accessibility) !== null && _a !== void 0 ? _a : "")) {
41
- return "continue";
31
+ if (["private", "protected"].includes(member.accessibility ?? "")) {
32
+ continue;
42
33
  }
43
- // NOTE: Skip if readonly is present
44
34
  if (member.readonly)
45
- return "continue";
35
+ continue;
46
36
  context.report({
47
37
  node: member,
48
38
  messageId: "noMutablePublicFields",
49
39
  data: {
50
40
  propertyName: member.key.name,
51
41
  },
52
- fix: function (fixer) {
53
- var accessibility = member.accessibility ? "public " : "";
54
- var paramText = sourceCode.getText(member);
55
- var _a = paramText.split(":"), key = _a[0], value = _a[1];
56
- var replacedKey = key.startsWith("public ")
42
+ fix: (fixer) => {
43
+ const accessibility = member.accessibility ? "public " : "";
44
+ const paramText = sourceCode.getText(member);
45
+ const [key, value] = paramText.split(":");
46
+ const replacedKey = key.startsWith("public ")
57
47
  ? key.replace("public ", "")
58
48
  : key;
59
- return fixer.replaceText(member, "".concat(accessibility, "readonly ").concat(replacedKey, ":").concat(value));
49
+ return fixer.replaceText(member, `${accessibility}readonly ${replacedKey}:${value}`);
60
50
  },
61
51
  });
62
- };
63
- for (var _i = 0, _b = node.body.body; _i < _b.length; _i++) {
64
- var member = _b[_i];
65
- _loop_1(member);
66
52
  }
67
53
  },
68
54
  };
69
55
  },
70
56
  });
57
+ //# sourceMappingURL=no-mutable-public-fields.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-mutable-public-fields.mjs","sourceRoot":"","sources":["../src/no-mutable-public-fields.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;IACvE,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,sCAAsC;SACpD;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,qBAAqB,EACnB,gGAAgG;SACnG;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CACxC,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC/C,CAAC;gBACF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;gBAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAEpC,IACE,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,kBAAkB;wBACjD,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAC7C,CAAC;wBACD,SAAS;oBACX,CAAC;oBAGD,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC;wBAClE,SAAS;oBACX,CAAC;oBAGD,IAAI,MAAM,CAAC,QAAQ;wBAAE,SAAS;oBAE9B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,uBAAuB;wBAClC,IAAI,EAAE;4BACJ,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;yBAC9B;wBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;4BACb,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BAC7C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gCAC3C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gCAC5B,CAAC,CAAC,GAAG,CAAC;4BAER,OAAO,KAAK,CAAC,WAAW,CACtB,MAAM,EACN,GAAG,aAAa,YAAY,WAAW,IAAI,KAAK,EAAE,CACnD,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ export declare const noParentNameConstructIdMatch: ESLintUtils.RuleModule<"noParentNameConstructIdMatch", [], unknown, ESLintUtils.RuleListener>;
@@ -1,12 +1,6 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from "@typescript-eslint/utils";
2
2
  import { toPascalCase } from "./utils/convertString.mjs";
3
- /**
4
- * Enforce that construct IDs does not match the parent construct name.
5
- * @param context - The rule context provided by ESLint
6
- * @returns An object containing the AST visitor functions
7
- * @see {@link https://eslint-cdk-plugin.dev/rules/no-parent-name-construct-id-match} - Documentation
8
- */
9
- export var noParentNameConstructIdMatch = ESLintUtils.RuleCreator.withoutDocs({
3
+ export const noParentNameConstructIdMatch = ESLintUtils.RuleCreator.withoutDocs({
10
4
  meta: {
11
5
  type: "problem",
12
6
  docs: {
@@ -18,87 +12,75 @@ export var noParentNameConstructIdMatch = ESLintUtils.RuleCreator.withoutDocs({
18
12
  schema: [],
19
13
  },
20
14
  defaultOptions: [],
21
- create: function (context) {
15
+ create(context) {
22
16
  return {
23
- ClassBody: function (node) {
24
- var _a;
25
- var parent = node.parent;
26
- if ((parent === null || parent === void 0 ? void 0 : parent.type) !== AST_NODE_TYPES.ClassDeclaration)
17
+ ClassBody(node) {
18
+ const parent = node.parent;
19
+ if (parent?.type !== AST_NODE_TYPES.ClassDeclaration)
27
20
  return;
28
- var parentClassName = (_a = parent.id) === null || _a === void 0 ? void 0 : _a.name;
21
+ const parentClassName = parent.id?.name;
29
22
  if (!parentClassName)
30
23
  return;
31
- for (var _i = 0, _b = node.body; _i < _b.length; _i++) {
32
- var body = _b[_i];
33
- // NOTE: Ignore if neither method nor constructor.
24
+ for (const body of node.body) {
34
25
  if (body.type !== AST_NODE_TYPES.MethodDefinition ||
35
26
  !["method", "constructor"].includes(body.kind) ||
36
27
  body.value.type !== AST_NODE_TYPES.FunctionExpression) {
37
28
  continue;
38
29
  }
39
30
  validateConstructorBody({
40
- node: node,
31
+ node,
41
32
  expression: body.value,
42
- parentClassName: parentClassName,
43
- context: context,
33
+ parentClassName,
34
+ context,
44
35
  });
45
36
  }
46
37
  },
47
38
  };
48
39
  },
49
40
  });
50
- /**
51
- * Validate the constructor body for the parent class
52
- * - validate each statement in the constructor body
53
- */
54
- var validateConstructorBody = function (_a) {
55
- var _b;
56
- var node = _a.node, expression = _a.expression, parentClassName = _a.parentClassName, context = _a.context;
57
- for (var _i = 0, _c = expression.body.body; _i < _c.length; _i++) {
58
- var statement = _c[_i];
41
+ const validateConstructorBody = ({ node, expression, parentClassName, context, }) => {
42
+ for (const statement of expression.body.body) {
59
43
  switch (statement.type) {
60
44
  case AST_NODE_TYPES.VariableDeclaration: {
61
- var newExpression = statement.declarations[0].init;
62
- if ((newExpression === null || newExpression === void 0 ? void 0 : newExpression.type) !== AST_NODE_TYPES.NewExpression)
45
+ const newExpression = statement.declarations[0].init;
46
+ if (newExpression?.type !== AST_NODE_TYPES.NewExpression)
63
47
  continue;
64
48
  validateConstructId({
65
- node: node,
66
- context: context,
49
+ node,
50
+ context,
67
51
  expression: newExpression,
68
- parentClassName: parentClassName,
52
+ parentClassName,
69
53
  });
70
54
  break;
71
55
  }
72
56
  case AST_NODE_TYPES.ExpressionStatement: {
73
- if (((_b = statement.expression) === null || _b === void 0 ? void 0 : _b.type) !== AST_NODE_TYPES.NewExpression)
57
+ if (statement.expression?.type !== AST_NODE_TYPES.NewExpression)
74
58
  break;
75
59
  validateStatement({
76
- node: node,
77
- statement: statement,
78
- parentClassName: parentClassName,
79
- context: context,
60
+ node,
61
+ statement,
62
+ parentClassName,
63
+ context,
80
64
  });
81
65
  break;
82
66
  }
83
67
  case AST_NODE_TYPES.IfStatement: {
84
68
  traverseStatements({
85
- node: node,
86
- context: context,
87
- parentClassName: parentClassName,
69
+ node,
70
+ context,
71
+ parentClassName,
88
72
  statement: statement.consequent,
89
73
  });
90
74
  break;
91
75
  }
92
76
  case AST_NODE_TYPES.SwitchStatement: {
93
- for (var _d = 0, _e = statement.cases; _d < _e.length; _d++) {
94
- var switchCase = _e[_d];
95
- for (var _f = 0, _g = switchCase.consequent; _f < _g.length; _f++) {
96
- var statement_1 = _g[_f];
77
+ for (const switchCase of statement.cases) {
78
+ for (const statement of switchCase.consequent) {
97
79
  traverseStatements({
98
- node: node,
99
- context: context,
100
- parentClassName: parentClassName,
101
- statement: statement_1,
80
+ node,
81
+ context,
82
+ parentClassName,
83
+ statement,
102
84
  });
103
85
  }
104
86
  }
@@ -107,154 +89,124 @@ var validateConstructorBody = function (_a) {
107
89
  }
108
90
  }
109
91
  };
110
- /**
111
- * Recursively traverse and validate statements in the AST
112
- * - Handles BlockStatement, ExpressionStatement, and VariableDeclaration
113
- * - Validates construct IDs against parent class name
114
- */
115
- var traverseStatements = function (_a) {
116
- var node = _a.node, statement = _a.statement, parentClassName = _a.parentClassName, context = _a.context;
92
+ const traverseStatements = ({ node, statement, parentClassName, context, }) => {
117
93
  switch (statement.type) {
118
94
  case AST_NODE_TYPES.BlockStatement: {
119
- for (var _i = 0, _b = statement.body; _i < _b.length; _i++) {
120
- var body = _b[_i];
95
+ for (const body of statement.body) {
121
96
  validateStatement({
122
- node: node,
97
+ node,
123
98
  statement: body,
124
- parentClassName: parentClassName,
125
- context: context,
99
+ parentClassName,
100
+ context,
126
101
  });
127
102
  }
128
103
  break;
129
104
  }
130
105
  case AST_NODE_TYPES.ExpressionStatement: {
131
- var newExpression = statement.expression;
132
- if ((newExpression === null || newExpression === void 0 ? void 0 : newExpression.type) !== AST_NODE_TYPES.NewExpression)
106
+ const newExpression = statement.expression;
107
+ if (newExpression?.type !== AST_NODE_TYPES.NewExpression)
133
108
  break;
134
109
  validateStatement({
135
- node: node,
136
- statement: statement,
137
- parentClassName: parentClassName,
138
- context: context,
110
+ node,
111
+ statement,
112
+ parentClassName,
113
+ context,
139
114
  });
140
115
  break;
141
116
  }
142
117
  case AST_NODE_TYPES.VariableDeclaration: {
143
- var newExpression = statement.declarations[0].init;
144
- if ((newExpression === null || newExpression === void 0 ? void 0 : newExpression.type) !== AST_NODE_TYPES.NewExpression)
118
+ const newExpression = statement.declarations[0].init;
119
+ if (newExpression?.type !== AST_NODE_TYPES.NewExpression)
145
120
  break;
146
121
  validateConstructId({
147
- node: node,
148
- context: context,
122
+ node,
123
+ context,
149
124
  expression: newExpression,
150
- parentClassName: parentClassName,
125
+ parentClassName,
151
126
  });
152
127
  break;
153
128
  }
154
129
  }
155
130
  };
156
- /**
157
- * Validate a single statement in the AST
158
- * - Handles different types of statements (Variable, Expression, If, Switch)
159
- * - Extracts and validates construct IDs from new expressions
160
- */
161
- var validateStatement = function (_a) {
162
- var node = _a.node, statement = _a.statement, parentClassName = _a.parentClassName, context = _a.context;
131
+ const validateStatement = ({ node, statement, parentClassName, context, }) => {
163
132
  switch (statement.type) {
164
133
  case AST_NODE_TYPES.VariableDeclaration: {
165
- var newExpression = statement.declarations[0].init;
166
- if ((newExpression === null || newExpression === void 0 ? void 0 : newExpression.type) !== AST_NODE_TYPES.NewExpression)
134
+ const newExpression = statement.declarations[0].init;
135
+ if (newExpression?.type !== AST_NODE_TYPES.NewExpression)
167
136
  break;
168
137
  validateConstructId({
169
- node: node,
170
- context: context,
138
+ node,
139
+ context,
171
140
  expression: newExpression,
172
- parentClassName: parentClassName,
141
+ parentClassName,
173
142
  });
174
143
  break;
175
144
  }
176
145
  case AST_NODE_TYPES.ExpressionStatement: {
177
- var newExpression = statement.expression;
178
- if ((newExpression === null || newExpression === void 0 ? void 0 : newExpression.type) !== AST_NODE_TYPES.NewExpression)
146
+ const newExpression = statement.expression;
147
+ if (newExpression?.type !== AST_NODE_TYPES.NewExpression)
179
148
  break;
180
149
  validateConstructId({
181
- node: node,
182
- context: context,
150
+ node,
151
+ context,
183
152
  expression: newExpression,
184
- parentClassName: parentClassName,
153
+ parentClassName,
185
154
  });
186
155
  break;
187
156
  }
188
157
  case AST_NODE_TYPES.IfStatement: {
189
158
  validateIfStatement({
190
- node: node,
191
- statement: statement,
192
- parentClassName: parentClassName,
193
- context: context,
159
+ node,
160
+ statement,
161
+ parentClassName,
162
+ context,
194
163
  });
195
164
  break;
196
165
  }
197
166
  case AST_NODE_TYPES.SwitchStatement: {
198
167
  validateSwitchStatement({
199
- node: node,
200
- statement: statement,
201
- parentClassName: parentClassName,
202
- context: context,
168
+ node,
169
+ statement,
170
+ parentClassName,
171
+ context,
203
172
  });
204
173
  break;
205
174
  }
206
175
  }
207
176
  };
208
- /**
209
- * Validate the `if` statement
210
- * - Validate recursively if `if` statements are nested
211
- */
212
- var validateIfStatement = function (_a) {
213
- var node = _a.node, statement = _a.statement, parentClassName = _a.parentClassName, context = _a.context;
177
+ const validateIfStatement = ({ node, statement, parentClassName, context, }) => {
214
178
  traverseStatements({
215
- node: node,
216
- context: context,
217
- parentClassName: parentClassName,
179
+ node,
180
+ context,
181
+ parentClassName,
218
182
  statement: statement.consequent,
219
183
  });
220
184
  };
221
- /**
222
- * Validate the `switch` statement
223
- * - Validate recursively if `switch` statements are nested
224
- */
225
- var validateSwitchStatement = function (_a) {
226
- var node = _a.node, statement = _a.statement, parentClassName = _a.parentClassName, context = _a.context;
227
- for (var _i = 0, _b = statement.cases; _i < _b.length; _i++) {
228
- var caseStatement = _b[_i];
229
- for (var _c = 0, _d = caseStatement.consequent; _c < _d.length; _c++) {
230
- var _consequent = _d[_c];
185
+ const validateSwitchStatement = ({ node, statement, parentClassName, context, }) => {
186
+ for (const caseStatement of statement.cases) {
187
+ for (const _consequent of caseStatement.consequent) {
231
188
  traverseStatements({
232
- node: node,
233
- context: context,
234
- parentClassName: parentClassName,
189
+ node,
190
+ context,
191
+ parentClassName,
235
192
  statement: _consequent,
236
193
  });
237
194
  }
238
195
  }
239
196
  };
240
- /**
241
- * Validate that parent construct name and child id do not match
242
- */
243
- var validateConstructId = function (_a) {
244
- var node = _a.node, context = _a.context, expression = _a.expression, parentClassName = _a.parentClassName;
197
+ const validateConstructId = ({ node, context, expression, parentClassName, }) => {
245
198
  if (expression.arguments.length < 2)
246
199
  return;
247
- // NOTE: Treat the second argument as ID
248
- var secondArg = expression.arguments[1];
200
+ const secondArg = expression.arguments[1];
249
201
  if (secondArg.type !== AST_NODE_TYPES.Literal ||
250
202
  typeof secondArg.value !== "string") {
251
203
  return;
252
204
  }
253
- var formattedConstructId = toPascalCase(secondArg.value);
254
- var formattedParentClassName = toPascalCase(parentClassName);
205
+ const formattedConstructId = toPascalCase(secondArg.value);
206
+ const formattedParentClassName = toPascalCase(parentClassName);
255
207
  if (formattedParentClassName === formattedConstructId) {
256
208
  context.report({
257
- node: node,
209
+ node,
258
210
  messageId: "noParentNameConstructIdMatch",
259
211
  data: {
260
212
  constructId: secondArg.value,
@@ -263,3 +215,4 @@ var validateConstructId = function (_a) {
263
215
  });
264
216
  }
265
217
  };
218
+ //# sourceMappingURL=no-parent-name-construct-id-match.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-parent-name-construct-id-match.mjs","sourceRoot":"","sources":["../src/no-parent-name-construct-id-match.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ export declare const noPublicClassFields: ESLintUtils.RuleModule<"noPublicClassFields", [], unknown, ESLintUtils.RuleListener>;
@@ -1,13 +1,7 @@
1
1
  import { AST_NODE_TYPES, ESLintUtils, } from "@typescript-eslint/utils";
2
2
  import { SymbolFlags } from "typescript";
3
- import { isConstructOrStackType } from "./utils/isConstructOrStackType.mjs";
4
- /**
5
- * Disallow class types in public class fields
6
- * @param context - The rule context provided by ESLint
7
- * @returns An object containing the AST visitor functions
8
- * @see {@link https://eslint-cdk-plugin.dev/rules/no-public-class-fields} - Documentation
9
- */
10
- export var noPublicClassFields = ESLintUtils.RuleCreator.withoutDocs({
3
+ import { isConstructOrStackType } from "./utils/typeCheck.mjs";
4
+ export const noPublicClassFields = ESLintUtils.RuleCreator.withoutDocs({
11
5
  meta: {
12
6
  type: "problem",
13
7
  docs: {
@@ -19,67 +13,54 @@ export var noPublicClassFields = ESLintUtils.RuleCreator.withoutDocs({
19
13
  schema: [],
20
14
  },
21
15
  defaultOptions: [],
22
- create: function (context) {
23
- var parserServices = ESLintUtils.getParserServices(context);
24
- var typeChecker = parserServices.program.getTypeChecker();
16
+ create(context) {
17
+ const parserServices = ESLintUtils.getParserServices(context);
18
+ const typeChecker = parserServices.program.getTypeChecker();
25
19
  return {
26
- ClassDeclaration: function (node) {
27
- var type = typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node));
20
+ ClassDeclaration(node) {
21
+ const type = typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node));
28
22
  if (!isConstructOrStackType(type)) {
29
23
  return;
30
24
  }
31
- // NOTE: Check class members
32
25
  validateClassMember({
33
- node: node,
34
- context: context,
35
- parserServices: parserServices,
36
- typeChecker: typeChecker,
37
- });
38
- // NOTE: Check constructor parameter properties
39
- var constructor = node.body.body.find(function (member) {
40
- return member.type === AST_NODE_TYPES.MethodDefinition &&
41
- member.kind === "constructor";
26
+ node,
27
+ context,
28
+ parserServices,
29
+ typeChecker,
42
30
  });
31
+ const constructor = node.body.body.find((member) => member.type === AST_NODE_TYPES.MethodDefinition &&
32
+ member.kind === "constructor");
43
33
  if (!constructor ||
44
34
  constructor.value.type !== AST_NODE_TYPES.FunctionExpression) {
45
35
  return;
46
36
  }
47
37
  validateConstructorParameterProperty({
48
- constructor: constructor,
49
- context: context,
50
- parserServices: parserServices,
51
- typeChecker: typeChecker,
38
+ constructor,
39
+ context,
40
+ parserServices,
41
+ typeChecker,
52
42
  });
53
43
  },
54
44
  };
55
45
  },
56
46
  });
57
- /**
58
- * check the public variable of the class
59
- * - if it is a class type, report an error
60
- */
61
- var validateClassMember = function (_a) {
62
- var _b;
63
- var node = _a.node, context = _a.context, parserServices = _a.parserServices, typeChecker = _a.typeChecker;
64
- for (var _i = 0, _c = node.body.body; _i < _c.length; _i++) {
65
- var member = _c[_i];
47
+ const validateClassMember = ({ node, context, parserServices, typeChecker, }) => {
48
+ for (const member of node.body.body) {
66
49
  if (member.type !== AST_NODE_TYPES.PropertyDefinition ||
67
50
  member.key.type !== AST_NODE_TYPES.Identifier) {
68
51
  continue;
69
52
  }
70
- // NOTE: Skip private and protected fields
71
- if (["private", "protected"].includes((_b = member.accessibility) !== null && _b !== void 0 ? _b : "")) {
53
+ if (["private", "protected"].includes(member.accessibility ?? "")) {
72
54
  continue;
73
55
  }
74
- // NOTE: Skip fields without type annotation
75
56
  if (!member.typeAnnotation) {
76
57
  continue;
77
58
  }
78
- var tsNode = parserServices.esTreeNodeToTSNodeMap.get(member);
79
- var type = typeChecker.getTypeAtLocation(tsNode);
59
+ const tsNode = parserServices.esTreeNodeToTSNodeMap.get(member);
60
+ const type = typeChecker.getTypeAtLocation(tsNode);
80
61
  if (!type.symbol)
81
62
  continue;
82
- var isClass = type.symbol.flags === SymbolFlags.Class;
63
+ const isClass = type.symbol.flags === SymbolFlags.Class;
83
64
  if (!isClass)
84
65
  continue;
85
66
  context.report({
@@ -92,32 +73,23 @@ var validateClassMember = function (_a) {
92
73
  });
93
74
  }
94
75
  };
95
- /**
96
- * check the constructor parameter property
97
- * - if it is a class type, report an error
98
- */
99
- var validateConstructorParameterProperty = function (_a) {
100
- var _b;
101
- var constructor = _a.constructor, context = _a.context, parserServices = _a.parserServices, typeChecker = _a.typeChecker;
102
- for (var _i = 0, _c = constructor.value.params; _i < _c.length; _i++) {
103
- var param = _c[_i];
76
+ const validateConstructorParameterProperty = ({ constructor, context, parserServices, typeChecker, }) => {
77
+ for (const param of constructor.value.params) {
104
78
  if (param.type !== AST_NODE_TYPES.TSParameterProperty ||
105
79
  param.parameter.type !== AST_NODE_TYPES.Identifier) {
106
80
  continue;
107
81
  }
108
- // NOTE: Skip private and protected parameters
109
- if (["private", "protected"].includes((_b = param.accessibility) !== null && _b !== void 0 ? _b : "")) {
82
+ if (["private", "protected"].includes(param.accessibility ?? "")) {
110
83
  continue;
111
84
  }
112
- // NOTE: Skip parameters without type annotation
113
85
  if (!param.parameter.typeAnnotation) {
114
86
  continue;
115
87
  }
116
- var tsNode = parserServices.esTreeNodeToTSNodeMap.get(param);
117
- var type = typeChecker.getTypeAtLocation(tsNode);
88
+ const tsNode = parserServices.esTreeNodeToTSNodeMap.get(param);
89
+ const type = typeChecker.getTypeAtLocation(tsNode);
118
90
  if (!type.symbol)
119
91
  continue;
120
- var isClass = type.symbol.flags === SymbolFlags.Class;
92
+ const isClass = type.symbol.flags === SymbolFlags.Class;
121
93
  if (!isClass)
122
94
  continue;
123
95
  context.report({
@@ -130,3 +102,4 @@ var validateConstructorParameterProperty = function (_a) {
130
102
  });
131
103
  }
132
104
  };
105
+ //# sourceMappingURL=no-public-class-fields.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-public-class-fields.mjs","sourceRoot":"","sources":["../src/no-public-class-fields.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ export declare const noVariableConstructId: ESLintUtils.RuleModule<"noVariableConstructId", [], unknown, ESLintUtils.RuleListener>;