@@ -10,16 +10,30 @@ export type FirstLetterLowerCase<T extends string> = T extends `${infer First}${
10
10
? `${Lowercase < First > } ${Rest } `
11
11
: T ;
12
12
13
+ const isEmpty = ( args ?: string ) : args is '' | undefined => args === '' || args == null ;
14
+
13
15
export const firstLetterLowerCase = < T extends string > ( str : T ) =>
14
16
`${ str . charAt ( 0 ) . toLowerCase ( ) } ${ str . slice ( 1 ) } ` as FirstLetterLowerCase < T > ;
15
17
16
- export const variable = < T extends ReadonlyArray < string > > ( _template : TemplateStringsArray , ...args : T ) =>
17
- args . reduce ( ( prev , cur , idx ) => {
18
- return idx === 0 ? firstLetterLowerCase ( cur ) : `${ prev } ${ cur } ` ;
19
- } , '' ) as T extends [ infer First extends string , ...infer Rest extends ReadonlyArray < string > ]
18
+ export const variable = < T extends ReadonlyArray < string > > ( _template : TemplateStringsArray , ...args : T ) => {
19
+ return ( args . reduce ( ( prev , cur , idx ) => {
20
+ if ( idx !== 0 ) {
21
+ return `${ prev } ${ _template [ idx ] } ${ cur } ` ;
22
+ }
23
+ const prefix = _template [ idx ] ;
24
+
25
+ if ( isEmpty ( prefix ) ) {
26
+ return `${ prev } ${ firstLetterLowerCase ( cur ) } ` ;
27
+ }
28
+
29
+ return `${ prev } ${ firstLetterLowerCase ( prefix ) } ${ cur } ` ;
30
+ } , '' ) + _template [ args . length ] ) as T extends [
31
+ infer First extends string ,
32
+ ...infer Rest extends ReadonlyArray < string > ,
33
+ ]
20
34
? MergeString < [ FirstLetterLowerCase < First > , ...Rest ] >
21
35
: MergeString < T > ;
22
-
36
+ } ;
23
37
/**
24
38
* @description if you modify this properties, you should upgrade the minor version because it will be a break changes
25
39
*/
@@ -51,6 +65,7 @@ const 처리결과 = `${처리}Result`;
51
65
const 처리일 = `${ 처리 } ${ 일자 } ` ;
52
66
const 회부일 = `Submit${ 일자 } ` ;
53
67
const 상정일 = `Present${ 일자 } ` ;
68
+
54
69
export const translatedVariableDictionary = {
55
70
국회의원코드 : variable `${ 국회의원 } ${ 코드 } ` ,
56
71
국회의원명 : variable `${ 국회의원 } ${ 명 } ` ,
0 commit comments