package Ġio . v rap . codegen . languages ĊĊ Ċ import Ġio . v rap . codegen . languages . typescript . client . Types cript Client Module Ċ import Ġio . v rap . codegen . languages . typescript . jo i . J oi Base Types Ċ import Ġio . v rap . codegen . languages . typescript . jo i . J oi Module Ċ import Ġio . v rap . codegen . languages . typescript . model . TypeScript Base Types Ċ import Ġio . v rap . codegen . languages . typescript . model . Types cript Model Module Ċ import Ġio . v rap . codegen . languages . typescript . server . Types cript Server Module Ċ import Ġio . v rap . codegen . languages . typescript . test . Types cript Test Module Ċ import Ġio . v rap . rm f . codegen . Code Generator Config Ċ import Ġio . v rap . rm f . codegen . di . R aml Api Provider Ċ import Ġio . v rap . rm f . codegen . di . R aml Generator Component Ċ import Ġio . v rap . rm f . codegen . di . R aml Generator Module Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths ĊĊ Ċ class ĠTest Code Generator Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Provided Path Ġ= ĠSystem . getenv (" TEST _ R AML _ FILE ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Provided Output Path Ġ= ĠSystem . getenv (" OUTPUT _ FOLDER ") ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi Path Ġ: ĠPath Ġ= ĠPaths . get ( if Ġ( user Provided Path Ġ== Ġnull ) Ġ"../../ api - spec / api . r aml " Ġelse Ġuser Provided Path ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġoutput Folder Ġ: ĠPath Ġ= ĠPaths . get ( if Ġ( user Provided Output Path Ġ== Ġnull ) Ġ" build / gens rc " Ġelse Ġuser Provided Output Path ) ĊĊĠĠĠĠĠĠĠ Ġval Ġapi Provider : ĠR aml Api Provider Ġ= ĠR aml Api Provider ( api Path ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Config Ġ= ĠCode Generator Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase PackageName Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Folder Ġ= ĠPaths . get ("${ output Folder }") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate Ts Models () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Module Ġ= ĠR aml Generator Module ( api Provider , Ġgenerator Config , ĠTypeScript Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Component Ġ= ĠR aml Generator Component ( generator Module , ĠTypes cript Model Module , Types cript Client Module ) ĊĠĠĠĠĠĠĠ Ġgenerator Component . generate Files () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate Ts Tests () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Module Ġ= ĠR aml Generator Module ( api Provider , Ġgenerator Config , ĠTypeScript Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Component Ġ= ĠR aml Generator Component ( generator Module , ĠTypes cript Test Module ) ĊĠĠĠĠĠĠĠ Ġgenerator Component . generate Files () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate Ts Server () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠGenerate Ġj oi Ġvalidators ĊĠĠĠĠĠĠĠ Ġval Ġj oi Generator Config Ġ= ĠCode Generator Config ( model Package Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġjo ig ener ator Module Ġ= ĠR aml Generator Module ( api Provider , Ġj oi Generator Config , ĠTypeScript Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġjo ig ener ator Component Ġ= ĠR aml Generator Component ( jo ig ener ator Module , ĠJoi Module ) ĊĠĠĠĠĠĠĠ Ġjo ig ener ator Component . generate Files () ĊĊĠĠĠĠĠĠĠ Ġ// ĠGenerate Ġts Ġmodels ĊĠĠĠĠĠĠĠ Ġval Ġmodel Generator Config Ġ= ĠCode Generator Config ( model Package Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġmodel Generator Module Ġ= ĠR aml Generator Module ( api Provider , Ġmodel Generator Config , ĠTypeScript Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Generator Component Ġ= ĠR aml Generator Component ( model Generator Module , ĠTypes cript Model Module ) ĊĠĠĠĠĠĠĠ Ġmodel Generator Component . generate Files () ĊĊĠĠĠĠĠĠĠ Ġ// ĠGenerate Ġthe Ġserver Ġcode ĊĠĠĠĠĠĠĠ Ġval Ġserver Generator Config Ġ= ĠCode Generator Config ( model Package Ġ= Ġ"", client Package Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġserver Generator Module Ġ= ĠR aml Generator Module ( api Provider , Ġserver Generator Config , ĠTypeScript Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġserver Generator Component Ġ= ĠR aml Generator Component ( server Generator Module , ĠTypes cript Server Module ) ĊĠĠĠĠĠĠĠ Ġserver Generator Component . generate Files () ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgenerate J oi Validators () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Module Ġ= ĠR aml Generator Module ( api Provider , Ġgenerator Config , ĠJoi Base Types ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Component Ġ= ĠR aml Generator Component ( generator Module , ĠJoi Module ) ĊĠĠĠĠĠĠĠ Ġgenerator Component . generate Files () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġclean Gen Test Folder () Ġ{ ĊĠĠĠĠĠĠĠ Ġclean Folder (" build / gens rc ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclean Folder ( path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPaths . get ( path ). to File (). delete Re cursively () ĊĠĠĠ Ġ} Ċ } Ċ