@@ -17,7 +17,8 @@ export class ClassRenderer extends TypeScriptRenderer {
1717 await this . runAdditionalContentPreset ( ) ,
1818 ] ;
1919
20- return `class ${ this . model . $id } {
20+ const formattedName = this . model . $id && FormatHelpers . toPascalCase ( this . model . $id ) ;
21+ return `class ${ formattedName } {
2122${ this . indent ( this . renderBlock ( content , 2 ) ) }
2223}` ;
2324 }
@@ -31,20 +32,20 @@ ${this.indent(this.renderBlock(content, 2))}
3132 const content : string [ ] = [ ] ;
3233
3334 for ( const [ propertyName , property ] of Object . entries ( properties ) ) {
34- const getter = await this . runGetterPreset ( propertyName , property , this . model ) ;
35- const setter = await this . runSetterPreset ( propertyName , property , this . model ) ;
35+ const getter = await this . runGetterPreset ( propertyName , property ) ;
36+ const setter = await this . runSetterPreset ( propertyName , property ) ;
3637 content . push ( this . renderBlock ( [ getter , setter ] ) ) ;
3738 }
3839
3940 return this . renderBlock ( content , 2 ) ;
4041 }
4142
42- runGetterPreset ( propertyName : string , property : CommonModel , parentModel : CommonModel ) : Promise < string > {
43- return this . runPreset ( 'getter' , { propertyName, property, parentModel } ) ;
43+ runGetterPreset ( propertyName : string , property : CommonModel ) : Promise < string > {
44+ return this . runPreset ( 'getter' , { propertyName, property } ) ;
4445 }
4546
46- runSetterPreset ( propertyName : string , property : CommonModel , parentModel : CommonModel ) : Promise < string > {
47- return this . runPreset ( 'setter' , { propertyName, property, parentModel } ) ;
47+ runSetterPreset ( propertyName : string , property : CommonModel ) : Promise < string > {
48+ return this . runPreset ( 'setter' , { propertyName, property } ) ;
4849 }
4950}
5051
@@ -60,7 +61,7 @@ export const TS_DEFAULT_CLASS_PRESET: ClassPreset<ClassRenderer> = {
6061 } ) ;
6162 const ctorProperties : string [ ] = [ ] ;
6263 for ( const [ propertyName , property ] of Object . entries ( properties ) ) {
63- const rendererProperty = renderer . renderProperty ( propertyName , property , model ) . replace ( ';' , ',' ) ;
64+ const rendererProperty = renderer . renderProperty ( propertyName , property ) . replace ( ';' , ',' ) ;
6465 ctorProperties . push ( rendererProperty ) ;
6566 }
6667
@@ -70,18 +71,20 @@ ${renderer.indent(renderer.renderBlock(ctorProperties))}
7071${ renderer . indent ( renderer . renderBlock ( assigments ) ) }
7172}` ;
7273 } ,
73- property ( { renderer, propertyName, property, parentModel } ) {
74- return `private _${ renderer . renderProperty ( propertyName , property , parentModel ) } ` ;
74+ property ( { renderer, propertyName, property } ) {
75+ return `private _${ renderer . renderProperty ( propertyName , property ) } ` ;
7576 } ,
76- getter ( { renderer, propertyName, property } ) {
77- propertyName = FormatHelpers . toCamelCase ( propertyName ) ;
78- const signature = renderer . renderTypeSignature ( property ) ;
79- return `get ${ propertyName } ()${ signature } { return this._${ propertyName } ; }` ;
77+ getter ( { renderer, model, propertyName, property } ) {
78+ const isRequired = model . isRequired ( propertyName ) ;
79+ const formattedName = FormatHelpers . toCamelCase ( propertyName ) ;
80+ const signature = renderer . renderTypeSignature ( property , { orUndefined : ! isRequired } ) ;
81+ return `get ${ formattedName } ()${ signature } { return this._${ formattedName } ; }` ;
8082 } ,
81- setter ( { renderer, propertyName, property } ) {
82- propertyName = FormatHelpers . toCamelCase ( propertyName ) ;
83- const signature = renderer . renderTypeSignature ( property ) ;
84- const arg = `${ propertyName } ${ signature } ` ;
85- return `set ${ propertyName } (${ arg } ) { this._${ propertyName } = ${ propertyName } ; }` ;
83+ setter ( { renderer, model, propertyName, property } ) {
84+ const isRequired = model . isRequired ( propertyName ) ;
85+ const formattedName = FormatHelpers . toCamelCase ( propertyName ) ;
86+ const signature = renderer . renderTypeSignature ( property , { orUndefined : ! isRequired } ) ;
87+ const arg = `${ formattedName } ${ signature } ` ;
88+ return `set ${ formattedName } (${ arg } ) { this._${ formattedName } = ${ formattedName } ; }` ;
8689 } ,
8790} ;
0 commit comments