@pobammer-ts/eslint-cease-nonsense-rules 1.12.0 → 1.14.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.
package/README.md CHANGED
@@ -50,6 +50,7 @@ export default [
50
50
  "cease-nonsense/no-identity-map": "error",
51
51
  "cease-nonsense/no-instance-methods-without-this": "error",
52
52
  "cease-nonsense/no-print": "error",
53
+ "cease-nonsense/prefer-enum-item": "error",
53
54
  "cease-nonsense/no-shorthand-names": "error",
54
55
  "cease-nonsense/no-useless-use-spring": "error",
55
56
  "cease-nonsense/no-warn": "error",
@@ -137,6 +138,40 @@ type UserConfig = Ianitor.Static<typeof userConfigValidator>;
137
138
  const config = userConfigValidator.check(getUserConfig());
138
139
  ```
139
140
 
141
+ #### `prefer-enum-item`
142
+
143
+ Enforce using EnumItem values instead of string or number literals when the type expects an EnumItem. Provides type safety and avoids magic values in roblox-ts code.
144
+
145
+ **Configuration**
146
+
147
+ ```typescript
148
+ {
149
+ "cease-nonsense/prefer-enum-item": ["error", {
150
+ "fixNumericToValue": false // When true, numbers fix to Enum.X.Y.Value
151
+ }]
152
+ }
153
+ ```
154
+
155
+ **❌ Bad**
156
+
157
+ ```typescript
158
+ // Magic string
159
+ <uiflexitem FlexMode="Fill" />
160
+
161
+ // Magic number
162
+ const props: ImageProps = { ScaleType: 1 };
163
+ ```
164
+
165
+ **✅ Good**
166
+
167
+ ```typescript
168
+ // Explicit enum
169
+ <uiflexitem FlexMode={Enum.UIFlexMode.Fill} />
170
+
171
+ // Explicit enum in object
172
+ const props: ImageProps = { ScaleType: Enum.ScaleType.Slice };
173
+ ```
174
+
140
175
  ### React
141
176
 
142
177
  #### `ban-react-fc`
@@ -1,5 +1,5 @@
1
1
  {
2
- "commit": "0c941c22d06cca23db96491078c85d1b80fb0191",
3
- "time": "2026-01-01T05:26:31.863Z",
4
- "version": "1.12.0"
2
+ "commit": "7ea5fb96f7f285cba29e403f671fabf6f7df04d8",
3
+ "time": "2026-01-10T01:25:34.841Z",
4
+ "version": "1.14.0"
5
5
  }
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export type { NoIdentityMapOptions } from "./rules/no-identity-map";
7
7
  export type { NoInstanceMethodsOptions } from "./rules/no-instance-methods-without-this";
8
8
  export type { NoShorthandOptions } from "./rules/no-shorthand-names";
9
9
  export type { NoUselessUseSpringOptions } from "./rules/no-useless-use-spring";
10
+ export type { PreferEnumItemOptions } from "./rules/prefer-enum-item";
10
11
  export type { EffectFunctionOptions, EnvironmentMode, HookConfiguration } from "./rules/require-named-effect-functions";
11
12
  export type { PairConfiguration, RequirePairedCallsOptions } from "./rules/require-paired-calls";
12
13
  export type { ReactKeysOptions } from "./rules/require-react-component-keys";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AA+B9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACxH,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACjG,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAC3F,YAAY,EAAE,SAAS,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,sCAAsC,EACtC,sBAAsB,EACtB,+BAA+B,EAC/B,qCAAqC,EACrC,sCAAsC,EACtC,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAwC1D;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBP,CAAC;AAEX,KAAK,YAAY,GAAG,OAAO,WAAW,CAAC;AAEvC,UAAU,MAAM;IACf,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;KAAE,CAAC;CACzD;AAED,QAAA,MAAM,MAAM,EAAE,MAGJ,CAAC;AAEX,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAgC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACxH,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACjG,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAC3F,YAAY,EAAE,SAAS,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,sCAAsC,EACtC,sBAAsB,EACtB,+BAA+B,EAC/B,qCAAqC,EACrC,sCAAsC,EACtC,8BAA8B,EAC9B,wBAAwB,GACxB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAyC1D;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBP,CAAC;AAEX,KAAK,YAAY,GAAG,OAAO,WAAW,CAAC;AAEvC,UAAU,MAAM;IACf,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;KAAE,CAAC;CACzD;AAED,QAAA,MAAM,MAAM,EAAE,MAGJ,CAAC;AAEX,eAAe,MAAM,CAAC"}