diff --git a/src/main/kotlin/node/node.kt b/src/main/kotlin/node/node.kt index 57e89f5..02821c5 100644 --- a/src/main/kotlin/node/node.kt +++ b/src/main/kotlin/node/node.kt @@ -30,11 +30,18 @@ external object process { val argv0: String } +external interface Buffer { + // Using different name instead so it won't collide with `Any::toString` + // `Any::toString` consider Buffers "arrayish" and returns "[...]" + @JsName("toString") + fun decodeToString(): String +} + @JsModule("fs") external object fs { fun argv(index: Int): String fun writeFileSync(path: String, text: String): Unit - fun readFileSync(path: String): String + fun readFileSync(path: String): Buffer fun readFileSync(path: String, encodingOptions: EncodingOptions): String fun readdirSync(path: String): Array fun existsSync(path: String): Boolean @@ -48,4 +55,4 @@ external object module { class EncodingOptions(val encoding: String = "utf8") external val __dirname: String -external val __filename: String \ No newline at end of file +external val __filename: String diff --git a/src/main/kotlin/ts2kt/translate.kt b/src/main/kotlin/ts2kt/translate.kt index 0b2a741..129ab10 100644 --- a/src/main/kotlin/ts2kt/translate.kt +++ b/src/main/kotlin/ts2kt/translate.kt @@ -41,7 +41,7 @@ private fun getScriptSnapshotFromFile(path: String): IScriptSnapshot { var scriptSnapshot = file2scriptSnapshotCache[path] if (scriptSnapshot == null) { - scriptSnapshot = fromString(fs.readFileSync(path).toString()) + scriptSnapshot = fromString(fs.readFileSync(path).decodeToString()) file2scriptSnapshotCache[path] = scriptSnapshot }