diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/icss-utils/lib/extractICSS.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/icss-utils/lib/extractICSS.js')
| -rw-r--r-- | node_modules/icss-utils/lib/extractICSS.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/icss-utils/lib/extractICSS.js b/node_modules/icss-utils/lib/extractICSS.js new file mode 100644 index 00000000..3b2f8632 --- /dev/null +++ b/node_modules/icss-utils/lib/extractICSS.js @@ -0,0 +1,45 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var importPattern = /^:import\(("[^"]*"|'[^']*'|[\w-\.]+)\)$/; + +var getDeclsObject = function getDeclsObject(rule) { + var object = {}; + rule.walkDecls(function (decl) { + object[decl.raws.before.trim() + decl.prop] = decl.value; + }); + return object; +}; + +var extractICSS = function extractICSS(css) { + var removeRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var icssImports = {}; + var icssExports = {}; + css.each(function (node) { + if (node.type === "rule") { + if (node.selector.slice(0, 7) === ":import") { + var matches = importPattern.exec(node.selector); + if (matches) { + var path = matches[1]; + var aliases = Object.assign(icssImports[path] || {}, getDeclsObject(node)); + icssImports[path] = aliases; + if (removeRules) { + node.remove(); + } + } + } + if (node.selector === ":export") { + Object.assign(icssExports, getDeclsObject(node)); + if (removeRules) { + node.remove(); + } + } + } + }); + return { icssImports, icssExports }; +}; + +exports.default = extractICSS;
\ No newline at end of file |
