WIP - add extractor, generate snippet_data
This commit is contained in:
54
node_modules/icss-utils/lib/createICSSRules.js
generated
vendored
Normal file
54
node_modules/icss-utils/lib/createICSSRules.js
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _postcss = require('postcss');
|
||||
|
||||
var _postcss2 = _interopRequireDefault(_postcss);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
var createImports = function createImports(imports) {
|
||||
return Object.keys(imports).map(function (path) {
|
||||
var aliases = imports[path];
|
||||
var declarations = Object.keys(aliases).map(function (key) {
|
||||
return _postcss2.default.decl({
|
||||
prop: key,
|
||||
value: aliases[key],
|
||||
raws: { before: '\n ' }
|
||||
});
|
||||
});
|
||||
return _postcss2.default.rule({
|
||||
selector: `:import(${path})`,
|
||||
raws: { after: '\n' }
|
||||
}).append(declarations);
|
||||
});
|
||||
};
|
||||
|
||||
var createExports = function createExports(exports) {
|
||||
var declarations = Object.keys(exports).map(function (key) {
|
||||
return _postcss2.default.decl({
|
||||
prop: key,
|
||||
value: exports[key],
|
||||
raws: { before: '\n ' }
|
||||
});
|
||||
});
|
||||
if (declarations.length === 0) {
|
||||
return [];
|
||||
}
|
||||
var rule = _postcss2.default.rule({
|
||||
selector: `:export`,
|
||||
raws: { after: '\n' }
|
||||
}).append(declarations);
|
||||
return [rule];
|
||||
};
|
||||
|
||||
var createICSSRules = function createICSSRules(imports, exports) {
|
||||
return [].concat(_toConsumableArray(createImports(imports)), _toConsumableArray(createExports(exports)));
|
||||
};
|
||||
|
||||
exports.default = createICSSRules;
|
||||
45
node_modules/icss-utils/lib/extractICSS.js
generated
vendored
Normal file
45
node_modules/icss-utils/lib/extractICSS.js
generated
vendored
Normal file
@ -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;
|
||||
43
node_modules/icss-utils/lib/index.js
generated
vendored
Normal file
43
node_modules/icss-utils/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _replaceValueSymbols = require('./replaceValueSymbols.js');
|
||||
|
||||
Object.defineProperty(exports, 'replaceValueSymbols', {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return _interopRequireDefault(_replaceValueSymbols).default;
|
||||
}
|
||||
});
|
||||
|
||||
var _replaceSymbols = require('./replaceSymbols.js');
|
||||
|
||||
Object.defineProperty(exports, 'replaceSymbols', {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return _interopRequireDefault(_replaceSymbols).default;
|
||||
}
|
||||
});
|
||||
|
||||
var _extractICSS = require('./extractICSS.js');
|
||||
|
||||
Object.defineProperty(exports, 'extractICSS', {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return _interopRequireDefault(_extractICSS).default;
|
||||
}
|
||||
});
|
||||
|
||||
var _createICSSRules = require('./createICSSRules.js');
|
||||
|
||||
Object.defineProperty(exports, 'createICSSRules', {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return _interopRequireDefault(_createICSSRules).default;
|
||||
}
|
||||
});
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
22
node_modules/icss-utils/lib/replaceSymbols.js
generated
vendored
Normal file
22
node_modules/icss-utils/lib/replaceSymbols.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _replaceValueSymbols = require('./replaceValueSymbols.js');
|
||||
|
||||
var _replaceValueSymbols2 = _interopRequireDefault(_replaceValueSymbols);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var replaceSymbols = function replaceSymbols(css, replacements) {
|
||||
css.walkDecls(function (decl) {
|
||||
return decl.value = (0, _replaceValueSymbols2.default)(decl.value, replacements);
|
||||
});
|
||||
css.walkAtRules('media', function (atRule) {
|
||||
return atRule.params = (0, _replaceValueSymbols2.default)(atRule.params, replacements);
|
||||
});
|
||||
};
|
||||
|
||||
exports.default = replaceSymbols;
|
||||
20
node_modules/icss-utils/lib/replaceValueSymbols.js
generated
vendored
Normal file
20
node_modules/icss-utils/lib/replaceValueSymbols.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
var matchValueName = /[$#]?[\w-\.]+/g;
|
||||
|
||||
var replaceValueSymbols = function replaceValueSymbols(value, replacements) {
|
||||
var matches = void 0;
|
||||
while (matches = matchValueName.exec(value)) {
|
||||
var replacement = replacements[matches[0]];
|
||||
if (replacement) {
|
||||
value = value.slice(0, matches.index) + replacement + value.slice(matchValueName.lastIndex);
|
||||
matchValueName.lastIndex -= matches[0].length - replacement.length;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
exports.default = replaceValueSymbols;
|
||||
Reference in New Issue
Block a user