UNPKG

838 BJavaScriptView Raw
1/* jshint node: true */
2'use strict';
3
4var postcss = require('postcss');
5
6var _process = function (css) {
7 var queries = {};
8 var params = [];
9
10 css.each(function (rule, i) {
11 if (rule.type !== 'atrule' || rule.name !== 'media') {
12 return true;
13 }
14
15 var query = rule.params;
16 var past = queries[query];
17
18 if (typeof past === 'object') {
19 rule.first.before = past.parent.after + rule.first.before;
20 rule.each(function (r) {
21 past.append(r);
22 });
23 } else {
24 queries[query] = rule;
25 params.push(query);
26 }
27
28 rule.removeSelf();
29 });
30
31 params.forEach(function (param) {
32 css.append(queries[param]);
33 });
34
35 return css;
36};
37
38var _pack = function (css, opts) {
39 return postcss().use(this.processor).process(css, opts);
40};
41
42exports.processor = _process;
43exports.pack = _pack;