@@ -2,6 +2,7 @@ import { z } from "zod";
22import fs from "fs/promises" ;
33import merge from "deepmerge" ;
44import { isServer } from "solid-js/web" ;
5+ import x from "../../dist/public/assets/user-bdc93350" ;
56
67const configPath = process . cwd ?.( ) && `${ process . cwd ( ) } /config.json` ;
78
@@ -19,24 +20,34 @@ const schemaConfig = z.object({
1920 prometheus : z . object ( {
2021 url : z . string ( ) ,
2122 } ) ,
23+ oauth : z . object ( {
24+ github : z
25+ . object ( {
26+ id : z . string ( ) ,
27+ secret : z . string ( ) ,
28+ } )
29+ . optional ( ) ,
30+ } ) ,
2231} ) ;
2332
2433const parseEnv = ( { prefix = "" , envs = process . env ?? { } } = { } ) => {
2534 const parsed = { } as any ;
26- Object . entries ( envs ) . forEach ( ( [ key , value ] ) => {
27- const seq = ( obj : any , arr : Array < string > , v : string | undefined ) => {
28- if ( typeof obj === "string" ) return ;
29- if ( arr . length > 1 ) {
30- const [ pos ] = arr . splice ( 0 , 1 ) ;
31- if ( ! obj [ pos ] ) obj [ pos ] = { } ;
32- seq ( obj [ pos ] , arr , v ) ;
33- } else {
34- obj [ arr [ 0 ] ] = v ;
35- }
36- } ;
37- const keyArr = key . split ( "_" ) . map ( ( e ) => e . toLocaleLowerCase ( ) ) ;
38- seq ( parsed , keyArr , value ) ;
39- } ) ;
35+ Object . entries ( envs )
36+ . filter ( ( [ key ] ) => key ?. startsWith ( prefix . toUpperCase ( ) ) )
37+ . forEach ( ( [ key , value ] ) => {
38+ const seq = ( obj : any , arr : Array < string > , v : string | undefined ) => {
39+ if ( typeof obj === "string" ) return ;
40+ if ( arr . length > 1 ) {
41+ const [ pos ] = arr . splice ( 0 , 1 ) ;
42+ if ( ! obj [ pos ] ) obj [ pos ] = { } ;
43+ seq ( obj [ pos ] , arr , v ) ;
44+ } else {
45+ obj [ arr [ 0 ] ] = v ;
46+ }
47+ } ;
48+ const keyArr = key . split ( "_" ) . map ( ( e ) => e . toLocaleLowerCase ( ) ) ;
49+ seq ( parsed , keyArr , value ) ;
50+ } ) ;
4051 return prefix !== "" ? parsed ?. [ prefix ] ?? { } : parsed ;
4152} ;
4253
@@ -56,4 +67,4 @@ const getConfig = async () => {
5667 return config ;
5768} ;
5869
59- export const config = isServer ? schemaConfig . parse ( await getConfig ( ) ) : { } ;
70+ export const config = isServer ? schemaConfig . parse ( await getConfig ( ) ) : null ;
0 commit comments