vgno/roc-config

View on GitHub
src/context/helpers/validateAndUpdateSettings.js

Summary

Maintainability
A
0 mins
Test Coverage
import { appendSettings } from '../../configuration/manageSettings';
import addRaw from '../../configuration/addRaw';
import runHook from '../../hooks/runHook';
import validateSettingsWrapper from '../../validation/validateSettingsWrapper';

/* eslint-disable no-param-reassign */
export default function validateAndUpdateSettings(context, validate = false) {
    if (validate) {
        const config = context.config || {};
        const meta = context.meta || {};
        validateSettingsWrapper(config.settings, meta.settings);
    }

    // Add RAW configuration
    context.config = addRaw(context.config);

    runHook('roc')('update-settings', () => context.config.settings)(
        (newSettings) => { context.config.settings = appendSettings(newSettings, context.config); }
    );

    return context;
}
/* eslint-enable */