Skip to content

Commit

Permalink
feat(eslint-plugin): deprecate no-loss-of-precision extension rule (#…
Browse files Browse the repository at this point in the history
…8832)

* feat(eslint-plugin): deprecate no-loss-of-precision extension rule

* baseRule.create, nice Kirk
  • Loading branch information
JoshuaKGoldberg committed Apr 22, 2024
1 parent c0c91e0 commit 5eba5ef
Show file tree
Hide file tree
Showing 12 changed files with 8 additions and 38 deletions.
8 changes: 6 additions & 2 deletions packages/eslint-plugin/docs/rules/no-loss-of-precision.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,9 @@ import TabItem from '@theme/TabItem';
>
> See **https://typescript-eslint.io/rules/no-loss-of-precision** for documentation.
This rule extends the base [`eslint/no-loss-of-precision`](https://eslint.org/docs/rules/no-loss-of-precision) rule.
It adds support for [numeric separators](https://github.com/tc39/proposal-numeric-separator).
:::danger Deprecated

This rule has been deprecated because the base [`eslint/no-loss-of-precision`](https://eslint.org/docs/rules/no-loss-of-precision) rule added support for [numeric separators](https://github.com/tc39/proposal-numeric-separator).
There is no longer any need to use this extension rule.

:::
2 changes: 0 additions & 2 deletions packages/eslint-plugin/src/configs/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@ export = {
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loop-func': 'off',
'@typescript-eslint/no-loop-func': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'no-magic-numbers': 'off',
'@typescript-eslint/no-magic-numbers': 'error',
'@typescript-eslint/no-meaningless-void-operator': 'error',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ export = {
'@typescript-eslint/no-for-in-array': 'error',
'no-implied-eval': 'off',
'@typescript-eslint/no-implied-eval': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-misused-promises': 'error',
'@typescript-eslint/no-namespace': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/eslint-plugin/src/configs/recommended.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ export = {
'@typescript-eslint/no-duplicate-enum-values': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/eslint-plugin/src/configs/strict-type-checked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ export = {
'no-implied-eval': 'off',
'@typescript-eslint/no-implied-eval': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-meaningless-void-operator': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-misused-promises': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/eslint-plugin/src/configs/strict.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ export = {
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'@typescript-eslint/no-extraneous-class': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
Expand Down
18 changes: 2 additions & 16 deletions packages/eslint-plugin/src/rules/no-loss-of-precision.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import type { TSESTree } from '@typescript-eslint/utils';

import type {
InferMessageIdsTypeFromRule,
InferOptionsTypeFromRule,
Expand All @@ -16,9 +14,9 @@ export default createRule<Options, MessageIds>({
name: 'no-loss-of-precision',
meta: {
type: 'problem',
deprecated: true,
docs: {
description: 'Disallow literal numbers that lose precision',
recommended: 'recommended',
extendsBaseRule: true,
},
hasSuggestions: baseRule.meta.hasSuggestions,
Expand All @@ -27,18 +25,6 @@ export default createRule<Options, MessageIds>({
},
defaultOptions: [],
create(context) {
const rules = baseRule.create(context);

function isSeparatedNumeric(node: TSESTree.Literal): boolean {
return typeof node.value === 'number' && node.raw.includes('_');
}
return {
Literal(node: TSESTree.Literal): void {
rules.Literal({
...node,
raw: isSeparatedNumeric(node) ? node.raw.replace(/_/g, '') : node.raw,
} as never);
},
};
return baseRule.create(context);
},
});
2 changes: 0 additions & 2 deletions packages/typescript-eslint/src/configs/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ export default (
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loop-func': 'off',
'@typescript-eslint/no-loop-func': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'no-magic-numbers': 'off',
'@typescript-eslint/no-magic-numbers': 'error',
'@typescript-eslint/no-meaningless-void-operator': 'error',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ export default (
'@typescript-eslint/no-for-in-array': 'error',
'no-implied-eval': 'off',
'@typescript-eslint/no-implied-eval': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-misused-promises': 'error',
'@typescript-eslint/no-namespace': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/typescript-eslint/src/configs/recommended.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ export default (
'@typescript-eslint/no-duplicate-enum-values': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/typescript-eslint/src/configs/strict-type-checked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ export default (
'no-implied-eval': 'off',
'@typescript-eslint/no-implied-eval': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-meaningless-void-operator': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-misused-promises': 'error',
Expand Down
2 changes: 0 additions & 2 deletions packages/typescript-eslint/src/configs/strict.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ export default (
'@typescript-eslint/no-extra-non-null-assertion': 'error',
'@typescript-eslint/no-extraneous-class': 'error',
'@typescript-eslint/no-invalid-void-type': 'error',
'no-loss-of-precision': 'off',
'@typescript-eslint/no-loss-of-precision': 'error',
'@typescript-eslint/no-misused-new': 'error',
'@typescript-eslint/no-namespace': 'error',
'@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',
Expand Down

0 comments on commit 5eba5ef

Please sign in to comment.