@splitsoftware/splitio
Version:
26 lines (20 loc) • 926 B
JavaScript
import { settingsValidation } from '@splitsoftware/splitio-commons/src/utils/settingsValidation';
import { validateLogger } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/logger/builtinLogger';
import { defaults } from './defaults/node';
import { validateStorage } from './storage/node';
import { validateRuntime } from './runtime/node';
const FLAG_SPEC_VERSION = '1.1';
const params = {
defaults,
runtime: validateRuntime,
storage: validateStorage,
logger: validateLogger,
flagSpec: () => FLAG_SPEC_VERSION
// In Node.js the SDK ignores `config.integrations`, so a validator for integrations is not required
};
export function settingsFactory(config) {
const settings = settingsValidation(config, params);
// if provided, keeps reference to the `requestOptions` object
if (settings.sync.requestOptions) settings.sync.requestOptions = config.sync.requestOptions;
return settings;
}