Skip to content

Commit 047755f

Browse files
committed
add options.skipWarnings close #12
1 parent c3706eb commit 047755f

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

index.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -249,34 +249,38 @@ function getGradientFromRule(rule) {
249249

250250
module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
251251
opts = opts || {};
252-
opts.angleFallback =
252+
opts.angleFallback =
253253
opts.angleFallback === undefined ? true : opts.angleFallback;
254254
opts.skipMultiColor =
255255
opts.skipMultiColor === undefined ? false : opts.skipMultiColor;
256256
opts.skipWarnings =
257257
opts.skipWarnings === undefined ? false : opts.skipWarnings;
258258

259+
function warn(target, result, message) {
260+
if (opts.skipWarnings) return;
261+
target.warn(result, message);
262+
}
263+
259264
return function (root, result) {
260265
root.walkRules(function (rule) {
261266
var gradient;
262267
var filter;
263268

264269
gradient = getGradientFromRule(rule);
265270

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-
}
271+
// if linear-gradient and `filter` both exist, warn users
272+
if (gradient.value && hasFilter(rule)) {
273+
warn(
274+
rule,
275+
result,
276+
'The `filter` declaration already exists, we have skipped this rule.'
277+
);
278+
return;
275279
}
276280

277281

278282
if (gradient.warnings) {
279-
gradient.decl.warn(result, gradient.warnings);
283+
warn(gradient.decl, result, gradient.warnings);
280284
}
281285

282286
if (!gradient.value) {
@@ -287,7 +291,7 @@ module.exports = postcss.plugin('postcss-filter-gradient', function (opts) {
287291

288292
// warn users when the gradient value is not valid.
289293
if (!filter.success) {
290-
gradient.decl.warn(result, filter.message);
294+
warn(gradient.decl, result, filter.message);
291295
return;
292296
}
293297

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

302306
// warn developer when `filter.message` is not empty
303307
if (filter.message) {
304-
gradient.decl.warn(result, filter.message);
308+
warn(gradient.decl, result, filter.message);
305309
}
306310

307311
// 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)