11import { enriched_layer_config , layer_region_config } from '../types' ;
2- import replaceVars from '../utils/replaceVars' ;
2+ import replace from '../utils/replaceVars' ;
33
44export default async (
5- source : string ,
5+ s : string ,
66 {
77 regions,
88 defaultRegion,
@@ -11,18 +11,14 @@ export default async (
1111 _ : enriched_layer_config ,
1212) => {
1313 return [
14- // terraform file
15- [
16- `terraform.tf` ,
17- replaceVars ( source , {
18- ...vars ,
19- is_terraform_file : true ,
20- } ) as unknown as string ,
21- ] ,
22- // providers file
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 } ) ] ,
18+ [ `outputs.tf` , replace ( s , { ...vars , is_outputs_file : true } ) ] ,
2319 [
2420 `providers.tf` ,
25- replaceVars ( source , {
21+ replace ( s , {
2622 ...vars ,
2723 extra_providers : Object . entries ( regions )
2824 . map ( ( [ rCode , r ] : [ string , layer_region_config ] ) => {
@@ -39,32 +35,17 @@ export default async (
3935 is_providers_file : true ,
4036 } ) as unknown as string ,
4137 ] ,
42- // data file
43- [
44- `data.tf` ,
45- replaceVars ( source , {
46- ...vars ,
47- is_data_file : true ,
48- } ) as unknown as string ,
49- ] ,
50- // outputs file
51- [
52- `outputs.tf` ,
53- replaceVars ( source , {
54- ...vars ,
55- is_outputs_file : true ,
56- } ) as unknown as string ,
57- ] ,
58- // region files
38+ // region main files
5939 ...Object . entries ( regions ) . map (
6040 ( [ rCode , r ] : [ string , layer_region_config ] ) => {
6141 const isMain = ( r ?. id || rCode ) === defaultRegion ;
6242 return [
6343 `main${ ( r ?. id || rCode ) === defaultRegion ? '' : `_${ rCode . replace ( / - / g, '_' ) } ` } .tf` ,
64- replaceVars ( source , {
44+ replace ( s , {
6545 ...vars ,
6646 region : r ?. id || rCode ,
6747 is_main : isMain ,
48+ is_default_main : isMain ,
6849 is_main_file : true ,
6950 is_default_region : isMain ,
7051 psuffix : isMain ? '' : `.${ rCode } ` ,
@@ -75,5 +56,28 @@ export default async (
7556 ] ;
7657 } ,
7758 ) ,
78- ] as [ string , string ] [ ] ;
59+ // region sub files
60+ ...Object . entries ( regions ) . map (
61+ ( [ rCode , r ] : [ string , layer_region_config ] ) => {
62+ const isSub = ( r ?. id || rCode ) === defaultRegion ;
63+ return [
64+ `sub${ ( r ?. id || rCode ) === defaultRegion ? '' : `_${ rCode . replace ( / - / g, '_' ) } ` } .tf` ,
65+ replace ( s , {
66+ ...vars ,
67+ region : r ?. id || rCode ,
68+ is_sub : isSub ,
69+ is_default_sub : isSub ,
70+ is_sub_file : true ,
71+ is_default_region : isSub ,
72+ psuffix : isSub ? '' : `.${ rCode } ` ,
73+ rsuffix : isSub ? '' : `-${ rCode } ` ,
74+ ...r ,
75+ ...( vars ?. id ? { id : vars . id } : { } ) ,
76+ } ) as unknown as string ,
77+ ] ;
78+ } ,
79+ ) ,
80+ ]
81+ . map ( x => [ x [ 0 ] , ( x [ 1 ] as string ) ?. trim ( ) ] )
82+ . filter ( x => x [ 1 ] ) as [ string , string ] [ ] ;
7983} ;
0 commit comments