kotlin-node/karakum/src/jsMain/kotlin/node/karakum/plugins/ContractFunctionApiPlugin.kt [31:66]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - class ContractFunctionApiPlugin : Plugin { private val contractApiDeclarations = mutableListOf() override fun setup(context: Context) = Unit override fun traverse(node: Node, context: Context) = Unit override fun render(node: Node, context: Context, next: Render) = nullable { val sourceFileName = node.getSourceFileOrNull()?.fileName ?: "generated.d.ts" val typeScriptService = ensureNotNull(context.lookupService(typeScriptServiceKey)) val namespace = typeScriptService.findClosestNamespace(node) ensure(isFunctionDeclaration(node)) val type = ensureNotNull(node.type) ensure(isTypePredicateNode(type)) // TODO: support asserts (returns() implies value) ensure(type.assertsModifier == null) val nameNode = ensureNotNull(node.name) val name = escapeIdentifier(next(nameNode)) val typeParameters = node.typeParameters?.asArray() ?.joinToString(", ") { next(it) } val returnType = next(type) val contractReturns = "returns(true)" val parameterName = escapeIdentifier(next(type.parameterName)) val typeType = ensureNotNull(type.type) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kotlin-typescript/karakum/src/jsMain/kotlin/typescript/karakum/plugins/ContractFunctionApiPlugin.kt [37:72]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - class ContractFunctionApiPlugin : Plugin { private val contractApiDeclarations = mutableListOf() override fun setup(context: Context) = Unit override fun traverse(node: Node, context: Context) = Unit override fun render(node: Node, context: Context, next: Render) = nullable { val sourceFileName = node.getSourceFileOrNull()?.fileName ?: "generated.d.ts" val typeScriptService = ensureNotNull(context.lookupService(typeScriptServiceKey)) val namespace = typeScriptService.findClosestNamespace(node) ensure(isFunctionDeclaration(node)) val type = ensureNotNull(node.type) ensure(isTypePredicateNode(type)) // TODO: support asserts (returns() implies value) ensure(type.assertsModifier == null) val nameNode = ensureNotNull(node.name) val name = escapeIdentifier(next(nameNode)) val typeParameters = node.typeParameters?.asArray() ?.joinToString(", ") { next(it) } val returnType = next(type) val contractReturns = "returns(true)" val parameterName = escapeIdentifier(next(type.parameterName)) val typeType = ensureNotNull(type.type) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -