|
@@ -1,3 +1,5 @@
|
|
|
|
|
+import { parseISO } from 'date-fns';
|
|
|
|
|
+
|
|
|
import { envUtils } from '@growi/core';
|
|
import { envUtils } from '@growi/core';
|
|
|
|
|
|
|
|
import loggerFactory from '~/utils/logger';
|
|
import loggerFactory from '~/utils/logger';
|
|
@@ -9,7 +11,7 @@ import ConfigModel, {
|
|
|
|
|
|
|
|
const logger = loggerFactory('growi:service:ConfigLoader');
|
|
const logger = loggerFactory('growi:service:ConfigLoader');
|
|
|
|
|
|
|
|
-enum ValueType { NUMBER, STRING, BOOLEAN }
|
|
|
|
|
|
|
+enum ValueType { NUMBER, STRING, BOOLEAN, DATE }
|
|
|
|
|
|
|
|
interface ValueParser<T> {
|
|
interface ValueParser<T> {
|
|
|
parse(value: string): T;
|
|
parse(value: string): T;
|
|
@@ -26,10 +28,11 @@ type EnumDictionary<T extends string | symbol | number, U> = {
|
|
|
[K in T]: U;
|
|
[K in T]: U;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const parserDictionary: EnumDictionary<ValueType, ValueParser<number | string | boolean>> = {
|
|
|
|
|
|
|
+const parserDictionary: EnumDictionary<ValueType, ValueParser<number | string | boolean | Date>> = {
|
|
|
[ValueType.NUMBER]: { parse: (v: string) => { return parseInt(v, 10) } },
|
|
[ValueType.NUMBER]: { parse: (v: string) => { return parseInt(v, 10) } },
|
|
|
[ValueType.STRING]: { parse: (v: string) => { return v } },
|
|
[ValueType.STRING]: { parse: (v: string) => { return v } },
|
|
|
[ValueType.BOOLEAN]: { parse: (v: string) => { return envUtils.toBoolean(v) } },
|
|
[ValueType.BOOLEAN]: { parse: (v: string) => { return envUtils.toBoolean(v) } },
|
|
|
|
|
+ [ValueType.DATE]: { parse: (v: string) => { return parseISO(v) } },
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -208,6 +211,12 @@ const ENV_VAR_NAME_TO_CONFIG_INFO = {
|
|
|
type: ValueType.STRING,
|
|
type: ValueType.STRING,
|
|
|
default: null,
|
|
default: null,
|
|
|
},
|
|
},
|
|
|
|
|
+ AUTO_INSTALL_SERVER_DATE: {
|
|
|
|
|
+ ns: 'crowi',
|
|
|
|
|
+ key: 'autoInstall:serverDate',
|
|
|
|
|
+ type: ValueType.DATE,
|
|
|
|
|
+ default: null,
|
|
|
|
|
+ },
|
|
|
S2SMSG_PUBSUB_SERVER_TYPE: {
|
|
S2SMSG_PUBSUB_SERVER_TYPE: {
|
|
|
ns: 'crowi',
|
|
ns: 'crowi',
|
|
|
key: 's2sMessagingPubsub:serverType',
|
|
key: 's2sMessagingPubsub:serverType',
|