prisma-class-generator
Version:
Class generator from Prisma schema
31 lines (26 loc) • 852 B
text/typescript
import { Echoable } from '../interfaces/echoable'
import { FieldComponent } from './field.component'
import { CLASS_TEMPLATE } from '../templates/class.template'
import { BaseComponent } from './base.component'
export class ClassComponent extends BaseComponent implements Echoable {
name: string
fields?: FieldComponent[]
relationTypes?: string[]
enumTypes?: string[] = []
extra?: string = ''
types?: string[]
echo = () => {
const fieldContent = this.fields.map((_field) => _field.echo())
let str = CLASS_TEMPLATE.replace(
'#!{DECORATORS}',
this.echoDecorators(),
)
.replace('#!{NAME}', `${this.name}`)
.replace('#!{FIELDS}', fieldContent.join('\r\n'))
.replace('#!{EXTRA}', this.extra)
return str
}
reExportPrefixed = (prefix: string) => {
return `export class ${this.name} extends ${prefix}${this.name} {}`
}
}