Skip to content

Commit cdb95ba

Browse files
chore: adopt new deprecated: DeprecatedInfo meta rule option (#378)
Co-authored-by: JounQin <admin@1stg.me>
1 parent 924b14f commit cdb95ba

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

.changeset/grumpy-ligers-destroy.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-import-x": patch
3+
---
4+
5+
chore: adopt new `deprecated: DeprecatedInfo` meta rule option

src/rules/imports-first.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createRule } from '../utils/index.js'
1+
import { createRule, docsUrl } from '../utils/index.js'
22

33
import first from './first.js'
44

@@ -7,7 +7,17 @@ export default createRule({
77
name: 'imports-first',
88
meta: {
99
...first.meta,
10-
deprecated: true,
10+
deprecated: {
11+
message: 'Replaced by `import-x/first`.',
12+
url: 'https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md#changed-24',
13+
deprecatedSince: '2.0.0',
14+
replacedBy: [
15+
{
16+
message: 'Replaced by `import-x/first`.',
17+
rule: { name: 'first', url: docsUrl('first') },
18+
},
19+
],
20+
},
1121
docs: {
1222
category: 'Style guide',
1323
description: 'Replaced by `import-x/first`.',

test/package.spec.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,27 @@ describe('package', () => {
6262
})
6363

6464
it('marks deprecated rules in their metadata', () => {
65-
expect(module.rules!['imports-first'].meta.deprecated).toBe(true)
65+
expect(module.rules!['imports-first'].meta.deprecated).toBeDefined()
6666
expect(module.rules!.first.meta.deprecated).not.toBe(true)
6767
})
68+
69+
it('provides information about deprecated rules', () => {
70+
expect(module.rules!['imports-first'].meta).not.toHaveProperty('replacedBy')
71+
expect(module.rules!['imports-first'].meta.deprecated).toEqual(
72+
expect.objectContaining<TSESLint.DeprecatedInfo>({
73+
message: expect.any(String),
74+
url: expect.any(String),
75+
deprecatedSince: expect.any(String),
76+
replacedBy: [
77+
{
78+
message: expect.any(String),
79+
rule: {
80+
name: expect.any(String),
81+
url: expect.any(String),
82+
},
83+
},
84+
],
85+
}),
86+
)
87+
})
6888
})

0 commit comments

Comments
 (0)