aboutsummaryrefslogtreecommitdiff
path: root/src/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript')
-rw-r--r--src/javascript/jsc/config.zig2
-rw-r--r--src/javascript/jsc/javascript.zig1
-rw-r--r--src/javascript/jsc/new.zig0
-rw-r--r--src/javascript/jsc/node_env_buf_map.zig151
4 files changed, 0 insertions, 154 deletions
diff --git a/src/javascript/jsc/config.zig b/src/javascript/jsc/config.zig
index 2f91e433d..1356bc8eb 100644
--- a/src/javascript/jsc/config.zig
+++ b/src/javascript/jsc/config.zig
@@ -13,8 +13,6 @@ const js_printer = @import("../../js_printer.zig");
const hash_map = @import("../../hash_map.zig");
const http = @import("../../http.zig");
-usingnamespace @import("./node_env_buf_map.zig");
-
pub const DefaultBunDefines = struct {
pub const Keys = struct {
const window = "window";
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index 4a6498a2b..124237c04 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -17,7 +17,6 @@ const hash_map = @import("../../hash_map.zig");
const http = @import("../../http.zig");
const ImportKind = ast.ImportKind;
const Analytics = @import("../../analytics/analytics_thread.zig");
-usingnamespace @import("./node_env_buf_map.zig");
usingnamespace @import("./base.zig");
usingnamespace @import("./webcore/response.zig");
usingnamespace @import("./config.zig");
diff --git a/src/javascript/jsc/new.zig b/src/javascript/jsc/new.zig
deleted file mode 100644
index e69de29bb..000000000
--- a/src/javascript/jsc/new.zig
+++ /dev/null
diff --git a/src/javascript/jsc/node_env_buf_map.zig b/src/javascript/jsc/node_env_buf_map.zig
deleted file mode 100644
index 73bc025b6..000000000
--- a/src/javascript/jsc/node_env_buf_map.zig
+++ /dev/null
@@ -1,151 +0,0 @@
-const std = @import("std");
-usingnamespace @import("../../global.zig");
-
-// This makes it so we get the defines already formatted from the user's environment with the "process.env." prefix set
-// This also normalizes quoting
-// Currently, it truncates any environment variables to a max of 1024 bytes
-pub const NodeEnvBufMap = struct {
- backing: std.BufMap,
- pub fn init(allocator: *std.mem.Allocator) NodeEnvBufMap {
- return NodeEnvBufMap{ .backing = std.BufMap.init(allocator) };
- }
- pub fn get(this: *const NodeEnvBufMap, key: string) ?string {
- return this.backing.get(key);
- }
- pub threadlocal var bufkeybuf: [4096]u8 = undefined;
- pub threadlocal var bufkeybuf_first = true;
-
- pub fn iterator(this: *NodeEnvBufMap) @typeInfo(@TypeOf(std.BufMap.iterator)).Fn.return_type.? {
- return this.backing.iterator();
- }
-
- pub fn put(this: *NodeEnvBufMap, key: string, value: anytype) !void {
- if (value.len == 0) {
- return;
- }
-
- if (bufkeybuf_first) {
- std.mem.copy(u8, &bufkeybuf, "process.env.");
- bufkeybuf_first = false;
- }
- std.mem.copy(u8, bufkeybuf["process.env.".len..], key);
- var key_slice = bufkeybuf[0 .. key.len + "process.env.".len];
- var value_slice = value;
- if (value_slice.len > 0) {
- const max_value_slice_len = std.math.min(value.len, bufkeybuf.len - key_slice.len);
- if (key_slice.len < bufkeybuf.len and value_slice[0] != '"' and value_slice[value.len - 1] != '"') {
- value_slice = bufkeybuf[key_slice.len..];
- if (value_slice.len > 0) {
- value_slice = value_slice[0 .. max_value_slice_len + 2];
- value_slice[0] = '"';
- std.mem.copy(u8, value_slice[1..], value[0..max_value_slice_len]);
- value_slice[value_slice.len - 1] = '"';
- } else {
- value_slice.len = 0;
- }
- } else if (value_slice[0] != '"') {
- value_slice[0] = '"';
- std.mem.copy(u8, value_slice[1..], value[0..max_value_slice_len]);
- } else if (value_slice[value.len - 1] != '"') {
- std.mem.copy(u8, value_slice[1..], value[0..max_value_slice_len]);
- value_slice[value_slice.len - 1] = '"';
- }
- }
-
- return this.backing.put(key_slice, value_slice);
- }
-
- pub fn count(this: *const NodeEnvBufMap) usize {
- return this.backing.count();
- }
-
- pub fn deinit(this: *NodeEnvBufMap) void {
- this.backing.deinit();
- }
-};
-
-pub fn getNodeEnvMap(allocator: *std.mem.Allocator) !NodeEnvBufMap {
- var result = NodeEnvBufMap.init(allocator);
- errdefer result.deinit();
- const builtin = std.builtin;
- if (builtin.os.tag == .windows) {
- const ptr = os.windows.peb().ProcessParameters.Environment;
-
- var i: usize = 0;
- while (ptr[i] != 0) {
- const key_start = i;
-
- while (ptr[i] != 0 and ptr[i] != '=') : (i += 1) {}
- const key_w = ptr[key_start..i];
- const key = try std.unicode.utf16leToUtf8Alloc(allocator, key_w);
- errdefer allocator.free(key);
-
- if (ptr[i] == '=') i += 1;
-
- const value_start = i;
- while (ptr[i] != 0) : (i += 1) {}
- const value_w = ptr[value_start..i];
- const value = try std.unicode.utf16leToUtf8Alloc(allocator, value_w);
- errdefer allocator.free(value);
-
- i += 1; // skip over null byte
-
- try result.putMove(key, value);
- }
- return result;
- } else if (builtin.os.tag == .wasi) {
- var environ_count: usize = undefined;
- var environ_buf_size: usize = undefined;
-
- const environ_sizes_get_ret = os.wasi.environ_sizes_get(&environ_count, &environ_buf_size);
- if (environ_sizes_get_ret != os.wasi.ESUCCESS) {
- return os.unexpectedErrno(environ_sizes_get_ret);
- }
-
- var environ = try allocator.alloc([*:0]u8, environ_count);
- defer allocator.free(environ);
- var environ_buf = try allocator.alloc(u8, environ_buf_size);
- defer allocator.free(environ_buf);
-
- const environ_get_ret = os.wasi.environ_get(environ.ptr, environ_buf.ptr);
- if (environ_get_ret != os.wasi.ESUCCESS) {
- return os.unexpectedErrno(environ_get_ret);
- }
-
- for (environ) |env| {
- const pair = mem.spanZ(env);
- var parts = mem.split(pair, "=");
- const key = parts.next().?;
- const value = parts.next().?;
- try result.put(key, value);
- }
- return result;
- } else if (builtin.link_libc) {
- var ptr = std.c.environ;
- while (ptr.*) |line| : (ptr += 1) {
- var line_i: usize = 0;
- while (line[line_i] != 0 and line[line_i] != '=') : (line_i += 1) {}
- const key = line[0..line_i];
-
- var end_i: usize = line_i;
- while (line[end_i] != 0) : (end_i += 1) {}
- const value = line[line_i + 1 .. end_i];
-
- try result.put(key, value);
- }
- return result;
- } else {
- for (os.environ) |line| {
- var line_i: usize = 0;
- while (line[line_i] != 0 and line[line_i] != '=') : (line_i += 1) {}
- const key = line[0..line_i];
-
- var end_i: usize = line_i;
- while (line[end_i] != 0) : (end_i += 1) {}
- const value = line[line_i + 1 .. end_i];
-
- try result.put(key, value);
- }
- return result;
- }
-}