mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-02 18:09:58 +08:00
chore(server): validate function not actually used (#11263)
This commit is contained in:
@@ -37,7 +37,7 @@ export type ConfigDescriptor<T> = {
|
|||||||
type ConfigDefineDescriptor<T> = {
|
type ConfigDefineDescriptor<T> = {
|
||||||
desc: string;
|
desc: string;
|
||||||
default: T;
|
default: T;
|
||||||
validate?: (value: T) => boolean;
|
validate?: (value: T) => z.SafeParseReturnType<T, T>;
|
||||||
shape?: z.ZodType<T>;
|
shape?: z.ZodType<T>;
|
||||||
env?: string | [string, EnvConfigType];
|
env?: string | [string, EnvConfigType];
|
||||||
link?: string;
|
link?: string;
|
||||||
@@ -158,7 +158,7 @@ function standardizeDescriptor<T>(
|
|||||||
default: desc.default,
|
default: desc.default,
|
||||||
type,
|
type,
|
||||||
validate: (value: T) => {
|
validate: (value: T) => {
|
||||||
return shape.safeParse(value);
|
return desc.validate ? desc.validate(value) : shape.safeParse(value);
|
||||||
},
|
},
|
||||||
env,
|
env,
|
||||||
link: desc.link,
|
link: desc.link,
|
||||||
@@ -257,7 +257,15 @@ export function getDefaultConfig(): AppConfigSchema {
|
|||||||
const { success, error } = desc.validate(defaultValue);
|
const { success, error } = desc.validate(defaultValue);
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw error;
|
throw new Error(
|
||||||
|
error.issues
|
||||||
|
.map(issue => {
|
||||||
|
return `Invalid config for module [${module}] with key [${key}]
|
||||||
|
Value: ${JSON.stringify(defaultValue)}
|
||||||
|
Error: ${issue.message}`;
|
||||||
|
})
|
||||||
|
.join('\n')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
set(modulizedConfig, key, defaultValue);
|
set(modulizedConfig, key, defaultValue);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ defineModuleConfig('redis', {
|
|||||||
desc: 'The database index of redis server to be used(Must be less than 10).',
|
desc: 'The database index of redis server to be used(Must be less than 10).',
|
||||||
default: 0,
|
default: 0,
|
||||||
env: ['REDIS_SERVER_DATABASE', 'integer'],
|
env: ['REDIS_SERVER_DATABASE', 'integer'],
|
||||||
validate: val => val >= 0 && val < 10,
|
shape: z.number().int().nonnegative().max(10),
|
||||||
},
|
},
|
||||||
host: {
|
host: {
|
||||||
desc: 'The host of the redis server.',
|
desc: 'The host of the redis server.',
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ export interface ServerFlags {
|
|||||||
declare global {
|
declare global {
|
||||||
interface AppConfigSchema {
|
interface AppConfigSchema {
|
||||||
server: {
|
server: {
|
||||||
externalUrl: string;
|
externalUrl?: string;
|
||||||
https: boolean;
|
https: boolean;
|
||||||
host: string;
|
host: string;
|
||||||
port: number;
|
port: number;
|
||||||
path: string;
|
path: string;
|
||||||
name: string | undefined;
|
name?: string;
|
||||||
};
|
};
|
||||||
flags: ServerFlags;
|
flags: ServerFlags;
|
||||||
}
|
}
|
||||||
@@ -29,9 +29,16 @@ defineModuleConfig('server', {
|
|||||||
desc: `Base url of AFFiNE server, used for generating external urls.
|
desc: `Base url of AFFiNE server, used for generating external urls.
|
||||||
Default to be \`[server.protocol]://[server.host][:server.port]\` if not specified.
|
Default to be \`[server.protocol]://[server.host][:server.port]\` if not specified.
|
||||||
`,
|
`,
|
||||||
default: 'http://localhost:3010',
|
default: '',
|
||||||
env: 'AFFINE_SERVER_EXTERNAL_URL',
|
env: 'AFFINE_SERVER_EXTERNAL_URL',
|
||||||
shape: z.string().url(),
|
validate: val => {
|
||||||
|
// allow to be nullable and empty string
|
||||||
|
if (!val) {
|
||||||
|
return { success: true, data: val };
|
||||||
|
}
|
||||||
|
|
||||||
|
return z.string().url().safeParse(val);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
https: {
|
https: {
|
||||||
desc: 'Whether the server is hosted on a ssl enabled domain (https://).',
|
desc: 'Whether the server is hosted on a ssl enabled domain (https://).',
|
||||||
|
|||||||
Reference in New Issue
Block a user