postcss-load-plugins
Advanced tools
Comparing version 2.0.0-beta to 2.0.0-rc
34
index.js
@@ -7,5 +7,6 @@ // ------------------------------------ | ||
const config = require('cosmiconfig') | ||
var config = require('cosmiconfig') | ||
var assign = require('object-assign') | ||
const loadPlugins = require('./lib/plugins') | ||
var loadPlugins = require('./lib/plugins') | ||
@@ -20,2 +21,3 @@ /** | ||
* @requires cosmiconfig | ||
* @requires object-assign | ||
* @requires ./lib/plugins.js | ||
@@ -32,8 +34,5 @@ * | ||
module.exports = function pluginsrc (ctx, path, options) { | ||
const defaults = { | ||
cwd: process.cwd(), | ||
env: process.env.NODE_ENV | ||
} | ||
var defaults = { cwd: process.cwd(), env: process.env.NODE_ENV } | ||
ctx = Object.assign(defaults, ctx) || defaults | ||
ctx = assign(defaults, ctx) || defaults | ||
path = path || process.cwd() | ||
@@ -44,8 +43,15 @@ options = options || {} | ||
.load(path) | ||
.then((result) => { | ||
result = result.config || {} | ||
.then(function (result) { | ||
if (result === undefined) { | ||
console.log( | ||
'PostCSS Plugins could not be loaded. Please check your PostCSS Config.' | ||
) | ||
} | ||
result = result === undefined ? { config: {} } : result | ||
result = result.config | ||
return result | ||
}) | ||
.then((plugins) => { | ||
.then(function (plugins) { | ||
if (typeof plugins === 'function') { | ||
@@ -55,10 +61,14 @@ plugins = plugins(ctx) | ||
if (typeof result === 'object') { | ||
plugins = Object.assign(plugins, ctx) | ||
plugins = assign(plugins, ctx) | ||
} | ||
if (!plugins.plugins) { | ||
plugins.plugins = [] | ||
} | ||
return loadPlugins(plugins) | ||
}) | ||
.catch((err) => { | ||
.catch(function (err) { | ||
console.log(err) | ||
}) | ||
} |
@@ -18,3 +18,3 @@ ## Functions | ||
**Returns**: <code>Array</code> - config PostCSS Plugins | ||
**Requires**: <code>module:cosmiconfig</code>, <code>module:./lib/plugins.js</code> | ||
**Requires**: <code>module:cosmiconfig</code>, <code>module:object-assign</code>, <code>module:./lib/plugins.js</code> | ||
**Version**: 1.0.0 | ||
@@ -21,0 +21,0 @@ **Author:** Michael Ciniawsky (@michael-ciniawsky) <michael.ciniawsky@gmail.com> |
@@ -15,3 +15,3 @@ // ------------------------------------ | ||
module.exports = function plugins (config) { | ||
let plugins = [] | ||
var plugins = [] | ||
@@ -21,9 +21,11 @@ if (Array.isArray(config.plugins)) { | ||
plugins.forEach((plugin) => { | ||
if (typeof plugin !== 'function') { | ||
throw new TypeError(` | ||
${plugin} must be a function, did you require() it ? | ||
`) | ||
} | ||
}) | ||
if (plugins.length > 0) { | ||
plugins.forEach(function (plugin) { | ||
if (typeof plugin !== 'function') { | ||
throw new TypeError( | ||
plugin + ' must be a function, did you require() it ?' | ||
) | ||
} | ||
}) | ||
} | ||
@@ -34,4 +36,4 @@ return plugins | ||
const load = (plugin, options) => { | ||
if (options === null) { | ||
var load = function (plugin, options) { | ||
if (options === null || Object.keys(options).length === 0) { | ||
try { | ||
@@ -52,4 +54,8 @@ return require(plugin) | ||
Object.keys(config) | ||
.filter((plugin) => config[plugin] !== false ? plugin : '') | ||
.forEach((plugin) => plugins.push(load(plugin, config[plugin]))) | ||
.filter(function (plugin) { | ||
return config[plugin] !== false ? plugin : '' | ||
}) | ||
.forEach(function (plugin) { | ||
return plugins.push(load(plugin, config[plugin])) | ||
}) | ||
@@ -56,0 +62,0 @@ return plugins |
{ | ||
"name": "postcss-load-plugins", | ||
"version": "2.0.0-beta", | ||
"version": "2.0.0-rc", | ||
"description": "Autoload Plugins for PostCSS", | ||
"engines": { "node": ">=4", "npm": ">=3" }, | ||
"engines": { "node": ">=0.12", "npm": ">=3" }, | ||
"main": "index.js", | ||
@@ -16,3 +16,4 @@ "scripts": { | ||
"dependencies": { | ||
"cosmiconfig": "^2.0.0" | ||
"cosmiconfig": "^2.1.0", | ||
"object-assign": "^4.1.0" | ||
}, | ||
@@ -37,3 +38,3 @@ "devDependencies": { | ||
"all": true, | ||
"include": ["lib", "test"], | ||
"include": ["index.js", "lib"], | ||
"extension": [".js"] | ||
@@ -49,6 +50,8 @@ }, | ||
}, | ||
"contributors": [{ | ||
"name": "Mateusz Derks", | ||
"url": "http://ertrzyiks.me" | ||
}], | ||
"contributors": [ | ||
{ | ||
"name": "Mateusz Derks", | ||
"url": "http://ertrzyiks.me" | ||
} | ||
], | ||
"repository": { | ||
@@ -55,0 +58,0 @@ "type": "git", |
@@ -34,3 +34,3 @@ [![npm][npm]][npm-url] | ||
Create **`postcss`** section in your projects **`package.json`** | ||
Create **`postcss`** section in your projects **`package.json`**. | ||
@@ -57,3 +57,3 @@ ``` | ||
Create **`.postcssrc`** file | ||
Create a **`.postcssrc`** file. | ||
@@ -90,6 +90,10 @@ ``` | ||
Plugins can be loaded in either using an `{Object}` or an `{Array}`. | ||
##### `{Object}` | ||
```js | ||
module.exports = (ctx) => { | ||
plugins: { | ||
'postcss-plugin': options | ||
'postcss-plugin': ctx.plugin | ||
} | ||
@@ -99,2 +103,4 @@ } | ||
##### `{Array}` | ||
```js | ||
@@ -112,7 +118,6 @@ module.exports = (ctx) => { | ||
**`null`**: Plugin loads with defaults. | ||
```js | ||
'postcss-plugin': null | ||
'postcss-plugin': {} || null | ||
``` | ||
> :warning: `{}` must be an **empty** object | ||
@@ -138,5 +143,5 @@ **`[Object]`**: Plugin loads with given options. | ||
plugins: { | ||
'postcss-plugin': false, // plugins[0] | ||
'postcss-plugin': false, // plugins[1] | ||
'postcss-plugin': {} // plugins[2] | ||
'postcss-plugin': {}, // plugins[0] | ||
'postcss-plugin': {}, // plugins[1] | ||
'postcss-plugin': {} // plugins[2] | ||
} | ||
@@ -152,3 +157,3 @@ } | ||
**postcss.config.js** | ||
**`postcss.config.js`** | ||
@@ -158,5 +163,5 @@ ```js | ||
plugins: { | ||
postcss-import: null, | ||
postcss-bem: ctx.bem || null, | ||
cssnano: ctx.env === 'development' ? false : null | ||
postcss-import: {}, | ||
postcss-bem: ctx.bem || {}, | ||
cssnano: ctx.env === 'development' ? false : {} | ||
} | ||
@@ -166,3 +171,3 @@ } | ||
### <img width="80" height="80" src="https://worldvectorlogo.com/logos/nodejs-icon.svg"> API | ||
### <img width="80" height="80" src="https://worldvectorlogo.com/logos/nodejs-icon.svg"> | ||
@@ -183,3 +188,3 @@ ```js | ||
.then(({ css }) => console.log(css)) | ||
})) | ||
}) | ||
``` | ||
@@ -186,0 +191,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
13525
111
224
2
+ Addedobject-assign@^4.1.0
Updatedcosmiconfig@^2.1.0