From c97f0b519bd87284c9380c845b9d1e75fd1ecb2d Mon Sep 17 00:00:00 2001 From: Martin Eden Date: Wed, 19 Apr 2017 16:07:21 +0100 Subject: [PATCH 1/3] Can enable 'export' statements --- .../kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt b/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt index 0d34c96..df8d38f 100644 --- a/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt +++ b/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt @@ -78,7 +78,8 @@ class TypeScriptGenerator( private val mappings: Map, String> = mapOf(), classTransformers: List = listOf(), ignoreSuperclasses: Set> = setOf(), - private val intTypeName: String = "number" + private val intTypeName: String = "number", + addExportStatements: Boolean = false ) { private val visitedClasses: MutableSet> = java.util.HashSet() private val generatedDefinitions = mutableListOf() @@ -88,6 +89,7 @@ class TypeScriptGenerator( java.io.Serializable::class, Comparable::class ).plus(ignoreSuperclasses) + private val export = if (addExportStatements) "export " else "" init { rootClasses.forEach { visitClass(it) } @@ -186,6 +188,7 @@ class TypeScriptGenerator( return "type ${klass.simpleName} = ${klass.java.enumConstants .map { constant: Any -> constant.toString().toJSString() + return "${export}type ${klass.simpleName} = ${klass.java.enumConstants } .joinToString(" | ") };" @@ -221,6 +224,7 @@ class TypeScriptGenerator( } return "interface ${klass.simpleName}$templateParameters$extendsString {\n" + + return "${export}interface ${klass.simpleName}$templateParameters$extendsString {\n" + klass.declaredMemberProperties .filter { !isFunctionType(it.returnType.javaType) } .filter { From fcce5b423a4693b73407946877e60cb56f6951f6 Mon Sep 17 00:00:00 2001 From: Martin Eden Date: Wed, 19 Apr 2017 16:07:40 +0100 Subject: [PATCH 2/3] Can enable custom enum transformation --- .../me/ntrrgc/tsGenerator/TypeScriptGenerator.kt | 10 +++++----- .../me/ntrrgc/tsGenerator/defaultEnumTransformer.kt | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 src/main/kotlin/me/ntrrgc/tsGenerator/defaultEnumTransformer.kt diff --git a/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt b/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt index df8d38f..7f6aaa5 100644 --- a/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt +++ b/src/main/kotlin/me/ntrrgc/tsGenerator/TypeScriptGenerator.kt @@ -24,6 +24,7 @@ import kotlin.reflect.full.createType import kotlin.reflect.full.isSubclassOf import kotlin.reflect.full.superclasses import kotlin.reflect.jvm.javaType +import me.ntrrgc.tsGenerator.defaultEnumTransformer /** * TypeScript definition generator. @@ -79,7 +80,8 @@ class TypeScriptGenerator( classTransformers: List = listOf(), ignoreSuperclasses: Set> = setOf(), private val intTypeName: String = "number", - addExportStatements: Boolean = false + addExportStatements: Boolean = false, + private val enumTransformer: (KClass<*>, Any) -> String = ::defaultEnumTransformer ) { private val visitedClasses: MutableSet> = java.util.HashSet() private val generatedDefinitions = mutableListOf() @@ -185,10 +187,9 @@ class TypeScriptGenerator( } private fun generateEnum(klass: KClass<*>): String { - return "type ${klass.simpleName} = ${klass.java.enumConstants - .map { constant: Any -> - constant.toString().toJSString() return "${export}type ${klass.simpleName} = ${klass.java.enumConstants + .map { constant: Any -> + enumTransformer(klass, constant).toJSString() } .joinToString(" | ") };" @@ -223,7 +224,6 @@ class TypeScriptGenerator( "" } - return "interface ${klass.simpleName}$templateParameters$extendsString {\n" + return "${export}interface ${klass.simpleName}$templateParameters$extendsString {\n" + klass.declaredMemberProperties .filter { !isFunctionType(it.returnType.javaType) } diff --git a/src/main/kotlin/me/ntrrgc/tsGenerator/defaultEnumTransformer.kt b/src/main/kotlin/me/ntrrgc/tsGenerator/defaultEnumTransformer.kt new file mode 100644 index 0000000..cbbf8ef --- /dev/null +++ b/src/main/kotlin/me/ntrrgc/tsGenerator/defaultEnumTransformer.kt @@ -0,0 +1,5 @@ +package me.ntrrgc.tsGenerator + +import kotlin.reflect.KClass + +fun defaultEnumTransformer(klass: KClass<*>, enumValue: Any) = enumValue.toString() \ No newline at end of file From 8c0e17a30a3cab16b3d99c9a487f7a7332d03f5e Mon Sep 17 00:00:00 2001 From: Mark Woodbridge Date: Tue, 3 Aug 2021 11:08:26 +0100 Subject: [PATCH 3/3] bintray has been shut down --- build.gradle | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 095935c..208bab7 100644 --- a/build.gradle +++ b/build.gradle @@ -42,7 +42,6 @@ junitPlatform { apply plugin: 'kotlin' repositories { - maven { url "https://dl.bintray.com/jetbrains/spek" } mavenCentral() } @@ -51,8 +50,8 @@ dependencies { compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" testCompile 'com.winterbe:expekt:0.5.0' - testCompile 'org.jetbrains.spek:spek-api:1.1.0-beta3' + testCompile 'org.jetbrains.spek:spek-api:1.1.0' testRuntime 'org.junit.platform:junit-platform-launcher:1.0.0-M3' - testRuntime 'org.jetbrains.spek:spek-junit-platform-engine:1.1.0-beta3' + testRuntime 'org.jetbrains.spek:spek-junit-platform-engine:1.1.0' testCompile 'com.google.code.findbugs:jsr305:3.0.1' }