UNPKG

1.07 kBJavaScriptView Raw
1'use strict';
2
3var postcss = require('postcss');
4
5var process = function (css) {
6 var queries = {};
7 var params = [];
8
9 css.each(function (rule) {
10 if (rule.type !== 'atrule' || rule.name !== 'media') {
11 return true;
12 }
13
14 var query = rule.params;
15 var past = queries[query];
16
17 if (typeof past === 'object') {
18 rule.each(function (r) {
19 past.append(r);
20 });
21 } else {
22 queries[query] = rule;
23 params.push(query);
24 }
25
26 rule.removeSelf();
27 });
28
29 var haveSourceMap = false;
30
31 if (
32 css.last &&
33 css.last.type === 'comment' &&
34 /^# sourceMappingURL=/i.test(css.last.text)
35 ) {
36 haveSourceMap = true;
37 }
38
39 params.forEach(function (param) {
40 var rule = queries[param];
41
42 if (haveSourceMap) {
43 css.insertBefore(css.last, rule);
44
45 return;
46 }
47
48 css.append(rule);
49 });
50
51 return css;
52};
53
54var pack = function (css, opts) {
55 return postcss().use(this.processor).process(css, opts);
56};
57
58exports.postcss = process;
59exports.pack = pack;
60
61// Old interface
62exports.processor = process;