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 11import { mergeBanTypes } from "./mergers/ban-types" ;
22import { mergeIndent } from "./mergers/indent" ;
3+ import { mergeNoMemberDelimiterStyle } from "./mergers/member-delimiter-style" ;
34import { mergeNoCaller } from "./mergers/no-caller" ;
45import { mergeNoEval } from "./mergers/no-eval" ;
56import { mergeNoUnnecessaryTypeAssertion } from "./mergers/no-unnecessary-type-assertion" ;
67
78export const mergers = new Map ( [
89 [ "@typescript-eslint/ban-types" , mergeBanTypes ] ,
910 [ "@typescript-eslint/indent" , mergeIndent ] ,
11+ [ "@typescript-eslint/member-delimiter-style" , mergeNoMemberDelimiterStyle ] ,
1012 [ "@typescript-eslint/no-unnecessary-type-assertion" , mergeNoUnnecessaryTypeAssertion ] ,
1113 [ "no-caller" , mergeNoCaller ] ,
1214 [ "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