diff options
author | Dimitri Staessens <[email protected]> | 2019-10-06 21:37:45 +0200 |
---|---|---|
committer | Dimitri Staessens <[email protected]> | 2019-10-06 21:37:45 +0200 |
commit | 3c51c3be85bb0d1bdb87ea0d6632f1c256912f27 (patch) | |
tree | c7ccc8279b12c4f7bdbbb4270d617e48f51722e4 /node_modules/postcss-load-options/index.js | |
parent | 412c104bebc507bea9c94fd53b5bdc4b64cbfe31 (diff) | |
download | website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.tar.gz website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.zip |
build: Add some required modules for node
Diffstat (limited to 'node_modules/postcss-load-options/index.js')
-rw-r--r-- | node_modules/postcss-load-options/index.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/node_modules/postcss-load-options/index.js b/node_modules/postcss-load-options/index.js new file mode 100644 index 0000000..df9e186 --- /dev/null +++ b/node_modules/postcss-load-options/index.js @@ -0,0 +1,64 @@ +// ------------------------------------ +// #POSTCSS - LOAD OPTIONS +// ------------------------------------ + +'use strict' + +var resolve = require('path').resolve + +var config = require('cosmiconfig') +var assign = require('object-assign') + +var loadOptions = require('./lib/options') + +/** + * @author Michael Ciniawsky (@michael-ciniawsky) <[email protected]> + * @description Autoload Options for PostCSS + * + * + * @module postcss-load-options + * @version 1.2.0 + * + * @requires cosmiconfig + * @requires object-assign + * @requires lib/options + * + * @method optionsrc + * + * @param {Object} ctx Context + * @param {String} path Directory + * @param {Object} options Options + * @return {Object} options PostCSS Options + */ +module.exports = function optionsrc (ctx, path, options) { + ctx = assign({ cwd: process.cwd(), env: process.env.NODE_ENV }, ctx) + + path = path ? resolve(path) : process.cwd() + + options = assign({ rcExtensions: true }, options) + + if (!ctx.env) process.env.NODE_ENV = 'development' + + var file + + return config('postcss', options) + .load(path) + .then(function (result) { + if (!result) console.log('PostCSS Options could not be loaded') + + file = result ? result.filepath : '' + + return result ? result.config : {} + }) + .then(function (options) { + if (typeof options === 'function') options = options(ctx) + + if (typeof options === 'object') options = assign(options, ctx) + + return options + }) + .then(function (options) { + return { options: loadOptions(options), file: file } + }) + .catch(console.log) +} |