Skip to content

Commit a1f5bb2

Browse files
authored
Merge pull request #14 from yuezk/skip-warnings
Add `options.skipWarnings`
2 parents c3706eb + 0ecc1e6 commit a1f5bb2

File tree

3 files changed

+40
-18
lines changed

3 files changed

+40
-18
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### 0.2.6 - 2016-12-13
2+
3+
- Add `options.skipWarnings`, fixed #12
4+
15
### 0.2.5 - 2016-12-13
26

37
- Fixed #11.

index.js

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,14 @@ function getGradientFromRule(rule) {
249249

250250
module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
251251
opts = opts || {};
252-
opts.angleFallback =
253-
opts.angleFallback === undefined ? true : opts.angleFallback;
254-
opts.skipMultiColor =
255-
opts.skipMultiColor === undefined ? false : opts.skipMultiColor;
256-
opts.skipWarnings =
257-
opts.skipWarnings === undefined ? false : opts.skipWarnings;
252+
opts.angleFallback = opts.angleFallback !== false;
253+
opts.skipMultiColor = opts.skipMultiColor === true;
254+
opts.skipWarnings = opts.skipWarnings === true;
255+
256+
function warn(target, result, message) {
257+
if (opts.skipWarnings) return;
258+
target.warn(result, message);
259+
}
258260

259261
return function (root, result) {
260262
root.walkRules(function (rule) {
@@ -263,20 +265,19 @@ module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
263265

264266
gradient = getGradientFromRule(rule);
265267

266-
if (opts.skipWarnings === false) {
267-
// if linear-gradient and `filter` both exist, warn users
268-
if (gradient.value && hasFilter(rule)) {
269-
rule.warn(
270-
result,
271-
'The `filter` declaration already exists, we have skipped this rule.'
272-
);
273-
return;
274-
}
268+
// if linear-gradient and `filter` both exist, warn users
269+
if (gradient.value && hasFilter(rule)) {
270+
warn(
271+
rule,
272+
result,
273+
'The `filter` declaration already exists, we have skipped this rule.'
274+
);
275+
return;
275276
}
276277

277278

278279
if (gradient.warnings) {
279-
gradient.decl.warn(result, gradient.warnings);
280+
warn(gradient.decl, result, gradient.warnings);
280281
}
281282

282283
if (!gradient.value) {
@@ -287,7 +288,7 @@ module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
287288

288289
// warn users when the gradient value is not valid.
289290
if (!filter.success) {
290-
gradient.decl.warn(result, filter.message);
291+
warn(gradient.decl, result, filter.message);
291292
return;
292293
}
293294

@@ -301,7 +302,7 @@ module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
301302

302303
// warn developer when `filter.message` is not empty
303304
if (filter.message) {
304-
gradient.decl.warn(result, filter.message);
305+
warn(gradient.decl, result, filter.message);
305306
}
306307

307308
// append filter string

test/test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@ describe('postcss-filter-gradient', function () {
144144
}
145145
);
146146

147+
describe('options.skipWarnings', function () {
148+
var fixtures = [
149+
'filter',
150+
'invalid-syntax',
151+
'invalid-color',
152+
'multi-background',
153+
'angular-fallback',
154+
'sidecorner-fallback'
155+
];
156+
157+
fixtures.forEach(function (f) {
158+
it('should skip `' + f + '` warnings', function (done) {
159+
test(f, { skipWarnings: true }, done);
160+
});
161+
});
162+
});
163+
147164
it('should disable angle fallback when `option.angleFallback` is true',
148165
function (done) {
149166
test('option-angle-fallback', { angleFallback: false }, done);

0 commit comments

Comments
 (0)