From 9202ecf1047482816c3f594f58df3e50b2027593 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Wed, 22 Nov 2017 13:26:18 -0500 Subject: [PATCH] Merge user config with default config Not recursively so values won't get combined, but missing keys will get their default values which makes upgrading a non-breaking change if we add new options. --- src/index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 9ab46f830..303f59168 100644 --- a/src/index.js +++ b/src/index.js @@ -14,6 +14,14 @@ import substituteResponsiveAtRules from './lib/substituteResponsiveAtRules' import substituteScreenAtRules from './lib/substituteScreenAtRules' import substituteClassApplyAtRules from './lib/substituteClassApplyAtRules' +function mergeConfigWithDefaults(config) { + const defaultConfig = require('../defaultConfig')() + _.defaults(config, defaultConfig) + config.options = _.defaults(config.options, defaultConfig.options) + config.options.modules = _.defaults(config.options.modules, defaultConfig.options.modules) + return config +} + const plugin = postcss.plugin('tailwind', config => { const plugins = [] @@ -27,7 +35,7 @@ const plugin = postcss.plugin('tailwind', config => { } delete require.cache[require.resolve(path.resolve(config))] - return require(path.resolve(config)) + return mergeConfigWithDefaults(require(path.resolve(config))) } return postcss(