File tree 3 files changed +88
-8
lines changed
3 files changed +88
-8
lines changed Original file line number Diff line number Diff line change @@ -210,7 +210,10 @@ export let sortObjectTypeElements = <MessageIds extends string>({
210
210
211
211
let formattedMembers : SortObjectTypesSortingNode [ ] [ ] = elements . reduce (
212
212
( accumulator : SortObjectTypesSortingNode [ ] [ ] , typeElement ) => {
213
- if ( typeElement . type === 'TSCallSignatureDeclaration' ) {
213
+ if (
214
+ typeElement . type === 'TSCallSignatureDeclaration' ||
215
+ typeElement . type === 'TSConstructSignatureDeclaration'
216
+ ) {
214
217
accumulator . push ( [ ] )
215
218
return accumulator
216
219
}
@@ -240,10 +243,8 @@ export let sortObjectTypeElements = <MessageIds extends string>({
240
243
name = formatName (
241
244
sourceCode . text . slice ( typeElement . range . at ( 0 ) , endIndex ) ,
242
245
)
243
- } else if (
244
- typeElement . type === 'TSMethodSignature' &&
245
- 'name' in typeElement . key
246
- ) {
246
+ } else if ( 'name' in typeElement . key ) {
247
+ // TSMethodSignature
247
248
; ( { name } = typeElement . key )
248
249
/* v8 ignore next 8 - Unsure if we can reach it */
249
250
} else {
Original file line number Diff line number Diff line change @@ -477,7 +477,7 @@ describe(ruleName, () => {
477
477
)
478
478
479
479
ruleTester . run (
480
- `${ ruleName } (${ type } ): not sorts call signature declarations` ,
480
+ `${ ruleName } (${ type } ): does not sort call signature declarations` ,
481
481
rule ,
482
482
{
483
483
valid : [
@@ -500,6 +500,34 @@ describe(ruleName, () => {
500
500
} ,
501
501
)
502
502
503
+ ruleTester . run (
504
+ `${ ruleName } (${ type } ): does not sort constructor declarations` ,
505
+ rule ,
506
+ {
507
+ valid : [
508
+ {
509
+ code : dedent `
510
+ interface Interface {
511
+ new (value: number | string): number;
512
+ new (value: number): unknown;
513
+ }
514
+ ` ,
515
+ options : [ options ] ,
516
+ } ,
517
+ {
518
+ code : dedent `
519
+ interface Interface {
520
+ new (value: number): unknown;
521
+ new (value: number | string): number;
522
+ }
523
+ ` ,
524
+ options : [ options ] ,
525
+ } ,
526
+ ] ,
527
+ invalid : [ ] ,
528
+ } ,
529
+ )
530
+
503
531
ruleTester . run (
504
532
`${ ruleName } (${ type } ): sorts complex predefined groups` ,
505
533
rule ,
@@ -2462,7 +2490,7 @@ describe(ruleName, () => {
2462
2490
)
2463
2491
2464
2492
ruleTester . run (
2465
- `${ ruleName } (${ type } ): not sorts call signature declarations` ,
2493
+ `${ ruleName } (${ type } ): does not sort call signature declarations` ,
2466
2494
rule ,
2467
2495
{
2468
2496
valid : [
@@ -3239,7 +3267,7 @@ describe(ruleName, () => {
3239
3267
)
3240
3268
3241
3269
ruleTester . run (
3242
- `${ ruleName } (${ type } ): not sorts call signature declarations` ,
3270
+ `${ ruleName } (${ type } ): does not sort call signature declarations` ,
3243
3271
rule ,
3244
3272
{
3245
3273
valid : [
Original file line number Diff line number Diff line change @@ -1834,6 +1834,57 @@ describe(ruleName, () => {
1834
1834
valid : [ ] ,
1835
1835
} ,
1836
1836
)
1837
+ ruleTester . run (
1838
+ `${ ruleName } (${ type } ): does not sort call signature declarations` ,
1839
+ rule ,
1840
+ {
1841
+ valid : [
1842
+ {
1843
+ code : dedent `
1844
+ type Type = {
1845
+ <Parameters extends Record<string, number | string>>(
1846
+ input: AFunction<[Parameters], string>
1847
+ ): Alternatives<Parameters>
1848
+ <A extends CountA>(input: Input): AFunction<
1849
+ [number],
1850
+ A[keyof A]
1851
+ >
1852
+ }
1853
+ ` ,
1854
+ options : [ options ] ,
1855
+ } ,
1856
+ ] ,
1857
+ invalid : [ ] ,
1858
+ } ,
1859
+ )
1860
+
1861
+ ruleTester . run (
1862
+ `${ ruleName } (${ type } ): does not sort constructor declarations` ,
1863
+ rule ,
1864
+ {
1865
+ valid : [
1866
+ {
1867
+ code : dedent `
1868
+ type Type = {
1869
+ new (value: number | string): number;
1870
+ new (value: number): unknown;
1871
+ }
1872
+ ` ,
1873
+ options : [ options ] ,
1874
+ } ,
1875
+ {
1876
+ code : dedent `
1877
+ type Type = {
1878
+ new (value: number): unknown;
1879
+ new (value: number | string): number;
1880
+ }
1881
+ ` ,
1882
+ options : [ options ] ,
1883
+ } ,
1884
+ ] ,
1885
+ invalid : [ ] ,
1886
+ } ,
1887
+ )
1837
1888
} )
1838
1889
1839
1890
describe ( `${ ruleName } : sorting by natural order` , ( ) => {
You can’t perform that action at this time.
0 commit comments