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.
- package/dist/rule-types.d.mts +3 -2
- package/dist/rule-types.d.mts.map +1 -1
- package/dist/rule-types.mjs.map +1 -1
- package/dist/rules/ast-utils.d.mts +8 -5
- package/dist/rules/ast-utils.d.mts.map +1 -1
- package/dist/rules/ast-utils.mjs +14 -13
- package/dist/rules/ast-utils.mjs.map +1 -1
- package/dist/rules/prefer-is-non-null-object.d.mts.map +1 -1
- package/dist/rules/prefer-is-non-null-object.mjs +113 -38
- package/dist/rules/prefer-is-non-null-object.mjs.map +1 -1
- package/dist/rules/prefer-is-record-and-has-key.d.mts.map +1 -1
- package/dist/rules/prefer-is-record-and-has-key.mjs +95 -34
- package/dist/rules/prefer-is-record-and-has-key.mjs.map +1 -1
- package/dist/rules/prefer-safe-array-length-guard.d.mts.map +1 -1
- package/dist/rules/prefer-safe-array-length-guard.mjs +4 -10
- package/dist/rules/prefer-safe-array-length-guard.mjs.map +1 -1
- package/dist/rules/prefer-safe-number-parse-integer.mjs +4 -3
- package/dist/rules/prefer-safe-number-parse-integer.mjs.map +1 -1
- package/dist/rules/prefer-safe-number-parse.mjs +4 -3
- package/dist/rules/prefer-safe-number-parse.mjs.map +1 -1
- package/package.json +10 -10
- package/src/rule-types.mts +3 -2
- package/src/rules/ast-utils.mts +20 -21
- package/src/rules/prefer-is-non-null-object.mts +152 -49
- package/src/rules/prefer-is-non-null-object.test.mts +107 -0
- package/src/rules/prefer-is-record-and-has-key.mts +141 -53
- package/src/rules/prefer-is-record-and-has-key.test.mts +116 -29
- package/src/rules/prefer-safe-array-length-guard.mts +11 -16
- package/src/rules/prefer-safe-array-length-guard.test.mts +19 -5
- package/src/rules/prefer-safe-number-parse-integer.mts +8 -8
- package/src/rules/prefer-safe-number-parse-integer.test.mts +19 -5
- package/src/rules/prefer-safe-number-parse.mts +8 -8
- 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: '
|
|
183
|
+
name: 'rewrites a string that is a string at every layer',
|
|
170
184
|
code: dedent`
|
|
171
|
-
declare const s: string
|
|
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
|
|
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
|
},
|