eslint-plugin-ts-std-forge 0.1.8 → 0.1.10

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 (33) hide show
  1. package/dist/rule-types.d.mts +3 -2
  2. package/dist/rule-types.d.mts.map +1 -1
  3. package/dist/rule-types.mjs.map +1 -1
  4. package/dist/rules/ast-utils.d.mts +8 -5
  5. package/dist/rules/ast-utils.d.mts.map +1 -1
  6. package/dist/rules/ast-utils.mjs +14 -13
  7. package/dist/rules/ast-utils.mjs.map +1 -1
  8. package/dist/rules/prefer-is-non-null-object.d.mts.map +1 -1
  9. package/dist/rules/prefer-is-non-null-object.mjs +113 -38
  10. package/dist/rules/prefer-is-non-null-object.mjs.map +1 -1
  11. package/dist/rules/prefer-is-record-and-has-key.d.mts.map +1 -1
  12. package/dist/rules/prefer-is-record-and-has-key.mjs +95 -34
  13. package/dist/rules/prefer-is-record-and-has-key.mjs.map +1 -1
  14. package/dist/rules/prefer-safe-array-length-guard.d.mts.map +1 -1
  15. package/dist/rules/prefer-safe-array-length-guard.mjs +4 -10
  16. package/dist/rules/prefer-safe-array-length-guard.mjs.map +1 -1
  17. package/dist/rules/prefer-safe-number-parse-integer.mjs +4 -3
  18. package/dist/rules/prefer-safe-number-parse-integer.mjs.map +1 -1
  19. package/dist/rules/prefer-safe-number-parse.mjs +4 -3
  20. package/dist/rules/prefer-safe-number-parse.mjs.map +1 -1
  21. package/package.json +10 -10
  22. package/src/rule-types.mts +3 -2
  23. package/src/rules/ast-utils.mts +20 -21
  24. package/src/rules/prefer-is-non-null-object.mts +152 -49
  25. package/src/rules/prefer-is-non-null-object.test.mts +107 -0
  26. package/src/rules/prefer-is-record-and-has-key.mts +141 -53
  27. package/src/rules/prefer-is-record-and-has-key.test.mts +116 -29
  28. package/src/rules/prefer-safe-array-length-guard.mts +11 -16
  29. package/src/rules/prefer-safe-array-length-guard.test.mts +19 -5
  30. package/src/rules/prefer-safe-number-parse-integer.mts +8 -8
  31. package/src/rules/prefer-safe-number-parse-integer.test.mts +19 -5
  32. package/src/rules/prefer-safe-number-parse.mts +8 -8
  33. package/src/rules/prefer-safe-number-parse.test.mts +19 -5
@@ -132,6 +132,20 @@ describe('prefer-safe-number-parse through type wrappers', () => {
132
132
  const n = parseFloat(x! as string);
133
133
  `,
134
134
  },
135
+ {
136
+ name: 'ignores a string widened by `as` to a type Number() reads otherwise',
137
+ code: dedent`
138
+ declare const s: string;
139
+ const n = Number(s as string | boolean);
140
+ `,
141
+ },
142
+ {
143
+ name: 'ignores `!` on an optional string, which leaves undefined in place',
144
+ code: dedent`
145
+ declare const s: string | undefined;
146
+ const n = parseFloat(s!);
147
+ `,
148
+ },
135
149
  ],
136
150
  invalid: [
137
151
  {
@@ -166,15 +180,15 @@ describe('prefer-safe-number-parse through type wrappers', () => {
166
180
  ],
167
181
  },
168
182
  {
169
- name: 'reads `!` on an optional string as the string it asserts',
183
+ name: 'rewrites a string that is a string at every layer',
170
184
  code: dedent`
171
- declare const s: string | undefined;
172
- const n = parseFloat(s!);
185
+ declare const s: string;
186
+ const n = parseFloat(s! as string);
173
187
  `,
174
188
  output: dedent`
175
189
  import { Result, SafeNumber } from 'ts-std-forge';
176
- declare const s: string | undefined;
177
- const n = Result.unwrapOkOr(SafeNumber.parse(s!), Number.NaN);
190
+ declare const s: string;
191
+ const n = Result.unwrapOkOr(SafeNumber.parse(s! as string), Number.NaN);
178
192
  `,
179
193
  errors: [{ messageId: 'useSafeNumberParse' }],
180
194
  },