kotlin-node/karakum/src/jsMain/kotlin/node/karakum/plugins/PromiseClassApiPlugin.kt [35:73]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - val typeParameters = node.typeParameters?.asArray() ?.joinToString(", ") { render(it) } val returnType = node.type ?.let { render(it) } val promiseDeclaration = convertParameterDeclarations( node, context, render, ParameterDeclarationsConfiguration( strategy = ParameterDeclarationStrategy.function, template = { parameters, _ -> """ @JsName("$name") fun ${ifPresent(typeParameters) { "<${it}> " }}${name}Async(${parameters})${ifPresent(returnType) { ": $it" }} """.trimIndent() } ) ) val type = requireNotNull(node.type) require(isTypeReferenceNode(type)) val typeArguments = requireNotNull(type.typeArguments) val returnTypePayload = render(typeArguments.asArray().first()) val suspendDeclaration = convertParameterDeclarations( node, context, render, ParameterDeclarationsConfiguration( strategy = ParameterDeclarationStrategy.function, template = { parameters, _ -> """ @seskar.js.JsAsync suspend fun ${ifPresent(typeParameters) { "<${it}> " }}${name}(${parameters})${ifPresent(returnTypePayload) { ": $it"}} """.trimIndent() } ) ) return "${promiseDeclaration}\n\n${suspendDeclaration}" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kotlin-node/karakum/src/jsMain/kotlin/node/karakum/plugins/PromiseInterfaceApiPlugin.kt [31:69]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - val typeParameters = node.typeParameters?.asArray() ?.joinToString(", ") { render(it) } val returnType = node.type ?.let { render(it) } val promiseDeclaration = convertParameterDeclarations( node, context, render, ParameterDeclarationsConfiguration( strategy = ParameterDeclarationStrategy.function, template = { parameters, _ -> """ @JsName("$name") fun ${ifPresent(typeParameters) { "<${it}> " }}${name}Async(${parameters})${ifPresent(returnType) { ": $it" }} """.trimIndent() } ) ) val type = requireNotNull(node.type) require(isTypeReferenceNode(type)) val typeArguments = requireNotNull(type.typeArguments) val returnTypePayload = render(typeArguments.asArray().first()) val suspendDeclaration = convertParameterDeclarations( node, context, render, ParameterDeclarationsConfiguration( strategy = ParameterDeclarationStrategy.function, template = { parameters, _ -> """ @seskar.js.JsAsync suspend fun ${ifPresent(typeParameters) { "<${it}> " }}${name}(${parameters})${ifPresent(returnTypePayload) { ": $it"}} """.trimIndent() } ) ) return "${promiseDeclaration}\n\n${suspendDeclaration}" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -