diff --git a/externals/dotenv/README.md b/externals/dotenv/README.md new file mode 100644 index 0000000..e69de29 diff --git a/externals/dotenv/_testShared/test.kt b/externals/dotenv/_testShared/test.kt new file mode 100644 index 0000000..fab42a0 --- /dev/null +++ b/externals/dotenv/_testShared/test.kt @@ -0,0 +1,41 @@ +import js.externals.dotenv.Dotenv +import org.khronos.webgl.ArrayBuffer + +fun configHasDefaultOptions() { + Dotenv.config() +} + +fun configAcceptsCustomPath() { + Dotenv.config(object : Dotenv.DotenvOptions { + override val path = ".vne" + }) +} + +fun configAcceptsCustomEncoding() { + Dotenv.config(object : Dotenv.DotenvOptions { + override val encoding = "UTF-8" + }) +} + +fun loadCanForceReadingOfEnvFile() { + val env = Dotenv.config() + + env.load() +} + +fun variableCanBeRetrievedUsingGetOperation() { + val env = Dotenv.config() + + check(env["KOTLIN_VERSION"] == "1.2") +} + +fun parseCanExtractVariablesFromString() { + val env = Dotenv.parse("ONE=1\nTWO=2") + + check(env["ONE"] == "1") + check(env["TWO"] == "2") +} + +fun parseCanExtractVariablesFromBuffer() { + Dotenv.parse(ArrayBuffer(2)) +} diff --git a/externals/dotenv/package.json b/externals/dotenv/package.json new file mode 100644 index 0000000..99f055c --- /dev/null +++ b/externals/dotenv/package.json @@ -0,0 +1,3 @@ +{ + "description": "dotenv" +} diff --git a/externals/dotenv/v5/konfig.json b/externals/dotenv/v5/konfig.json new file mode 100644 index 0000000..7d54b9a --- /dev/null +++ b/externals/dotenv/v5/konfig.json @@ -0,0 +1,3 @@ +{ + "version": "5.0.1" +} diff --git a/externals/dotenv/v5/src/index.kt b/externals/dotenv/v5/src/index.kt new file mode 100644 index 0000000..4e54866 --- /dev/null +++ b/externals/dotenv/v5/src/index.kt @@ -0,0 +1,27 @@ +package js.externals.dotenv + +import org.khronos.webgl.BufferDataSource + +external object Dotenv { + + interface DotenvOptions { + val path: String? + get() = definedExternally + + val encoding: String? + get() = definedExternally + } + + interface DotenvResult { + operator fun get(name: String): String? + + fun load() + + } + + fun config(options: DotenvOptions? = definedExternally): DotenvResult + + fun parse(text: String): DotenvResult + + fun parse(buffer: BufferDataSource): DotenvResult +}