Skip to content

Commit e247e82

Browse files
committed
Merge branch 'release/2.7.0' into feat/preview_panel
2 parents 6ba163f + 1e6cf2b commit e247e82

File tree

3 files changed

+13
-27
lines changed

3 files changed

+13
-27
lines changed

src/main/kotlin/com/asyncapi/plugin/idea/_core/AsyncAPISpecificationHtmlRenderer.kt

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,11 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
88
import com.intellij.json.JsonFileType
99
import com.intellij.openapi.components.Service
1010
import com.intellij.openapi.components.service
11-
import com.intellij.openapi.util.io.FileUtil
12-
import com.intellij.openapi.util.io.systemIndependentPath
1311
import com.intellij.openapi.vfs.LocalFileSystem
1412
import com.intellij.openapi.vfs.VirtualFile
1513
import io.netty.handler.codec.http.FullHttpRequest
1614
import org.jetbrains.yaml.YAMLFileType
1715
import java.io.File
18-
import java.util.function.Supplier
1916

2017
/**
2118
* @author Pavel Bodiachevskii
@@ -47,20 +44,19 @@ class AsyncAPISpecificationHtmlRenderer {
4744

4845
val isJson = specificationVirtualFile.fileType is JsonFileType
4946
val specification = replaceLocalReferences(specificationFile.readText(Charsets.UTF_8), specificationVirtualFile, isJson)
50-
val temporalSpecificationUrl = saveAsTemporalFile(specification, isJson)
5147

5248
val specificationTemplate = this.javaClass.getResource(specificationTemplateUrl)
5349
specificationTemplate ?: return "specification template not found."
5450

5551
val webSocket = webSocketRendererProvider.provide(
5652
fullHttpRequest = request,
57-
supplier = Supplier<VirtualFile?> { specificationVirtualFile }
53+
supplier = { specificationVirtualFile }
5854
)
5955

6056
return specificationTemplate.readText(Charsets.UTF_8)
6157
.replace(
62-
"url: '',",
63-
"url: '${urlProvider.specification(temporalSpecificationUrl)}',"
58+
"schema: {},",
59+
"schema: $specification,"
6460
)
6561
.replace(
6662
"<link rel=\"stylesheet\" href=\"\">",
@@ -74,7 +70,7 @@ class AsyncAPISpecificationHtmlRenderer {
7470
)
7571
}
7672

77-
private fun replaceLocalReferences(specification: String, specificationFile: VirtualFile, isJson: Boolean): String {
73+
fun replaceLocalReferences(specification: String, specificationFile: VirtualFile, isJson: Boolean): String {
7874
val objectMapper = if (isJson) {
7975
ObjectMapper()
8076
} else {
@@ -89,7 +85,7 @@ class AsyncAPISpecificationHtmlRenderer {
8985
}
9086
}
9187

92-
return objectMapper.writeValueAsString(tree)
88+
return ObjectMapper().writeValueAsString(tree)
9389
}
9490

9591
private fun localReferenceToFileUrl(localReference: String, specificationFile: VirtualFile): String {
@@ -104,17 +100,4 @@ class AsyncAPISpecificationHtmlRenderer {
104100
return urlProvider.reference(referencedFile.path, specificationComponentReference)
105101
}
106102

107-
private fun saveAsTemporalFile(specification: String, isJson: Boolean): String {
108-
val suffix = if (isJson) {
109-
".json"
110-
} else {
111-
".yaml"
112-
}
113-
114-
val tempSpecification = FileUtil.createTempFile("jasyncapi-idea-plugin-${System.currentTimeMillis()}", suffix, true)
115-
tempSpecification.writeText(specification, Charsets.UTF_8)
116-
117-
return tempSpecification.systemIndependentPath
118-
}
119-
120103
}

src/main/kotlin/com/asyncapi/plugin/idea/extensions/web/StaticServer.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.jetbrains.io.send
1212
import org.jetbrains.yaml.YAMLFileType
1313
import java.io.File
1414
import java.nio.charset.StandardCharsets
15+
import kotlin.text.toByteArray
1516

1617
/**
1718
* @author Pavel Bodiachevskii
@@ -128,7 +129,12 @@ class StaticServer : HttpRequestHandler() {
128129
"application/x-yaml"
129130
}
130131

131-
return Resource(contentType, requestedFile.readBytes())
132+
val componentJson = asyncAPISpecificationHtmlRenderer.replaceLocalReferences(
133+
requestedFile.readText(StandardCharsets.UTF_8),
134+
referenceVirtualFile,
135+
isJson
136+
)
137+
return Resource(contentType, componentJson.toByteArray(StandardCharsets.UTF_8))
132138
}
133139

134140
private fun resolveResource(resourceName: String): Resource? {

src/main/resources/ui/index.html

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@
1111
<script src=""></script>
1212
<script>
1313
AsyncApiStandalone.render({
14-
schema: {
15-
url: '',
16-
options: { method: "GET", mode: "cors" },
17-
},
14+
schema: {},
1815
config: {
1916
show: {
2017
sidebar: true,

0 commit comments

Comments
 (0)