aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-14 21:28:13 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-14 21:28:13 -0700
commitd95ffe63023c09ea792d4f0379374f7c6c7975e6 (patch)
tree6dfb29fd239d81fbca04182b718376efb08721dc /src/api/schema.zig
parent76bb26de8302f4dd1c833496cb7b5f2f4e808ce8 (diff)
downloadbun-d95ffe63023c09ea792d4f0379374f7c6c7975e6.tar.gz
bun-d95ffe63023c09ea792d4f0379374f7c6c7975e6.tar.zst
bun-d95ffe63023c09ea792d4f0379374f7c6c7975e6.zip
.env works
Former-commit-id: 45ee7874f2c8566c3034743161031b0859423f41
Diffstat (limited to '')
-rw-r--r--src/api/schema.zig150
1 files changed, 106 insertions, 44 deletions
diff --git a/src/api/schema.zig b/src/api/schema.zig
index 344a60a28..ffb949a1f 100644
--- a/src/api/schema.zig
+++ b/src/api/schema.zig
@@ -779,6 +779,98 @@ pub fn encode(this: *const @This(), writer: anytype) anyerror!void {
};
+pub const DotEnvBehavior = enum(u32) {
+
+_none,
+ /// disable
+ disable,
+
+ /// prefix
+ prefix,
+
+ /// load_all
+ load_all,
+
+_,
+
+ pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void {
+ return try std.json.stringify(@tagName(self), opts, o);
+ }
+
+
+};
+
+pub const EnvConfig = struct {
+/// prefix
+prefix: ?[]const u8 = null,
+
+/// defaults
+defaults: ?StringMap = null,
+
+
+pub fn decode(reader: anytype) anyerror!EnvConfig {
+ var this = std.mem.zeroes(EnvConfig);
+
+ while(true) {
+ switch (try reader.readByte()) {
+ 0 => { return this; },
+
+ 1 => {
+ this.prefix = try reader.readValue([]const u8);
+},
+ 2 => {
+ this.defaults = try reader.readValue(StringMap);
+},
+ else => {
+ return error.InvalidMessage;
+ },
+ }
+ }
+unreachable;
+}
+
+pub fn encode(this: *const @This(), writer: anytype) anyerror!void {
+if (this.prefix) |prefix| {
+ try writer.writeFieldID(1);
+ try writer.writeValue(prefix);
+}
+if (this.defaults) |defaults| {
+ try writer.writeFieldID(2);
+ try writer.writeValue(defaults);
+}
+try writer.endMessage();
+}
+
+};
+
+pub const LoadedEnvConfig = struct {
+/// dotenv
+dotenv: DotEnvBehavior,
+
+/// defaults
+defaults: StringMap,
+
+/// prefix
+prefix: []const u8,
+
+
+pub fn decode(reader: anytype) anyerror!LoadedEnvConfig {
+ var this = std.mem.zeroes(LoadedEnvConfig);
+
+ this.dotenv = try reader.readValue(DotEnvBehavior);
+ this.defaults = try reader.readValue(StringMap);
+ this.prefix = try reader.readValue([]const u8);
+ return this;
+}
+
+pub fn encode(this: *const @This(), writer: anytype) anyerror!void {
+ try writer.writeEnum(this.dotenv);
+ try writer.writeValue(this.defaults);
+ try writer.writeValue(this.prefix);
+}
+
+};
+
pub const FrameworkConfig = struct {
/// package
package: ?[]const u8 = null,
@@ -792,17 +884,11 @@ server: ?[]const u8 = null,
/// development
development: ?bool = null,
-/// client_defines
-client_defines: ?StringMap = null,
+/// client_env
+client_env: ?EnvConfig = null,
-/// server_defines
-server_defines: ?StringMap = null,
-
-/// client_defines_prefix
-client_defines_prefix: ?[]const u8 = null,
-
-/// server_defines_prefix
-server_defines_prefix: ?[]const u8 = null,
+/// server_env
+server_env: ?EnvConfig = null,
pub fn decode(reader: anytype) anyerror!FrameworkConfig {
@@ -825,16 +911,10 @@ pub fn decode(reader: anytype) anyerror!FrameworkConfig {
this.development = try reader.readValue(bool);
},
5 => {
- this.client_defines = try reader.readValue(StringMap);
+ this.client_env = try reader.readValue(EnvConfig);
},
6 => {
- this.server_defines = try reader.readValue(StringMap);
-},
- 7 => {
- this.client_defines_prefix = try reader.readValue([]const u8);
-},
- 8 => {
- this.server_defines_prefix = try reader.readValue([]const u8);
+ this.server_env = try reader.readValue(EnvConfig);
},
else => {
return error.InvalidMessage;
@@ -861,21 +941,13 @@ if (this.development) |development| {
try writer.writeFieldID(4);
try writer.writeInt(@intCast(u8, @boolToInt(development)));
}
-if (this.client_defines) |client_defines| {
+if (this.client_env) |client_env| {
try writer.writeFieldID(5);
- try writer.writeValue(client_defines);
+ try writer.writeValue(client_env);
}
-if (this.server_defines) |server_defines| {
+if (this.server_env) |server_env| {
try writer.writeFieldID(6);
- try writer.writeValue(server_defines);
-}
-if (this.client_defines_prefix) |client_defines_prefix| {
- try writer.writeFieldID(7);
- try writer.writeValue(client_defines_prefix);
-}
-if (this.server_defines_prefix) |server_defines_prefix| {
- try writer.writeFieldID(8);
- try writer.writeValue(server_defines_prefix);
+ try writer.writeValue(server_env);
}
try writer.endMessage();
}
@@ -895,14 +967,8 @@ development: bool = false,
/// client
client: bool = false,
-/// define_defaults
-define_defaults: StringMap,
-
-/// define_prefix
-define_prefix: []const u8,
-
-/// has_define_prefix
-has_define_prefix: bool = false,
+/// env
+env: LoadedEnvConfig,
pub fn decode(reader: anytype) anyerror!LoadedFramework {
@@ -912,9 +978,7 @@ pub fn decode(reader: anytype) anyerror!LoadedFramework {
this.package = try reader.readValue([]const u8);
this.development = try reader.readValue(bool);
this.client = try reader.readValue(bool);
- this.define_defaults = try reader.readValue(StringMap);
- this.define_prefix = try reader.readValue([]const u8);
- this.has_define_prefix = try reader.readValue(bool);
+ this.env = try reader.readValue(LoadedEnvConfig);
return this;
}
@@ -923,9 +987,7 @@ pub fn encode(this: *const @This(), writer: anytype) anyerror!void {
try writer.writeValue(this.package);
try writer.writeInt(@intCast(u8, @boolToInt(this.development)));
try writer.writeInt(@intCast(u8, @boolToInt(this.client)));
- try writer.writeValue(this.define_defaults);
- try writer.writeValue(this.define_prefix);
- try writer.writeInt(@intCast(u8, @boolToInt(this.has_define_prefix)));
+ try writer.writeValue(this.env);
}
};
' height='13' alt='Gravatar' /> Martin Trapp 2-3/+11 transitions (#8116) 2023-08-21fix: reinsert attribute to specify direction of ViewTransition (forward / ↵Gravatar Martin Trapp 2-7/+12 back) (#8109) 2023-08-21Remove deprecated APIs (#8170)Gravatar Bjorn Lu 4-107/+5 2023-08-21Remove pre-shiki v0.14 theme names (#8169)Gravatar Bjorn Lu 6-80/+14 2023-08-21[docs] JSX framework integration READMEs (#8151)Gravatar Sarah Rainsberger 3-0/+104 2023-08-21fix(assets): Add missing type for imageConfig export (#8171)Gravatar Erika 2-1/+7 2023-08-21Deprecate simple objects from endpoints (#8132)Gravatar Bjorn Lu 20-201/+243 2023-08-18[docs] update scopedStyleStragegy default and description (#8148)Gravatar Sarah Rainsberger 1-2/+2 2023-08-18[ci] release (#8145)astro@2.10.12@astrojs/react@2.3.2@astrojs/node@5.3.5Gravatar Houston (Bot) 46-92/+98 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2023-08-18Fix missing package file regression (#8149)Gravatar Matthew Phillips 2-1/+7 2023-08-18fix(node): delegate preview's not found and error handling to core/app (#8141)Gravatar Arsh 2-9/+6 * fix(node): delegate preview's not found and error handling to core/app * add changeset --------- Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> 2023-08-18Replace `class:list` implementation with `clsx` (#8142)Gravatar Nate Moore 12-68/+133 * chore: replace `class:list` implementation with `clsx` * chore: remove Set support from `class:list` test * chore: better class:list test * Update packages/astro/src/runtime/server/render/component.ts 2023-08-18[ci] formatGravatar matthewp 1-1/+4 2023-08-18fix(data collections): normalize file paths for DataEntry.id (#8144)Gravatar Arsh 2-1/+6 * normalize file paths for DataEntry.id * add changeset 2023-08-18[ci] release (beta) (#8140)astro@3.0.0-beta.4Gravatar Houston (Bot) 41-65/+72 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2023-08-18[error messages] Update image errors-data.ts (#8126)Gravatar Sarah Rainsberger 1-12/+12 Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> 2023-08-18fix(polyfills): Use object shape for Stackblitz polyfill listGravatar Princesseuh 1-2/+2 2023-08-18fix: polyfill File using undici instead of node:buffer (#8139)Gravatar Erika 2-8/+9 * fix: polyfill File using undici instead of node:buffer * chore: changeset 2023-08-18[ci] release (beta) (#8073)create-astro@4.0.0-beta.1astro@3.0.0-beta.3@astrojs/vercel@4.0.0-beta.3@astrojs/telemetry@3.0.0-beta.2@astrojs/svelte@4.0.0-beta.1@astrojs/solid-js@3.0.0-beta.2@astrojs/react@3.0.0-beta.3@astrojs/mdx@1.0.0-beta.1@astrojs/cloudflare@7.0.0-beta.2Gravatar Houston (Bot) 63-117/+389 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2023-08-18[ci] release (#8138)astro@2.10.11@astrojs/react@2.3.1Gravatar Houston (Bot) 44-80/+82 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2023-08-18[ci] formatGravatar natemoo-re 1-1/+1 2023-08-18Fix 404 response leading to an infinite loop when there is no 404 page (#8136)Gravatar André Alves 2-1/+10 * fix: 404 response leads to infinite loop * chore: changeset --------- Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> 2023-08-18fix(react): add missing export (#8137)Gravatar Nate Moore 2-1/+7 2023-08-18[ci] release (#8096)create-astro@3.2.2astro@2.10.10@astrojs/vercel@3.8.2@astrojs/svelte@3.1.1@astrojs/solid-js@2.2.1@astrojs/react@2.3.0Gravatar Houston (Bot) 63-197/+186 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2023-08-18changeset(next): inlineStylesheets default switch is major (#8133)Gravatar Arsh 1-1/+1 2023-08-18feat: add polyfills for stackblitz (#8130)Gravatar Erika 7-6/+86 * feat: add polyfills for Stackblitz * chore: changeset