@@ -6,51 +6,93 @@ export default async (
66 {
77 regions,
88 defaultRegion,
9- } : { regions : Record < string , layer_region_config > ; defaultRegion : string } ,
9+ format,
10+ } : {
11+ regions : Record < string , layer_region_config > ;
12+ defaultRegion : string ;
13+ format : string ;
14+ } ,
1015 vars : Record < string , unknown > ,
1116 _ : enriched_layer_config ,
1217) => {
18+ const defaultVars = {
19+ region : '' ,
20+ is_default_outputs : false ,
21+ is_outputs_file : false ,
22+ is_default_region : false ,
23+ is_terraform_file : false ,
24+ is_data_file : false ,
25+ is_locals_file : false ,
26+ is_variables_file : false ,
27+ is_providers_file : false ,
28+ is_main : false ,
29+ is_default_main : false ,
30+ is_main_file : false ,
31+ is_sub : false ,
32+ is_default_sub : false ,
33+ is_sub_file : false ,
34+ extra_providers : [ ] ,
35+ psuffix : '' ,
36+ rsuffix : '' ,
37+ } ;
38+ vars = { ...vars , ...defaultVars } ;
1339 return [
14- [ `terraform.tf` , replace ( s , { ...vars , is_terraform_file : true } ) ] ,
15- [ `data.tf` , replace ( s , { ...vars , is_data_file : true } ) ] ,
16- [ `locals.tf` , replace ( s , { ...vars , is_locals_file : true } ) ] ,
17- [ `variables.tf` , replace ( s , { ...vars , is_variables_file : true } ) ] ,
40+ [
41+ `terraform.tf` ,
42+ replace ( s , { ...vars , is_terraform_file : true } , { format} ) ,
43+ ] ,
44+ [ `data.tf` , replace ( s , { ...vars , is_data_file : true } , { format} ) ] ,
45+ [ `locals.tf` , replace ( s , { ...vars , is_locals_file : true } , { format} ) ] ,
46+ [
47+ `variables.tf` ,
48+ replace ( s , { ...vars , is_variables_file : true } , { format} ) ,
49+ ] ,
1850 [
1951 `providers.tf` ,
20- replace ( s , {
21- ...vars ,
22- extra_providers : Object . entries ( regions )
23- . map ( ( [ rCode , r ] : [ string , layer_region_config ] ) => {
24- const region = r ?. id || rCode ;
25- const isMain = region === defaultRegion ;
26- return isMain
27- ? undefined
28- : { type : 'aws' , alias : rCode , region} ;
29- } )
30- . filter ( x => ! ! x )
31- . sort ( ( a , b ) =>
32- ( a ?. alias as string ) . localeCompare ( b ?. alias as string ) ,
33- ) ,
34- is_providers_file : true ,
35- } ) as unknown as string ,
52+ replace (
53+ s ,
54+ {
55+ ...vars ,
56+ extra_providers : Object . entries ( regions )
57+ . map ( ( [ rCode , r ] : [ string , layer_region_config ] ) => {
58+ const region = r ?. id || rCode ;
59+ const isMain = region === defaultRegion ;
60+ return isMain
61+ ? undefined
62+ : { type : 'aws' , alias : rCode , region} ;
63+ } )
64+ . filter ( x => ! ! x )
65+ . sort ( ( a , b ) =>
66+ ( a ?. alias as string ) . localeCompare (
67+ b ?. alias as string ,
68+ ) ,
69+ ) ,
70+ is_providers_file : true ,
71+ } ,
72+ { format} ,
73+ ) as unknown as string ,
3674 ] ,
3775 // region outputs files
3876 ...Object . entries ( regions ) . map (
3977 ( [ rCode , r ] : [ string , layer_region_config ] ) => {
4078 const isDefault = ( r ?. id || rCode ) === defaultRegion ;
4179 return [
4280 `outputs${ isDefault ? '' : `_${ rCode . replace ( / - / g, '_' ) } ` } .tf` ,
43- replace ( s , {
44- ...vars ,
45- region : r ?. id || rCode ,
46- is_default_outputs : isDefault ,
47- is_outputs_file : true ,
48- is_default_region : isDefault ,
49- psuffix : isDefault ? '' : `.${ rCode } ` ,
50- rsuffix : isDefault ? '' : `-${ rCode } ` ,
51- ...r ,
52- ...( vars ?. id ? { id : vars . id } : { } ) ,
53- } ) as unknown as string ,
81+ replace (
82+ s ,
83+ {
84+ ...vars ,
85+ region : r ?. id || rCode ,
86+ is_default_outputs : isDefault ,
87+ is_outputs_file : true ,
88+ is_default_region : isDefault ,
89+ psuffix : isDefault ? '' : `.${ rCode } ` ,
90+ rsuffix : isDefault ? '' : `-${ rCode } ` ,
91+ ...r ,
92+ ...( vars ?. id ? { id : vars . id } : { } ) ,
93+ } ,
94+ { format} ,
95+ ) as unknown as string ,
5496 ] ;
5597 } ,
5698 ) ,
@@ -60,18 +102,22 @@ export default async (
60102 const isMain = ( r ?. id || rCode ) === defaultRegion ;
61103 return [
62104 `main${ ( r ?. id || rCode ) === defaultRegion ? '' : `_${ rCode . replace ( / - / g, '_' ) } ` } .tf` ,
63- replace ( s , {
64- ...vars ,
65- region : r ?. id || rCode ,
66- is_main : isMain ,
67- is_default_main : isMain ,
68- is_main_file : true ,
69- is_default_region : isMain ,
70- psuffix : isMain ? '' : `.${ rCode } ` ,
71- rsuffix : isMain ? '' : `-${ rCode } ` ,
72- ...r ,
73- ...( vars ?. id ? { id : vars . id } : { } ) ,
74- } ) as unknown as string ,
105+ replace (
106+ s ,
107+ {
108+ ...vars ,
109+ region : r ?. id || rCode ,
110+ is_main : isMain ,
111+ is_default_main : isMain ,
112+ is_main_file : true ,
113+ is_default_region : isMain ,
114+ psuffix : isMain ? '' : `.${ rCode } ` ,
115+ rsuffix : isMain ? '' : `-${ rCode } ` ,
116+ ...r ,
117+ ...( vars ?. id ? { id : vars . id } : { } ) ,
118+ } ,
119+ { format} ,
120+ ) as unknown as string ,
75121 ] ;
76122 } ,
77123 ) ,
@@ -81,18 +127,22 @@ export default async (
81127 const isSub = ( r ?. id || rCode ) === defaultRegion ;
82128 return [
83129 `sub${ ( r ?. id || rCode ) === defaultRegion ? '' : `_${ rCode . replace ( / - / g, '_' ) } ` } .tf` ,
84- replace ( s , {
85- ...vars ,
86- region : r ?. id || rCode ,
87- is_sub : isSub ,
88- is_default_sub : isSub ,
89- is_sub_file : true ,
90- is_default_region : isSub ,
91- psuffix : isSub ? '' : `.${ rCode } ` ,
92- rsuffix : isSub ? '' : `-${ rCode } ` ,
93- ...r ,
94- ...( vars ?. id ? { id : vars . id } : { } ) ,
95- } ) as unknown as string ,
130+ replace (
131+ s ,
132+ {
133+ ...vars ,
134+ region : r ?. id || rCode ,
135+ is_sub : isSub ,
136+ is_default_sub : isSub ,
137+ is_sub_file : true ,
138+ is_default_region : isSub ,
139+ psuffix : isSub ? '' : `.${ rCode } ` ,
140+ rsuffix : isSub ? '' : `-${ rCode } ` ,
141+ ...r ,
142+ ...( vars ?. id ? { id : vars . id } : { } ) ,
143+ } ,
144+ { format} ,
145+ ) as unknown as string ,
96146 ] ;
97147 } ,
98148 ) ,
0 commit comments