summaryrefslogtreecommitdiff
path: root/runtime/js/30_os.js
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2020-12-17 16:37:57 +0000
committerGitHub <noreply@github.com>2020-12-17 17:37:57 +0100
commitffb5f7a4e1d5d4ac488058ca3ec3c0805587fe44 (patch)
treedc7b79a699732680fa309d97e5b4c2bc5f486a4a /runtime/js/30_os.js
parent55dc467b419b8e5897b1c832b04d63e383253d84 (diff)
refactor: Rename runtime/rt to runtime/js (#8806)
Diffstat (limited to 'runtime/js/30_os.js')
-rw-r--r--runtime/js/30_os.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/runtime/js/30_os.js b/runtime/js/30_os.js
new file mode 100644
index 000000000..ebc4e8916
--- /dev/null
+++ b/runtime/js/30_os.js
@@ -0,0 +1,66 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+((window) => {
+ const core = window.Deno.core;
+
+ function loadavg() {
+ return core.jsonOpSync("op_loadavg");
+ }
+
+ function hostname() {
+ return core.jsonOpSync("op_hostname");
+ }
+
+ function osRelease() {
+ return core.jsonOpSync("op_os_release");
+ }
+
+ function systemMemoryInfo() {
+ return core.jsonOpSync("op_system_memory_info");
+ }
+
+ function systemCpuInfo() {
+ return core.jsonOpSync("op_system_cpu_info");
+ }
+
+ function exit(code = 0) {
+ core.jsonOpSync("op_exit", { code });
+ throw new Error("Code not reachable");
+ }
+
+ function setEnv(key, value) {
+ core.jsonOpSync("op_set_env", { key, value });
+ }
+
+ function getEnv(key) {
+ return core.jsonOpSync("op_get_env", { key })[0];
+ }
+
+ function deleteEnv(key) {
+ core.jsonOpSync("op_delete_env", { key });
+ }
+
+ const env = {
+ get: getEnv,
+ toObject() {
+ return core.jsonOpSync("op_env");
+ },
+ set: setEnv,
+ delete: deleteEnv,
+ };
+
+ function execPath() {
+ return core.jsonOpSync("op_exec_path");
+ }
+
+ window.__bootstrap.os = {
+ env,
+ execPath,
+ exit,
+ osRelease,
+ systemMemoryInfo,
+ systemCpuInfo,
+ hostname,
+ loadavg,
+ };
+})(this);