@@ -24,13 +24,9 @@ async function main() {
24
24
25
25
// iterate over all cloudformation namespaces
26
26
for ( const namespace of cfnspec . namespaces ( ) ) {
27
- const [ moduleFamily , moduleBaseName ] = ( namespace === 'AWS::Serverless' ? 'AWS::SAM' : namespace ) . split ( '::' ) ;
28
-
29
- const moduleName = `${ moduleFamily } -${ moduleBaseName . replace ( / V \d + $ / , '' ) } ` . toLocaleLowerCase ( ) ;
30
- const packagePath = path . join ( root , moduleName ) ;
31
-
32
- const lowcaseModuleName = moduleBaseName . toLocaleLowerCase ( ) ;
33
- const packageName = `@aws-cdk/${ moduleName } ` ;
27
+ const module = cfnspec . createModuleDefinitionFromCfnNamespace ( namespace ) ;
28
+ const lowcaseModuleName = module . moduleName . toLocaleLowerCase ( ) ;
29
+ const packagePath = path . join ( root , module . moduleName ) ;
34
30
35
31
// we already have a module for this namesapce, move on.
36
32
if ( await fs . pathExists ( packagePath ) ) {
@@ -42,12 +38,12 @@ async function main() {
42
38
if ( scopes . indexOf ( namespace ) !== - 1 ) {
43
39
// V2-style module is already modeled in the root package, nothing to be done!
44
40
continue ;
45
- } else if ( await fs . pathExists ( path . join ( root , `${ moduleFamily } -${ moduleBaseName } ` . toLocaleLowerCase ( ) ) ) ) {
41
+ } else if ( await fs . pathExists ( path . join ( root , `${ module . moduleFamily } -${ module . moduleBaseName } ` . toLocaleLowerCase ( ) ) ) ) {
46
42
// V2-style package already has it's own package (legacy behavior), nothing to be done!
47
43
continue ;
48
44
} else {
49
45
// V2-style package needs to be added to it's "V1" package... Get down to business!
50
- console . error ( `Adding ${ namespace } to ${ packageName } ` ) ;
46
+ console . error ( `Adding ${ namespace } to ${ module . packageName } ` ) ;
51
47
scopes . push ( namespace ) ;
52
48
packageJson [ 'cdk-build' ] . cloudformation = scopes ;
53
49
await fs . writeJson ( packageJsonPath , packageJson , { encoding : 'utf-8' , spaces : 2 } ) ;
@@ -62,22 +58,6 @@ async function main() {
62
58
}
63
59
}
64
60
65
- // dotnet names
66
- const dotnetPackage = `Amazon.CDK.${ moduleFamily } .${ moduleBaseName } ` ;
67
-
68
- // java names
69
- const javaGroupId = 'software.amazon.awscdk' ;
70
- const javaPackage = moduleFamily === 'AWS'
71
- ? `services.${ lowcaseModuleName } `
72
- : `${ moduleFamily . toLocaleLowerCase ( ) } .${ lowcaseModuleName } ` ;
73
- const javaArtifactId = moduleFamily === 'AWS'
74
- ? lowcaseModuleName
75
- : `${ moduleFamily . toLocaleLowerCase ( ) } -${ lowcaseModuleName } ` ;
76
-
77
- // python names
78
- const pythonDistName = `aws-cdk.${ moduleName } ` ;
79
- const pythonModuleName = pythonDistName . replace ( / - / g, '_' ) ;
80
-
81
61
async function write ( relativePath : string , contents : string [ ] | string | object ) {
82
62
const fullPath = path . join ( packagePath , relativePath ) ;
83
63
const dir = path . dirname ( fullPath ) ;
@@ -97,10 +77,10 @@ async function main() {
97
77
await fs . writeFile ( fullPath , data + '\n' ) ;
98
78
}
99
79
100
- console . log ( `generating module for ${ packageName } ...` ) ;
80
+ console . log ( `generating module for ${ module . packageName } ...` ) ;
101
81
102
82
await write ( 'package.json' , {
103
- name : packageName ,
83
+ name : module . packageName ,
104
84
version,
105
85
description : `The CDK Construct Library for ${ namespace } ` ,
106
86
main : 'lib/index.js' ,
@@ -110,33 +90,33 @@ async function main() {
110
90
projectReferences : true ,
111
91
targets : {
112
92
dotnet : {
113
- namespace : dotnetPackage ,
114
- packageId : dotnetPackage ,
93
+ namespace : module . dotnetPackage ,
94
+ packageId : module . dotnetPackage ,
115
95
signAssembly : true ,
116
96
assemblyOriginatorKeyFile : '../../key.snk' ,
117
97
iconUrl : 'https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png' ,
118
98
} ,
119
99
java : {
120
- package : `${ javaGroupId } .${ javaPackage } ` ,
100
+ package : `${ module . javaGroupId } .${ module . javaPackage } ` ,
121
101
maven : {
122
- groupId : javaGroupId ,
123
- artifactId : javaArtifactId ,
102
+ groupId : module . javaGroupId ,
103
+ artifactId : module . javaArtifactId ,
124
104
} ,
125
105
} ,
126
106
python : {
127
107
classifiers : [
128
108
'Framework :: AWS CDK' ,
129
109
'Framework :: AWS CDK :: 1' ,
130
110
] ,
131
- distName : pythonDistName ,
132
- module : pythonModuleName ,
111
+ distName : module . pythonDistName ,
112
+ module : module . pythonModuleName ,
133
113
} ,
134
114
} ,
135
115
} ,
136
116
repository : {
137
117
type : 'git' ,
138
118
url : 'https://github.com/aws/aws-cdk.git' ,
139
- directory : `packages/${ packageName } ` ,
119
+ directory : `packages/${ module . packageName } ` ,
140
120
} ,
141
121
homepage : 'https://github.com/aws/aws-cdk' ,
142
122
scripts : {
@@ -169,7 +149,7 @@ async function main() {
169
149
'cdk' ,
170
150
'constructs' ,
171
151
namespace ,
172
- moduleName ,
152
+ module . moduleName ,
173
153
] ,
174
154
author : {
175
155
name : 'Amazon Web Services' ,
@@ -271,28 +251,7 @@ async function main() {
271
251
'});' ,
272
252
] ) ;
273
253
274
- await write ( 'README.md' , [
275
- `# ${ namespace } Construct Library` ,
276
- '<!--BEGIN STABILITY BANNER-->' ,
277
- '' ,
278
- '---' ,
279
- '' ,
280
- '' ,
281
- '' ,
282
- '> All classes with the `Cfn` prefix in this module ([CFN Resources]) are always stable and safe to use.' ,
283
- '>' ,
284
- '> [CFN Resources]: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib' ,
285
- '' ,
286
- '---' ,
287
- '' ,
288
- '<!--END STABILITY BANNER-->' ,
289
- '' ,
290
- 'This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.' ,
291
- '' ,
292
- '```ts' ,
293
- `import ${ lowcaseModuleName } = require('${ packageName } ');` ,
294
- '```' ,
295
- ] ) ;
254
+ await cfnspec . createLibraryReadme ( namespace , path . join ( packagePath , 'README.md' ) ) ;
296
255
297
256
await write ( '.eslintrc.js' , [
298
257
"const baseConfig = require('@aws-cdk/cdk-build-tools/config/eslintrc');" ,
@@ -310,10 +269,10 @@ async function main() {
310
269
await fs . copy ( path . join ( templateDir , file ) , path . join ( packagePath , file ) ) ;
311
270
}
312
271
313
- await addDependencyToMegaPackage ( path . join ( '@aws-cdk' , 'cloudformation-include' ) , packageName , version , [ 'dependencies' , 'peerDependencies' ] ) ;
314
- await addDependencyToMegaPackage ( 'aws-cdk-lib' , packageName , version , [ 'devDependencies' ] ) ;
315
- await addDependencyToMegaPackage ( 'monocdk' , packageName , version , [ 'devDependencies' ] ) ;
316
- await addDependencyToMegaPackage ( 'decdk' , packageName , version , [ 'dependencies' ] ) ;
272
+ await addDependencyToMegaPackage ( path . join ( '@aws-cdk' , 'cloudformation-include' ) , module . packageName , version , [ 'dependencies' , 'peerDependencies' ] ) ;
273
+ await addDependencyToMegaPackage ( 'aws-cdk-lib' , module . packageName , version , [ 'devDependencies' ] ) ;
274
+ await addDependencyToMegaPackage ( 'monocdk' , module . packageName , version , [ 'devDependencies' ] ) ;
275
+ await addDependencyToMegaPackage ( 'decdk' , module . packageName , version , [ 'dependencies' ] ) ;
317
276
}
318
277
}
319
278
0 commit comments