@pobammer-ts/eslint-cease-nonsense-rules 0.10.0 → 0.11.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 (32) hide show
  1. package/dist/rules/ban-react-fc.js +2 -30
  2. package/dist/rules/ban-react-fc.js.map +1 -1
  3. package/dist/rules/enforce-ianitor-check-type.js +69 -157
  4. package/dist/rules/enforce-ianitor-check-type.js.map +1 -1
  5. package/dist/rules/no-color3-constructor.d.ts +0 -17
  6. package/dist/rules/no-color3-constructor.js +9 -31
  7. package/dist/rules/no-color3-constructor.js.map +1 -1
  8. package/dist/rules/no-instance-methods-without-this.js +2 -3
  9. package/dist/rules/no-instance-methods-without-this.js.map +1 -1
  10. package/dist/rules/no-print.d.ts +0 -15
  11. package/dist/rules/no-print.js +0 -21
  12. package/dist/rules/no-print.js.map +1 -1
  13. package/dist/rules/no-shorthand-names.d.ts +0 -24
  14. package/dist/rules/no-shorthand-names.js +18 -72
  15. package/dist/rules/no-shorthand-names.js.map +1 -1
  16. package/dist/rules/no-warn.d.ts +0 -15
  17. package/dist/rules/no-warn.js +0 -21
  18. package/dist/rules/no-warn.js.map +1 -1
  19. package/dist/rules/prefer-sequence-overloads.js +9 -16
  20. package/dist/rules/prefer-sequence-overloads.js.map +1 -1
  21. package/dist/rules/prefer-udim2-shorthand.d.ts +0 -14
  22. package/dist/rules/prefer-udim2-shorthand.js +17 -46
  23. package/dist/rules/prefer-udim2-shorthand.js.map +1 -1
  24. package/dist/rules/require-named-effect-functions.js +197 -59
  25. package/dist/rules/require-named-effect-functions.js.map +1 -1
  26. package/dist/rules/require-react-component-keys.d.ts +5 -6
  27. package/dist/rules/require-react-component-keys.js +119 -129
  28. package/dist/rules/require-react-component-keys.js.map +1 -1
  29. package/dist/rules/use-exhaustive-dependencies.d.ts +0 -42
  30. package/dist/rules/use-exhaustive-dependencies.js +100 -227
  31. package/dist/rules/use-exhaustive-dependencies.js.map +1 -1
  32. package/package.json +9 -7
@@ -1 +1 @@
1
- {"version":3,"file":"no-instance-methods-without-this.js","sourceRoot":"","sources":["../../src/rules/no-instance-methods-without-this.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-instance-methods-without-this.js","sourceRoot":"","sources":["../../src/rules/no-instance-methods-without-this.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,3 @@
1
1
  import type { Rule } from "eslint";
2
- /**
3
- * Bans use of `print()` function calls. Use `Log` instead.
4
- *
5
- * The `print()` function is not wanted in this codebase and discouraged in favor of a proper
6
- * logging system like `Log`.
7
- *
8
- * @example
9
- * // ❌ Reports
10
- * print("Hello");
11
- * print(value);
12
- *
13
- * // ✅ OK
14
- * Log.info("Hello");
15
- * Log.debug(value);
16
- */
17
2
  declare const noPrint: Rule.RuleModule;
18
3
  export default noPrint;
@@ -1,25 +1,4 @@
1
- /**
2
- * Bans use of `print()` function calls. Use `Log` instead.
3
- *
4
- * The `print()` function is not wanted in this codebase and discouraged in favor of a proper
5
- * logging system like `Log`.
6
- *
7
- * @example
8
- * // ❌ Reports
9
- * print("Hello");
10
- * print(value);
11
- *
12
- * // ✅ OK
13
- * Log.info("Hello");
14
- * Log.debug(value);
15
- */
16
1
  const noPrint = {
17
- /**
18
- * Creates the ESLint rule visitor.
19
- *
20
- * @param context - The ESLint rule context.
21
- * @returns The visitor object with AST node handlers.
22
- */
23
2
  create(context) {
24
3
  return {
25
4
  'CallExpression[callee.type="Identifier"][callee.name="print"]'(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-print.js","sourceRoot":"","sources":["../../src/rules/no-print.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,GAAoB;IAChC;;;;;OAKG;IACH,MAAM,CAAC,OAAO;QACb,OAAO;YACN,+DAA+D,CAAC,IAAe;gBAC9E,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,QAAQ;oBACnB,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE;YACL,WAAW,EAAE,8CAA8C;YAC3D,WAAW,EAAE,KAAK;SAClB;QACD,QAAQ,EAAE;YACT,MAAM,EAAE,4BAA4B;SACpC;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KACf;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"no-print.js","sourceRoot":"","sources":["../../src/rules/no-print.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAoB;IAChC,MAAM,CAAC,OAAO;QACb,OAAO;YACN,+DAA+D,CAAC,IAAe;gBAC9E,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,QAAQ;oBACnB,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE;YACL,WAAW,EAAE,8CAA8C;YAC3D,WAAW,EAAE,KAAK;SAClB;QACD,QAAQ,EAAE;YACT,MAAM,EAAE,4BAA4B;SACpC;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KACf;CACD,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,27 +1,3 @@
1
1
  import type { Rule } from "eslint";
2
- /**
3
- * Bans shorthand variable names in favor of descriptive full names.
4
- *
5
- * Enforces:
6
- * - `plr` → `player` (or `localPlayer` for Players.LocalPlayer assignments)
7
- * - `args` → `parameters`
8
- * - `dt` → `deltaTime`
9
- * - `char` → `character` (except when used as property access)
10
- *
11
- * @example
12
- * // ❌ Reports
13
- * const plr = getPlayer();
14
- * const args = [1, 2, 3];
15
- * const dt = 0.016;
16
- * const char = getCharacter();
17
- *
18
- * // ✅ OK
19
- * const player = getPlayer();
20
- * const localPlayer = Players.LocalPlayer;
21
- * const parameters = [1, 2, 3];
22
- * const deltaTime = 0.016;
23
- * const character = getCharacter();
24
- * const model = entity.char; // property access is allowed
25
- */
26
2
  declare const noShorthandNames: Rule.RuleModule;
27
3
  export default noShorthandNames;
@@ -1,6 +1,9 @@
1
- /**
2
- * Default configuration values for the rule.
3
- */
1
+ import Type from "typebox";
2
+ import { Compile } from "typebox/compile";
3
+ const isRuleOptions = Compile(Type.Object({
4
+ allowPropertyAccess: Type.Optional(Type.Array(Type.String())),
5
+ shorthands: Type.Optional(Type.Record(Type.String(), Type.String())),
6
+ }));
4
7
  const DEFAULT_OPTIONS = {
5
8
  allowPropertyAccess: ["char"],
6
9
  shorthands: {
@@ -13,32 +16,9 @@ const DEFAULT_OPTIONS = {
13
16
  function isUnknownRecord(value) {
14
17
  return typeof value === "object" && value !== null;
15
18
  }
16
- function isStringRecord(value) {
17
- return isUnknownRecord(value) && Object.values(value).every((v) => typeof v === "string");
18
- }
19
- function isStringArray(value) {
20
- return Array.isArray(value) && value.every((entry) => typeof entry === "string");
21
- }
22
- /**
23
- * Escapes special regex characters in a string.
24
- *
25
- * @param str - The string to escape.
26
- * @returns The escaped string safe for use in regex.
27
- */
28
- function escapeRegex(str) {
29
- return str.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
30
- }
31
- /**
32
- * Type guard to check if an unknown value is valid RuleOptions.
33
- *
34
- * @param value - The value to check.
35
- * @returns True if the value is valid RuleOptions.
36
- */
37
- function isRuleOptions(value) {
38
- if (!isUnknownRecord(value))
39
- return false;
40
- return ((!("shorthands" in value) || isStringRecord(value.shorthands)) &&
41
- (!("allowPropertyAccess" in value) || isStringArray(value.allowPropertyAccess)));
19
+ const ESCAPE_REGEXP = /[.*+?^${}()|[\]\\]/g;
20
+ function escapeRegex(value) {
21
+ return value.replaceAll(ESCAPE_REGEXP, "\\$&");
42
22
  }
43
23
  function normalizeOptions(rawOptions) {
44
24
  const mergedShorthands = { ...DEFAULT_OPTIONS.shorthands };
@@ -47,8 +27,8 @@ function normalizeOptions(rawOptions) {
47
27
  mergedShorthands[key] = value;
48
28
  const shorthandsMap = new Map(Object.entries(mergedShorthands));
49
29
  const allowPropertyAccessSource = rawOptions?.allowPropertyAccess ?? DEFAULT_OPTIONS.allowPropertyAccess;
50
- // Build regex selector to only visit identifiers matching shorthand names
51
- const escapedKeys = Array.from(shorthandsMap.keys()).map((key) => escapeRegex(key));
30
+ // oxlint-disable-next-line no-array-callback-reference
31
+ const escapedKeys = Array.from(shorthandsMap.keys()).map(escapeRegex);
52
32
  const selector = `Identifier[name=/^(${escapedKeys.join("|")})$/]`;
53
33
  return {
54
34
  allowPropertyAccess: new Set(allowPropertyAccessSource),
@@ -56,67 +36,33 @@ function normalizeOptions(rawOptions) {
56
36
  shorthands: shorthandsMap,
57
37
  };
58
38
  }
59
- /**
60
- * Bans shorthand variable names in favor of descriptive full names.
61
- *
62
- * Enforces:
63
- * - `plr` → `player` (or `localPlayer` for Players.LocalPlayer assignments)
64
- * - `args` → `parameters`
65
- * - `dt` → `deltaTime`
66
- * - `char` → `character` (except when used as property access)
67
- *
68
- * @example
69
- * // ❌ Reports
70
- * const plr = getPlayer();
71
- * const args = [1, 2, 3];
72
- * const dt = 0.016;
73
- * const char = getCharacter();
74
- *
75
- * // ✅ OK
76
- * const player = getPlayer();
77
- * const localPlayer = Players.LocalPlayer;
78
- * const parameters = [1, 2, 3];
79
- * const deltaTime = 0.016;
80
- * const character = getCharacter();
81
- * const model = entity.char; // property access is allowed
82
- */
83
39
  const noShorthandNames = {
84
- /**
85
- * Creates the ESLint rule visitor.
86
- *
87
- * @param context - The ESLint rule context.
88
- * @returns The visitor object with AST node handlers.
89
- */
90
40
  create(context) {
91
- const validatedOptions = isRuleOptions(context.options[0]) ? context.options[0] : undefined;
92
- const normalized = normalizeOptions(validatedOptions);
93
- const { shorthands, allowPropertyAccess, selector } = normalized;
41
+ const validatedOptions = isRuleOptions.Check(context.options[0]) ? context.options[0] : undefined;
42
+ const { shorthands, allowPropertyAccess, selector } = normalizeOptions(validatedOptions);
94
43
  return {
95
44
  [selector](node) {
96
45
  const shorthandName = node.name;
97
46
  const replacement = shorthands.get(shorthandName);
98
- if (!replacement)
47
+ if (replacement === undefined || replacement === "")
99
48
  return;
100
- // Cache parent lookup
101
49
  const parent = node.parent;
102
- // Inline property access check
103
50
  if (allowPropertyAccess.has(shorthandName) &&
104
- parent &&
51
+ parent !== undefined &&
105
52
  isUnknownRecord(parent) &&
106
53
  parent.type === "MemberExpression" &&
107
54
  parent.property === node)
108
55
  return;
109
- // Special case: plr → localPlayer for Players.LocalPlayer
110
56
  if (shorthandName === "plr" && parent?.type === "VariableDeclarator" && parent.id === node) {
111
- const init = parent.init;
57
+ const { init } = parent;
112
58
  if (init &&
113
59
  isUnknownRecord(init) &&
114
60
  init.type === "MemberExpression" &&
115
- init.object &&
61
+ init.object !== undefined &&
116
62
  isUnknownRecord(init.object) &&
117
63
  init.object.type === "Identifier" &&
118
64
  init.object.name === "Players" &&
119
- init.property &&
65
+ init.property !== undefined &&
120
66
  isUnknownRecord(init.property) &&
121
67
  init.property.type === "Identifier" &&
122
68
  init.property.name === "LocalPlayer") {
@@ -1 +1 @@
1
- {"version":3,"file":"no-shorthand-names.js","sourceRoot":"","sources":["../../src/rules/no-shorthand-names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-shorthand-names.js","sourceRoot":"","sources":["../../src/rules/no-shorthand-names.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,3 @@
1
1
  import type { Rule } from "eslint";
2
- /**
3
- * Bans use of `warn()` function calls. Use `Log` instead.
4
- *
5
- * The `warn()` function is not wanted in this codebase and discouraged in favor of a proper
6
- * logging system like `Log`.
7
- *
8
- * @example
9
- * // ❌ Reports
10
- * warn("Warning");
11
- * warn(error);
12
- *
13
- * // ✅ OK
14
- * Log.warn("Warning");
15
- * Log.error(error);
16
- */
17
2
  declare const noWarn: Rule.RuleModule;
18
3
  export default noWarn;
@@ -1,25 +1,4 @@
1
- /**
2
- * Bans use of `warn()` function calls. Use `Log` instead.
3
- *
4
- * The `warn()` function is not wanted in this codebase and discouraged in favor of a proper
5
- * logging system like `Log`.
6
- *
7
- * @example
8
- * // ❌ Reports
9
- * warn("Warning");
10
- * warn(error);
11
- *
12
- * // ✅ OK
13
- * Log.warn("Warning");
14
- * Log.error(error);
15
- */
16
1
  const noWarn = {
17
- /**
18
- * Creates the ESLint rule visitor.
19
- *
20
- * @param context - The ESLint rule context.
21
- * @returns The visitor object with AST node handlers.
22
- */
23
2
  create(context) {
24
3
  return {
25
4
  'CallExpression[callee.type="Identifier"][callee.name="warn"]'(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"no-warn.js","sourceRoot":"","sources":["../../src/rules/no-warn.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,GAAoB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,OAAO;QACb,OAAO;YACN,8DAA8D,CAAC,IAAe;gBAC7E,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,QAAQ;oBACnB,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE;YACL,WAAW,EAAE,6CAA6C;YAC1D,WAAW,EAAE,KAAK;SAClB;QACD,QAAQ,EAAE;YACT,MAAM,EAAE,2BAA2B;SACnC;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KACf;CACD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"no-warn.js","sourceRoot":"","sources":["../../src/rules/no-warn.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAoB;IAC/B,MAAM,CAAC,OAAO;QACb,OAAO;YACN,8DAA8D,CAAC,IAAe;gBAC7E,OAAO,CAAC,MAAM,CAAC;oBACd,SAAS,EAAE,QAAQ;oBACnB,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE;YACL,WAAW,EAAE,6CAA6C;YAC1D,WAAW,EAAE,KAAK;SAClB;QACD,QAAQ,EAAE;YACT,MAAM,EAAE,2BAA2B;SACnC;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KACf;CACD,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -19,9 +19,8 @@ function isExpressionArgument(argument) {
19
19
  function extractKeypoint(element, descriptor) {
20
20
  if (element === null || element.type !== AST_NODE_TYPES.NewExpression)
21
21
  return undefined;
22
- if (element.callee.type !== AST_NODE_TYPES.Identifier || element.callee.name !== descriptor.keypointName) {
22
+ if (element.callee.type !== AST_NODE_TYPES.Identifier || element.callee.name !== descriptor.keypointName)
23
23
  return undefined;
24
- }
25
24
  if (element.arguments.length !== 2)
26
25
  return undefined;
27
26
  const [timeArgument, valueArgument] = element.arguments;
@@ -40,21 +39,19 @@ const docs = {
40
39
  };
41
40
  const preferSequenceOverloads = {
42
41
  create(context) {
43
- const sourceCode = context.getSourceCode();
42
+ const { sourceCode } = context;
44
43
  return {
45
44
  NewExpression(node) {
46
- const callee = node.callee;
45
+ const { callee } = node;
47
46
  if (!isSequenceIdentifier(callee))
48
47
  return;
49
48
  const descriptor = findDescriptor(callee.name);
50
- if (descriptor === undefined)
51
- return;
52
- if (node.arguments.length !== 1)
49
+ if (descriptor === undefined || node.arguments.length !== 1)
53
50
  return;
54
51
  const [argument] = node.arguments;
55
- if (argument === undefined || argument.type !== AST_NODE_TYPES.ArrayExpression)
56
- return;
57
- if (argument.elements.length !== 2)
52
+ if (argument === undefined ||
53
+ argument.type !== AST_NODE_TYPES.ArrayExpression ||
54
+ argument.elements.length !== 2)
58
55
  return;
59
56
  const firstElement = argument.elements[0] ?? null;
60
57
  const secondElement = argument.elements[1] ?? null;
@@ -70,9 +67,7 @@ const preferSequenceOverloads = {
70
67
  const normalizedSecondValue = secondValueText.trim();
71
68
  if (normalizedFirstValue === normalizedSecondValue) {
72
69
  context.report({
73
- data: {
74
- sequenceName: descriptor.sequenceName,
75
- },
70
+ data: { sequenceName: descriptor.sequenceName },
76
71
  fix: (fixer) => fixer.replaceText(node, `new ${descriptor.sequenceName}(${firstValueText})`),
77
72
  messageId: "preferSingleOverload",
78
73
  node,
@@ -80,9 +75,7 @@ const preferSequenceOverloads = {
80
75
  return;
81
76
  }
82
77
  context.report({
83
- data: {
84
- sequenceName: descriptor.sequenceName,
85
- },
78
+ data: { sequenceName: descriptor.sequenceName },
86
79
  fix: (fixer) => fixer.replaceText(node, `new ${descriptor.sequenceName}(${firstValueText}, ${secondValueText})`),
87
80
  messageId: "preferTwoPointOverload",
88
81
  node,
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-sequence-overloads.js","sourceRoot":"","sources":["../../src/rules/prefer-sequence-overloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-sequence-overloads.js","sourceRoot":"","sources":["../../src/rules/prefer-sequence-overloads.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,3 @@
1
1
  import type { Rule } from "eslint";
2
- /**
3
- * Detects `new UDim2(...)` calls that can be simplified to `UDim2.fromScale()` or `UDim2.fromOffset()`.
4
- *
5
- * @example
6
- * // ❌ Reports
7
- * new UDim2(1, 0, 1, 0);
8
- * new UDim2(0, 100, 0, 50);
9
- *
10
- * // ✅ OK
11
- * new UDim2(0, 0, 0, 0);
12
- * new UDim2(1, 2, 3, 4);
13
- * UDim2.fromScale(1, 1);
14
- * UDim2.fromOffset(100, 50);
15
- */
16
2
  declare const preferUDim2Shorthand: Rule.RuleModule;
17
3
  export default preferUDim2Shorthand;
@@ -1,61 +1,33 @@
1
- function isUnknownRecord(value) {
2
- return typeof value === "object" && value !== null;
3
- }
4
- function isNumericLiteralNode(value) {
5
- return isUnknownRecord(value) && value.type === "Literal" && "value" in value && typeof value.value === "number";
6
- }
1
+ import { TSESTree } from "@typescript-eslint/types";
2
+ import Type from "typebox";
3
+ import { Compile } from "typebox/compile";
4
+ const isNumericLiteralNode = Compile(Type.Object({
5
+ type: Type.Literal(TSESTree.AST_NODE_TYPES.Literal),
6
+ value: Type.Number(),
7
+ }));
8
+ const isCorrectParameters = Compile(Type.Tuple([isNumericLiteralNode, isNumericLiteralNode, isNumericLiteralNode, isNumericLiteralNode], {}));
7
9
  function collectNumericArguments(parameters) {
8
- if (parameters.length !== 4)
9
- return undefined;
10
- if (!isNumericLiteralNode(parameters[0]))
11
- return undefined;
12
- if (!isNumericLiteralNode(parameters[1]))
13
- return undefined;
14
- if (!isNumericLiteralNode(parameters[2]))
15
- return undefined;
16
- if (!isNumericLiteralNode(parameters[3]))
17
- return undefined;
18
- return {
19
- offsetX: parameters[1].value,
20
- offsetY: parameters[3].value,
21
- scaleX: parameters[0].value,
22
- scaleY: parameters[2].value,
23
- };
10
+ return isCorrectParameters.Check(parameters)
11
+ ? {
12
+ offsetX: parameters[1].value,
13
+ offsetY: parameters[3].value,
14
+ scaleX: parameters[0].value,
15
+ scaleY: parameters[2].value,
16
+ }
17
+ : undefined;
24
18
  }
25
- /**
26
- * Detects `new UDim2(...)` calls that can be simplified to `UDim2.fromScale()` or `UDim2.fromOffset()`.
27
- *
28
- * @example
29
- * // ❌ Reports
30
- * new UDim2(1, 0, 1, 0);
31
- * new UDim2(0, 100, 0, 50);
32
- *
33
- * // ✅ OK
34
- * new UDim2(0, 0, 0, 0);
35
- * new UDim2(1, 2, 3, 4);
36
- * UDim2.fromScale(1, 1);
37
- * UDim2.fromOffset(100, 50);
38
- */
39
19
  const preferUDim2Shorthand = {
40
- /**
41
- * Creates the ESLint rule visitor.
42
- *
43
- * @param context - The ESLint rule context.
44
- * @returns The visitor object with AST node handlers.
45
- */
46
20
  create(context) {
47
21
  return {
48
22
  NewExpression(node) {
49
- if (node.callee.type !== "Identifier" || node.callee.name !== "UDim2")
23
+ if (node.callee.type !== TSESTree.AST_NODE_TYPES.Identifier || node.callee.name !== "UDim2")
50
24
  return;
51
25
  const collected = collectNumericArguments(node.arguments);
52
26
  if (!collected)
53
27
  return;
54
28
  const { scaleX, offsetX, scaleY, offsetY } = collected;
55
- // Allow all zeros
56
29
  if (scaleX === 0 && offsetX === 0 && scaleY === 0 && offsetY === 0)
57
30
  return;
58
- // Check for fromScale pattern (offsets are zero)
59
31
  if (offsetX === 0 && offsetY === 0) {
60
32
  context.report({
61
33
  fix: (fixer) => fixer.replaceText(node, `UDim2.fromScale(${scaleX}, ${scaleY})`),
@@ -64,7 +36,6 @@ const preferUDim2Shorthand = {
64
36
  });
65
37
  return;
66
38
  }
67
- // Check for fromOffset pattern (scales are zero)
68
39
  if (scaleX === 0 && scaleY === 0) {
69
40
  context.report({
70
41
  fix: (fixer) => fixer.replaceText(node, `UDim2.fromOffset(${offsetX}, ${offsetY})`),
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-udim2-shorthand.js","sourceRoot":"","sources":["../../src/rules/prefer-udim2-shorthand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-udim2-shorthand.js","sourceRoot":"","sources":["../../src/rules/prefer-udim2-shorthand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,oBAAoB,GAAG,OAAO,CACnC,IAAI,CAAC,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;IACnD,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;CACpB,CAAC,CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,OAAO,CAClC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,EAAE,EAAE,CAAC,CACxG,CAAC;AASF,SAAS,uBAAuB,CAAC,UAAkC;IAClE,OAAO,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC;YACA,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;YAC5B,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;YAC5B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;YAC3B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;SAC3B;QACF,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,MAAM,oBAAoB,GAAoB;IAC7C,MAAM,CAAC,OAAO;QACb,OAAO;YACN,aAAa,CAAC,IAAI;gBACjB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO;gBAEpG,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS;oBAAE,OAAO;gBAEvB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;gBACvD,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;oBAAE,OAAO;gBAE3E,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,MAAM,CAAC;wBACd,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,MAAM,KAAK,MAAM,GAAG,CAAC;wBAChF,SAAS,EAAE,iBAAiB;wBAC5B,IAAI;qBACJ,CAAC,CAAC;oBACH,OAAO;gBACR,CAAC;gBAED,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACd,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAoB,OAAO,KAAK,OAAO,GAAG,CAAC;wBACnF,SAAS,EAAE,kBAAkB;wBAC7B,IAAI;qBACJ,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;SACD,CAAC;IACH,CAAC;IACD,IAAI,EAAE;QACL,IAAI,EAAE;YACL,WAAW,EACV,0GAA0G;YAC3G,WAAW,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACT,gBAAgB,EACf,8GAA8G;YAC/G,eAAe,EACd,6GAA6G;SAC9G;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KAClB;CACD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}