54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import { nullParser } from './Options/parsers';
|
|
const { ParseServerOptions } = require('./Options/Definitions');
|
|
const logsFolder = (() => {
|
|
let folder = './logs/';
|
|
if (typeof process !== 'undefined' && process.env.TESTING === '1') {
|
|
folder = './test_logs/';
|
|
}
|
|
if (process.env.PARSE_SERVER_LOGS_FOLDER) {
|
|
folder = nullParser(process.env.PARSE_SERVER_LOGS_FOLDER);
|
|
}
|
|
return folder;
|
|
})();
|
|
|
|
const { verbose, level } = (() => {
|
|
const verbose = process.env.VERBOSE ? true : false;
|
|
return { verbose, level: verbose ? 'verbose' : undefined };
|
|
})();
|
|
|
|
const DefinitionDefaults = Object.keys(ParseServerOptions).reduce((memo, key) => {
|
|
const def = ParseServerOptions[key];
|
|
if (Object.prototype.hasOwnProperty.call(def, 'default')) {
|
|
memo[key] = def.default;
|
|
}
|
|
return memo;
|
|
}, {});
|
|
|
|
const computedDefaults = {
|
|
jsonLogs: process.env.JSON_LOGS || false,
|
|
logsFolder,
|
|
verbose,
|
|
level,
|
|
};
|
|
|
|
export default Object.assign({}, DefinitionDefaults, computedDefaults);
|
|
export const DefaultMongoURI = DefinitionDefaults.databaseURI;
|
|
|
|
// Parse Server-specific database options that should be filtered out
|
|
// before passing to MongoDB client
|
|
export const ParseServerDatabaseOptions = [
|
|
'allowPublicExplain',
|
|
'createIndexRoleName',
|
|
'createIndexUserEmail',
|
|
'createIndexUserEmailCaseInsensitive',
|
|
'createIndexUserEmailVerifyToken',
|
|
'createIndexUserPasswordResetToken',
|
|
'createIndexUserUsername',
|
|
'createIndexUserUsernameCaseInsensitive',
|
|
'disableIndexFieldValidation',
|
|
'enableSchemaHooks',
|
|
'logClientEvents',
|
|
'maxTimeMS',
|
|
'schemaCacheTtl',
|
|
];
|