diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/schema.d.ts | 38 | ||||
-rw-r--r-- | src/api/schema.js | 153 | ||||
-rw-r--r-- | src/api/schema.peechy | 28 | ||||
-rw-r--r-- | src/api/schema.zig | 150 |
4 files changed, 265 insertions, 104 deletions
diff --git a/src/api/schema.d.ts b/src/api/schema.d.ts index 1077a34f2..0b80700c5 100644 --- a/src/api/schema.d.ts +++ b/src/api/schema.d.ts @@ -96,6 +96,19 @@ type uint32 = number; 2: "require", require: "require" } + export enum DotEnvBehavior { + disable = 1, + prefix = 2, + load_all = 3 + } + export const DotEnvBehaviorKeys = { + 1: "disable", + disable: "disable", + 2: "prefix", + prefix: "prefix", + 3: "load_all", + load_all: "load_all" + } export enum TransformResponseStatus { success = 1, fail = 2 @@ -236,15 +249,24 @@ type uint32 = number; loaders: Loader[]; } + export interface EnvConfig { + prefix?: string; + defaults?: StringMap; + } + + export interface LoadedEnvConfig { + dotenv: DotEnvBehavior; + defaults: StringMap; + prefix: string; + } + export interface FrameworkConfig { package?: string; client?: string; server?: string; development?: boolean; - client_defines?: StringMap; - server_defines?: StringMap; - client_defines_prefix?: string; - server_defines_prefix?: string; + client_env?: EnvConfig; + server_env?: EnvConfig; } export interface LoadedFramework { @@ -252,9 +274,7 @@ type uint32 = number; package: string; development: boolean; client: boolean; - define_defaults: StringMap; - define_prefix: string; - has_define_prefix: boolean; + env: LoadedEnvConfig; } export interface LoadedRouteConfig { @@ -446,6 +466,10 @@ type uint32 = number; export declare function decodeStringMap(buffer: ByteBuffer): StringMap; export declare function encodeLoaderMap(message: LoaderMap, bb: ByteBuffer): void; export declare function decodeLoaderMap(buffer: ByteBuffer): LoaderMap; + export declare function encodeEnvConfig(message: EnvConfig, bb: ByteBuffer): void; + export declare function decodeEnvConfig(buffer: ByteBuffer): EnvConfig; + export declare function encodeLoadedEnvConfig(message: LoadedEnvConfig, bb: ByteBuffer): void; + export declare function decodeLoadedEnvConfig(buffer: ByteBuffer): LoadedEnvConfig; export declare function encodeFrameworkConfig(message: FrameworkConfig, bb: ByteBuffer): void; export declare function decodeFrameworkConfig(buffer: ByteBuffer): FrameworkConfig; export declare function encodeLoadedFramework(message: LoadedFramework, bb: ByteBuffer): void; diff --git a/src/api/schema.js b/src/api/schema.js index 178d95662..3a76caedf 100644 --- a/src/api/schema.js +++ b/src/api/schema.js @@ -588,6 +588,97 @@ bb.writeByte(encoded); } } +const DotEnvBehavior = { + "1": 1, + "2": 2, + "3": 3, + "disable": 1, + "prefix": 2, + "load_all": 3 +}; +const DotEnvBehaviorKeys = { + "1": "disable", + "2": "prefix", + "3": "load_all", + "disable": "disable", + "prefix": "prefix", + "load_all": "load_all" +}; + +function decodeEnvConfig(bb) { + var result = {}; + + while (true) { + switch (bb.readByte()) { + case 0: + return result; + + case 1: + result["prefix"] = bb.readString(); + break; + + case 2: + result["defaults"] = decodeStringMap(bb); + break; + + default: + throw new Error("Attempted to parse invalid message"); + } + } +} + +function encodeEnvConfig(message, bb) { + + var value = message["prefix"]; + if (value != null) { + bb.writeByte(1); + bb.writeString(value); + } + + var value = message["defaults"]; + if (value != null) { + bb.writeByte(2); + encodeStringMap(value, bb); + } + bb.writeByte(0); + +} + +function decodeLoadedEnvConfig(bb) { + var result = {}; + + result["dotenv"] = DotEnvBehavior[bb.readVarUint()]; + result["defaults"] = decodeStringMap(bb); + result["prefix"] = bb.readString(); + return result; +} + +function encodeLoadedEnvConfig(message, bb) { + + var value = message["dotenv"]; + if (value != null) { + var encoded = DotEnvBehavior[value]; +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"DotEnvBehavior\""); +bb.writeVarUint(encoded); + } else { + throw new Error("Missing required field \"dotenv\""); + } + + var value = message["defaults"]; + if (value != null) { + encodeStringMap(value, bb); + } else { + throw new Error("Missing required field \"defaults\""); + } + + var value = message["prefix"]; + if (value != null) { + bb.writeString(value); + } else { + throw new Error("Missing required field \"prefix\""); + } + +} function decodeFrameworkConfig(bb) { var result = {}; @@ -614,19 +705,11 @@ function decodeFrameworkConfig(bb) { break; case 5: - result["client_defines"] = decodeStringMap(bb); + result["client_env"] = decodeEnvConfig(bb); break; case 6: - result["server_defines"] = decodeStringMap(bb); - break; - - case 7: - result["client_defines_prefix"] = bb.readString(); - break; - - case 8: - result["server_defines_prefix"] = bb.readString(); + result["server_env"] = decodeEnvConfig(bb); break; default: @@ -661,28 +744,16 @@ function encodeFrameworkConfig(message, bb) { bb.writeByte(value); } - var value = message["client_defines"]; + var value = message["client_env"]; if (value != null) { bb.writeByte(5); - encodeStringMap(value, bb); + encodeEnvConfig(value, bb); } - var value = message["server_defines"]; + var value = message["server_env"]; if (value != null) { bb.writeByte(6); - encodeStringMap(value, bb); - } - - var value = message["client_defines_prefix"]; - if (value != null) { - bb.writeByte(7); - bb.writeString(value); - } - - var value = message["server_defines_prefix"]; - if (value != null) { - bb.writeByte(8); - bb.writeString(value); + encodeEnvConfig(value, bb); } bb.writeByte(0); @@ -695,9 +766,7 @@ function decodeLoadedFramework(bb) { result["package"] = bb.readString(); result["development"] = !!bb.readByte(); result["client"] = !!bb.readByte(); - result["define_defaults"] = decodeStringMap(bb); - result["define_prefix"] = bb.readString(); - result["has_define_prefix"] = !!bb.readByte(); + result["env"] = decodeLoadedEnvConfig(bb); return result; } @@ -731,25 +800,11 @@ function encodeLoadedFramework(message, bb) { throw new Error("Missing required field \"client\""); } - var value = message["define_defaults"]; + var value = message["env"]; if (value != null) { - encodeStringMap(value, bb); - } else { - throw new Error("Missing required field \"define_defaults\""); - } - - var value = message["define_prefix"]; - if (value != null) { - bb.writeString(value); - } else { - throw new Error("Missing required field \"define_prefix\""); - } - - var value = message["has_define_prefix"]; - if (value != null) { - bb.writeByte(value); + encodeLoadedEnvConfig(value, bb); } else { - throw new Error("Missing required field \"has_define_prefix\""); + throw new Error("Missing required field \"env\""); } } @@ -2099,6 +2154,12 @@ export { decodeStringMap } export { encodeStringMap } export { decodeLoaderMap } export { encodeLoaderMap } +export { DotEnvBehavior } +export { DotEnvBehaviorKeys } +export { decodeEnvConfig } +export { encodeEnvConfig } +export { decodeLoadedEnvConfig } +export { encodeLoadedEnvConfig } export { decodeFrameworkConfig } export { encodeFrameworkConfig } export { decodeLoadedFramework } diff --git a/src/api/schema.peechy b/src/api/schema.peechy index 864c6b114..431fab3c1 100644 --- a/src/api/schema.peechy +++ b/src/api/schema.peechy @@ -135,15 +135,31 @@ struct LoaderMap { Loader[] loaders; } +enum DotEnvBehavior { + disable = 1; + prefix = 2; + load_all = 3; +} + +message EnvConfig { + string prefix = 1; + StringMap defaults = 2; +} + +struct LoadedEnvConfig { + DotEnvBehavior dotenv; + + StringMap defaults; + string prefix; +} + message FrameworkConfig { string package = 1; string client = 2; string server = 3; bool development = 4; - StringMap client_defines = 5; - StringMap server_defines = 6; - string client_defines_prefix = 7; - string server_defines_prefix = 8; + EnvConfig client_env = 5; + EnvConfig server_env = 6; } struct LoadedFramework { @@ -151,9 +167,7 @@ struct LoadedFramework { string package; bool development; bool client; - StringMap define_defaults; - string define_prefix; - bool has_define_prefix; + LoadedEnvConfig env; } struct LoadedRouteConfig { 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); } }; |