Skip to content

Commit 576f9b0

Browse files
author
agronkabashi
committed
Introduced a simpler initialization syntax, deprecating the old
1 parent 9cadd2a commit 576f9b0

7 files changed

+94
-37
lines changed

Diff for: CHANGELOG.md

+29
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
# Version 1.1.0
2+
* Simplified the syntax for initializing conditional. The older syntax is now deprecated.
3+
4+
```
5+
// Before
6+
plugins: [
7+
conditional({
8+
condition: process.env.buildTarget === "PROD",
9+
plugins: [
10+
plugin1(),
11+
plugin2(),
12+
...
13+
]
14+
})
15+
]
16+
17+
// After
18+
plugins: [
19+
conditional(process.env.buildTarget === "PROD", [
20+
plugin1(),
21+
plugin2(),
22+
...
23+
])
24+
]
25+
```
26+
27+
# Version 1.0.1
28+
* Minor hotpatch that updates the build files
29+
130
# Version 1.0.0
231
* `plugin` property is replaced with `plugins` to simplify the setup where you need to run many plugins based on the same condition
332
```

Diff for: README.md

+11-17
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,17 @@ export default {
2222
...
2323
plugins: [
2424
...
25-
conditional({
26-
condition: isProduction,
27-
plugins: [
28-
licence(),
29-
strip(),
30-
uglify(),
31-
gzip()
32-
]
33-
})
34-
35-
conditional({
36-
condition: !isProduction,
37-
plugins: [
38-
filesize(),
39-
watch()
40-
]
41-
})
25+
conditional(isProduction, [
26+
licence(),
27+
strip(),
28+
uglify(),
29+
gzip()
30+
]),
31+
32+
conditional(!isProduction, [
33+
filesize(),
34+
watch()
35+
])
4236
]
4337
})
4438
```

Diff for: build/rollup-plugin-conditional.es.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,24 @@ function getFirstExecutablePlugin(apiName, plugins, ...args) {
2222
return plugins.reduce((result, plugin) => result || plugin[apiName] && plugin[apiName](...args), undefined);
2323
}
2424

25-
var index = (options = {}) => {
26-
if (!options.condition || !Array.isArray(options.plugins) || options.plugins.length === 0) {
27-
return {};
25+
var index = (arg1 = {}, arg2) => {
26+
let condition = false;
27+
let plugins = [];
28+
29+
if (Array.isArray(arg2)) {
30+
condition = !!arg1;
31+
plugins = arg2;
32+
}
33+
// Deprecated in 1.1.0
34+
else if (typeof arg1 === "object") {
35+
console.warn("This syntax is deprecated, please use conditional(condition, plugins) instead.");
36+
condition = !!arg1.condition;
37+
plugins = arg1.plugins;
2838
}
2939

30-
const { plugins } = options;
40+
if (!condition || !Array.isArray(plugins) || plugins.length === 0) {
41+
return {};
42+
}
3143

3244
const constructedApi = {};
3345

Diff for: build/rollup-plugin-conditional.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,24 @@ function getFirstExecutablePlugin(apiName, plugins, ...args) {
2424
return plugins.reduce((result, plugin) => result || plugin[apiName] && plugin[apiName](...args), undefined);
2525
}
2626

27-
var index = (options = {}) => {
28-
if (!options.condition || !Array.isArray(options.plugins) || options.plugins.length === 0) {
29-
return {};
27+
var index = (arg1 = {}, arg2) => {
28+
let condition = false;
29+
let plugins = [];
30+
31+
if (Array.isArray(arg2)) {
32+
condition = !!arg1;
33+
plugins = arg2;
34+
}
35+
// Deprecated in 1.1.0
36+
else if (typeof arg1 === "object") {
37+
console.warn("This syntax is deprecated, please use conditional(condition, plugins) instead.");
38+
condition = !!arg1.condition;
39+
plugins = arg1.plugins;
3040
}
3141

32-
const { plugins } = options;
42+
if (!condition || !Array.isArray(plugins) || plugins.length === 0) {
43+
return {};
44+
}
3345

3446
const constructedApi = {};
3547

Diff for: package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
22
"name": "rollup-plugin-conditional",
3-
"version": "1.0.1",
3+
"version": "1.1.0",
44
"description": "A proxy plugin for conditionally executing rollup plugins",
55
"main": "build/rollup-plugin-conditional.js",
66
"jsnext:main": "build/rollup-plugin-conditional.es.js",
77
"homepage": "https://github.com/AgronKAbashi/rollup-plugin-conditional",
88
"scripts": {
99
"clean": "rm -rf build",
1010
"build": "rollup -c",
11+
"publish": "npm run build && npm publish",
1112
"start": "npm run clean -s && npm run build -s",
1213
"test": "mocha --compilers js:babel-core/register"
1314
},

Diff for: src/index.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,24 @@ function getFirstExecutablePlugin(apiName, plugins, ...args) {
55
return plugins.reduce((result, plugin) => result || plugin[apiName] && plugin[apiName](...args), undefined);
66
}
77

8-
export default (options = {}) => {
9-
if (!options.condition || !Array.isArray(options.plugins) || options.plugins.length === 0) {
10-
return {};
8+
export default (arg1 = {}, arg2) => {
9+
let condition = false;
10+
let plugins = [];
11+
12+
if (Array.isArray(arg2)) {
13+
condition = !!arg1;
14+
plugins = arg2;
15+
}
16+
// Deprecated in 1.1.0
17+
else if (typeof arg1 === "object") {
18+
console.warn("This syntax is deprecated, please use conditional(condition, plugins) instead.")
19+
condition = !!arg1.condition
20+
plugins = arg1.plugins
1121
}
1222

13-
const { plugins } = options;
23+
if (!condition || !Array.isArray(plugins) || plugins.length === 0) {
24+
return {};
25+
}
1426

1527
const constructedApi = {};
1628

Diff for: test/index.js

+4-7
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,11 @@ describe("rollup-plugin-conditional", () => {
88
let plugins;
99
let spies;
1010

11-
const createRollup = (condition, config) => {
11+
const createRollup = (condition, plugins) => {
1212
return rollup({
1313
entry: "./test/fixtures/sourcecode",
1414
plugins: [
15-
conditional({
16-
condition,
17-
...config
18-
})
15+
conditional(condition, plugins)
1916
]
2017
});
2118
};
@@ -33,7 +30,7 @@ describe("rollup-plugin-conditional", () => {
3330
});
3431

3532
it("should run all the plugins if condition evaluates to true", () => {
36-
return createRollup(true, {plugins}).then(() => {
33+
return createRollup(true, plugins).then(() => {
3734
assert(calculateSpyCallCount(spies) === plugins.length);
3835
});
3936
});
@@ -60,7 +57,7 @@ describe("rollup-plugin-conditional", () => {
6057
});
6158

6259
it("should only execute the first plugin", () => {
63-
return createRollup(true, {plugins}).then((args) => {
60+
return createRollup(true, plugins).then((args) => {
6461
assert(args.modules[0].code === "var transform1variable = true;")
6562
});
6663
})

0 commit comments

Comments
 (0)