summaryrefslogtreecommitdiff
path: root/cli/rt/30_os.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/rt/30_os.js')
-rw-r--r--cli/rt/30_os.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/cli/rt/30_os.js b/cli/rt/30_os.js
new file mode 100644
index 000000000..743ecd585
--- /dev/null
+++ b/cli/rt/30_os.js
@@ -0,0 +1,56 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+((window) => {
+ const sendSync = window.__bootstrap.dispatchJson.sendSync;
+
+ function loadavg() {
+ return sendSync("op_loadavg");
+ }
+
+ function hostname() {
+ return sendSync("op_hostname");
+ }
+
+ function osRelease() {
+ return sendSync("op_os_release");
+ }
+
+ function exit(code = 0) {
+ sendSync("op_exit", { code });
+ throw new Error("Code not reachable");
+ }
+
+ function setEnv(key, value) {
+ sendSync("op_set_env", { key, value });
+ }
+
+ function getEnv(key) {
+ return sendSync("op_get_env", { key })[0];
+ }
+
+ function deleteEnv(key) {
+ sendSync("op_delete_env", { key });
+ }
+
+ const env = {
+ get: getEnv,
+ toObject() {
+ return sendSync("op_env");
+ },
+ set: setEnv,
+ delete: deleteEnv,
+ };
+
+ function execPath() {
+ return sendSync("op_exec_path");
+ }
+
+ window.__bootstrap.os = {
+ env,
+ execPath,
+ exit,
+ osRelease,
+ hostname,
+ loadavg,
+ };
+})(this);