This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch 774-env
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit 11b4144af6121e2be20a82e1d44a33b5f37c2c73
Author: Bertil Chapuis <[email protected]>
AuthorDate: Thu Sep 7 11:32:23 2023 +0200

    Expose environment variables to javascript
---
 .../src/main/java/org/apache/baremaps/config/ConfigReader.java | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java 
b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
index d19e4316..2fbfe0c1 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
@@ -18,8 +18,13 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
 import org.graalvm.polyglot.Context;
 import org.graalvm.polyglot.Source;
+import org.graalvm.polyglot.proxy.ProxyObject;
 
 public class ConfigReader {
 
@@ -45,6 +50,11 @@ public class ConfigReader {
         .allowExperimentalOptions(true)
         .allowIO(true)
         .build()) {
+
+      // Expose the environment variables to the script
+      var env = new HashMap<String, Object>(System.getenv());
+      context.getBindings("js").putMember("env", ProxyObject.fromMap(env));
+
       var script = String.format("""
           import config from '%s';
           export default JSON.stringify(config);

Reply via email to