[Snow Team] Merge config-fixer's work with conflict resolution
This commit is contained in:
@@ -5,11 +5,21 @@ import type {
|
||||
AdminDefaultUser,
|
||||
RuntimeConfig,
|
||||
} from "../types/runtime-config.js";
|
||||
import { parseBoolean, parseInteger, parseJsonArray } from "./runtime-env.js";
|
||||
import {
|
||||
parseBoolean,
|
||||
parseInteger,
|
||||
parseJsonArray,
|
||||
parseCommaSeparatedStrings,
|
||||
} from "./runtime-env.js";
|
||||
import { deepMerge } from "./runtime-merge.js";
|
||||
|
||||
type RuntimeConfigPath = readonly [string, ...string[]];
|
||||
type RuntimeConfigValue = string | number | boolean | AdminDefaultUser[];
|
||||
type RuntimeConfigValue =
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| AdminDefaultUser[]
|
||||
| string[];
|
||||
type RuntimeEnv = Record<string, string | undefined>;
|
||||
|
||||
type EnvOverride = {
|
||||
@@ -347,31 +357,51 @@ function booleanEnv(env: string, configPath: RuntimeConfigPath): EnvOverride {
|
||||
};
|
||||
}
|
||||
|
||||
function adminUsersJsonEnv(env: string, configPath: RuntimeConfigPath): EnvOverride {
|
||||
function adminUsersJsonEnv(
|
||||
env: string,
|
||||
configPath: RuntimeConfigPath
|
||||
): EnvOverride {
|
||||
return {
|
||||
env,
|
||||
path: configPath,
|
||||
read(rawValue) {
|
||||
return parseJsonArray<AdminDefaultUser>(rawValue)
|
||||
return parseJsonArray<AdminDefaultUser>(rawValue);
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function corsOriginsEnv(env: string, configPath: RuntimeConfigPath): EnvOverride {
|
||||
function stringArrayEnv(
|
||||
env: string,
|
||||
configPath: RuntimeConfigPath
|
||||
): EnvOverride {
|
||||
return {
|
||||
env,
|
||||
path: configPath,
|
||||
read: parseCommaSeparatedStrings,
|
||||
};
|
||||
}
|
||||
|
||||
function corsOriginsEnv(
|
||||
env: string,
|
||||
configPath: RuntimeConfigPath
|
||||
): EnvOverride {
|
||||
return {
|
||||
env,
|
||||
path: configPath,
|
||||
read(rawValue) {
|
||||
const value = parseString(rawValue)
|
||||
const value = parseString(rawValue);
|
||||
if (value === null) {
|
||||
return null
|
||||
return null;
|
||||
}
|
||||
if (value.trim() === '*') {
|
||||
return ['*']
|
||||
if (value.trim() === "*") {
|
||||
return ["*"];
|
||||
}
|
||||
return value.split(',').map((s) => s.trim()).filter(Boolean)
|
||||
return value
|
||||
.split(",")
|
||||
.map((s) => s.trim())
|
||||
.filter(Boolean);
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function parseString(rawValue: unknown): string | null {
|
||||
|
||||
Reference in New Issue
Block a user