var objectPath = require('object-path'); var deprecate = require('./deprecate'); /** Encode a config object into a JS config api @param {Output} output @param {Config} config @return {Object} */ function encodeConfig(output, config) { var result = { values: config.getValues().toJS(), get: function(key, defaultValue) { return objectPath.get(result.values, key, defaultValue); }, set: function(key, value) { return objectPath.set(result.values, key, value); } }; deprecate.field(output, 'config.options', result, 'options', result.values, '"config.options" property is deprecated, use "config.get(key)" instead'); deprecate.field(output, 'config.options.generator', result.values, 'generator', output.getGenerator(), '"options.generator" property is deprecated, use "output.name" instead'); deprecate.field(output, 'config.options.generator', result.values, 'output', output.getRoot(), '"options.output" property is deprecated, use "output.root()" instead'); return result; } module.exports = encodeConfig;