Slide 1

Slide 1 text

Generate JavaScript
 From Goa Design Shirou WAKAYAMA (@r_rudi)
 Tsukinowa Inc. Better

Slide 2

Slide 2 text

Who? • Twitter: r_rudi • CTO at Tsukinowa Inc. • Ansible / Sphinx • 4 years Golang • Server / FrontEnd / Infra / Android

Slide 3

Slide 3 text

JS code generator: gen_js • JS code generator already included. • Hmm, it seems it does not have some of features…. • generate from swagger also. HPBKTEFYBNQMFEFTJHO

Slide 4

Slide 4 text

goagen_js • https://github.com/shirou/goagen_js • It generates ES 2015 code. • You need Babel to run Web Browser. HPBHFOHFO
 QLHQBUIHJUIVCDPNTIJSPVHPBHFO@KT
 ETPNFFYBNQMFEFTJHO

Slide 5

Slide 5 text

Sample Design WBS@3FTPVSDF VTFS GVOD \ #BTF1BUI VTFS 
 "DUJPO HFU GVOD \ 3PVUJOH (&5 6TFS*% 1BSBNT GVOD \ 1BSBN 6TFS*% *OUFHFS GVOD \ .BYJNVN ^ 3FRVJSFE 6TFS*% ^

Slide 6

Slide 6 text

1. Explicit Method using 
 Promise API 6TFS(FU VTFS*% OVNCFS 6TFS*%UPHFUJOGPSNBUJPO FYQPSUGVODUJPO6TFS(FU VTFS*% \ DPOTUVSMVSM1SFpYAVTFS\VTFS*%^A DPOTUFWWBMJEBUF W6TFS(FUVTFS*% VTFS*% JG F \ SFUVSO1SPNJTFSFKFDU F ^ SFUVSOHFU VSM ^ utility function

Slide 7

Slide 7 text

2. Validation • ` FYQPSUDPOTU6TFS(FU\ 6TFS*%\ LJOEOVNCFS NBYJNVN ^ ^
 
 WBMJEBUFDBOWBMJEBUFXJUITQFDJpFESVMFTFU FYQPSUGVODUJPOWBMJEBUF SVMF BDUVBM \
 TOJQ 
 ^
 Generated Rule Validator function

Slide 8

Slide 8 text

3. Type annotation • flowtype • typescript HPBHFOHFO
 QLHQBUIHJUIVCDPNTIJSPVHPBHFO@KT
 ETPNFFYBNQMFEFTJHO
 UBSHFUUZQFTDSJQUHFOPVUUT

Slide 9

Slide 9 text

3. Typescript Example 6TFS(FU VTFS*% OVNCFS 6TFS*%UPHFUJOGPSNBUJPO FYQPSUGVODUJPO6TFS(FU VTFS*%OVNCFS 1SPNJTF6TFS.FEJB\ DPOTUVSMVSM1SFpYAVTFS\VTFS*%^A MFUFWWBMJEBUF W6TFS(FUVTFS*% VTFS*% JG F \ SFUVSO1SPNJTFSFKFDU F ^ SFUVSOHFU VSM ^

Slide 10

Slide 10 text

Conclusion • goagen_js can generate JS code with 1. Explicit Method Name with Promise 2. Validation 3. Type Annotation • but still under heavy development.