From c8afcb43d22f577bbe8815aab7dd105c0f2b0ac3 Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Sat, 3 Feb 2024 14:04:00 +0100 Subject: [PATCH] add state config loading logic --- instance/src/lib/config.ts | 35 +++++++++++++++++++++++++---------- instance/src/lib/paths.ts | 4 ++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/instance/src/lib/config.ts b/instance/src/lib/config.ts index 166b584..00bb2c2 100644 --- a/instance/src/lib/config.ts +++ b/instance/src/lib/config.ts @@ -18,16 +18,14 @@ export function parse_container_config(json: string) { name: z.string(), version: z.number(), redirects: z.array( - z - .tuple([ - z.number(), - z.number(), - ]) - .or(z.tuple([ - z.number(), - z.number(), - z.literal("tcp").or(z.literal("udp")), - ])), + z.tuple([ + z.number(), + z.number(), + ]).or(z.tuple([ + z.number(), + z.number(), + z.literal("tcp").or(z.literal("udp")), + ])), ), }).parse(JSON.parse(json)); } @@ -57,3 +55,20 @@ export async function load_all_container_configs() { const results = await Promise.all(names.map((name) => load_container_config(name))); return results.filter((item) => item != null) as ContainerConfig[]; } + +export type StateConfig = ReturnType; +export function new_config(app_key: string, app_secret: string, consumer_key: string) { + return { app_key, app_secret, consumer_key }; +} + +export async function load_state_config() { + try { + const content = await Deno.readTextFile(state_config_path()); + return JSON.parse(content) as StateConfig; + } catch (_) { + const result = new_config("APP_KEY", "APP_SECRET", "CONSUMER_KEY"); + const content = JSON.stringify(result); + await Deno.writeTextFile(state_config_path(), content); + return result; + } +} diff --git a/instance/src/lib/paths.ts b/instance/src/lib/paths.ts index 622a905..3fa1aa9 100644 --- a/instance/src/lib/paths.ts +++ b/instance/src/lib/paths.ts @@ -34,3 +34,7 @@ export function base_paths(name: string) { const module = base + "/module.ts"; return { base, module }; } + +export function state_config_path() { + return instance_root_path() + "/local/config.json"; +}