aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/schema.zig')
-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);
}
};