File tree Expand file tree Collapse file tree 3 files changed +121
-0
lines changed Expand file tree Collapse file tree 3 files changed +121
-0
lines changed Original file line number Diff line number Diff line change 1
1
import { mergeBanTypes } from "./mergers/ban-types" ;
2
2
import { mergeIndent } from "./mergers/indent" ;
3
+ import { mergeNoMemberDelimiterStyle } from "./mergers/member-delimiter-style" ;
3
4
import { mergeNoCaller } from "./mergers/no-caller" ;
4
5
import { mergeNoEval } from "./mergers/no-eval" ;
5
6
import { mergeNoUnnecessaryTypeAssertion } from "./mergers/no-unnecessary-type-assertion" ;
6
7
7
8
export const mergers = new Map ( [
8
9
[ "@typescript-eslint/ban-types" , mergeBanTypes ] ,
9
10
[ "@typescript-eslint/indent" , mergeIndent ] ,
11
+ [ "@typescript-eslint/member-delimiter-style" , mergeNoMemberDelimiterStyle ] ,
10
12
[ "@typescript-eslint/no-unnecessary-type-assertion" , mergeNoUnnecessaryTypeAssertion ] ,
11
13
[ "no-caller" , mergeNoCaller ] ,
12
14
[ "no-eval" , mergeNoEval ] ,
Original file line number Diff line number Diff line change
1
+ import { RuleMerger } from "../merger" ;
2
+
3
+ export const mergeNoMemberDelimiterStyle : RuleMerger = ( existingOptions , newOptions ) => {
4
+ if ( existingOptions === undefined && newOptions === undefined ) {
5
+ return [ ] ;
6
+ }
7
+
8
+ return [ merge ( ( existingOptions || [ ] ) [ 0 ] || { } , ( newOptions || [ ] ) [ 0 ] || { } ) ] ;
9
+ } ;
10
+
11
+ const merge = ( ...objs : Record < string , any > [ ] ) =>
12
+ [ ...objs ] . reduce (
13
+ ( acc , obj ) => ( {
14
+ ...acc ,
15
+ ...Object . keys ( obj ) . reduce ( ( _ , k ) => {
16
+ acc [ k ] = obj [ k ] ;
17
+ return acc ;
18
+ } , { } ) ,
19
+ } ) ,
20
+ { } ,
21
+ ) ;
Original file line number Diff line number Diff line change
1
+ import { mergeNoMemberDelimiterStyle } from "../member-delimiter-style" ;
2
+
3
+ describe ( mergeNoMemberDelimiterStyle , ( ) => {
4
+ test ( "neither options existing" , ( ) => {
5
+ const result = mergeNoMemberDelimiterStyle ( undefined , undefined ) ;
6
+
7
+ expect ( result ) . toEqual ( [ ] ) ;
8
+ } ) ;
9
+
10
+ test ( "new object config existing" , ( ) => {
11
+ const result = mergeNoMemberDelimiterStyle ( undefined , [
12
+ {
13
+ multiline : {
14
+ delimiter : "semi" ,
15
+ requireLast : true ,
16
+ } ,
17
+ singleline : {
18
+ delimiter : "semi" ,
19
+ requireLast : false ,
20
+ } ,
21
+ } ,
22
+ ] ) ;
23
+
24
+ expect ( result ) . toEqual ( [
25
+ {
26
+ multiline : {
27
+ delimiter : "semi" ,
28
+ requireLast : true ,
29
+ } ,
30
+ singleline : {
31
+ delimiter : "semi" ,
32
+ requireLast : false ,
33
+ } ,
34
+ } ,
35
+ ] ) ;
36
+ } ) ;
37
+
38
+ test ( "original object config existing" , ( ) => {
39
+ const result = mergeNoMemberDelimiterStyle (
40
+ [
41
+ {
42
+ multiline : {
43
+ delimiter : "semi" ,
44
+ requireLast : true ,
45
+ } ,
46
+ } ,
47
+ ] ,
48
+ undefined ,
49
+ ) ;
50
+
51
+ expect ( result ) . toEqual ( [
52
+ {
53
+ multiline : {
54
+ delimiter : "semi" ,
55
+ requireLast : true ,
56
+ } ,
57
+ } ,
58
+ ] ) ;
59
+ } ) ;
60
+
61
+ test ( "both object config existing" , ( ) => {
62
+ const result = mergeNoMemberDelimiterStyle (
63
+ [
64
+ {
65
+ singleline : {
66
+ delimiter : "semi" ,
67
+ requireLast : false ,
68
+ } ,
69
+ } ,
70
+ ] ,
71
+ [
72
+ {
73
+ singleline : {
74
+ delimiter : "semi" ,
75
+ requireLast : false ,
76
+ } ,
77
+ multiline : {
78
+ delimiter : "semi" ,
79
+ requireLast : true ,
80
+ } ,
81
+ } ,
82
+ ] ,
83
+ ) ;
84
+
85
+ expect ( result ) . toEqual ( [
86
+ {
87
+ multiline : {
88
+ delimiter : "semi" ,
89
+ requireLast : true ,
90
+ } ,
91
+ singleline : {
92
+ delimiter : "semi" ,
93
+ requireLast : false ,
94
+ } ,
95
+ } ,
96
+ ] ) ;
97
+ } ) ;
98
+ } ) ;
You can’t perform that action at this time.
0 commit comments