import {BaseApiDocGenerator} from "../domain/BaseApiDocGenerator"; import SourceCode from "../../codeGen/domain/SourceCode"; import ApiSchema from "../../schemeGenerator/domain/ApiSchema"; import {Type} from "../../codeGen/domain/types/Type"; import NumberType from "../../codeGen/domain/types/NumberType"; import StringType from "../../codeGen/domain/types/StringType"; import CustomType from "../../codeGen/domain/types/CustomType"; import BooleanType from "../../codeGen/domain/types/BooleanType"; import VectorType from "../../codeGen/domain/types/VectorType"; import TypescriptCodeGenerator from "../../codeGen/infrastructure/TypescriptCodeGenerator"; import JavaScriptCodeGenerator from "../../codeGen/infrastructure/JavaScriptCodeGenerator"; import SwiftCodeGenerator from "../../codeGen/infrastructure/SwiftCodeGenerator"; export default class ApiDocGenerator implements BaseApiDocGenerator { private tsCodeGenerator = new TypescriptCodeGenerator() private jsCodeGenerator = new JavaScriptCodeGenerator() private swiftCodeGenerator = new SwiftCodeGenerator() public generateApiDoc(scheme: ApiSchema, schemeVersion: number): SourceCode { let code = new SourceCode() code.add('') code.add('
') code.add(``) code.add(``) code.add(` `) code.add(`| Param | ') code.add('Type | ') code.add('
|---|---|
| ${param.name} | `) code.add(`${this.renderType(param.type)} | `) code.add('
| Field | ') code.add('Type | ') code.add('
|---|---|
| ${param.name} | `) code.add(`${this.renderType(param.type)} | `) code.add('
| Param | ') code.add('Type | ') code.add('
|---|---|
| ${param.name} | `) code.add(`${this.renderType(param.type)} | `) code.add('
')
tsModelCode.add(this.tsCodeGenerator.generateClass(model).render())
tsModelCode.add('')
code.append(this.createCollapsablePanel('TS model code', tsModelCode))
let jsModelCode = new SourceCode()
jsModelCode.add('')
jsModelCode.add(this.jsCodeGenerator.generateClass(model).render())
jsModelCode.add('')
code.append(this.createCollapsablePanel('JS model code', jsModelCode))
let swiftModelCode = new SourceCode()
swiftModelCode.add('')
swiftModelCode.add(this.swiftCodeGenerator.generateClass(model).render())
swiftModelCode.add('')
code.append(this.createCollapsablePanel('Swift model code', swiftModelCode))
code.add('