node-sass-selector-importer
Version:
Custom importer for node-sass to import only certain CSS selectors instead of the whole file
29 lines • 1.13 kB
JavaScript
;
const cssSelectorExtract = require("css-selector-extract");
const fs = require("fs");
const postcssSyntax = require("postcss-scss");
const toolbox_1 = require("node-sass-magic-importer/dist/toolbox");
module.exports = function selectorImporter() {
return function importer(url, prev) {
const nodeSassOptions = this.options;
const selectorFilters = toolbox_1.parseSelectorFilters(url);
if (selectorFilters.length === 0) {
return null;
}
const includePaths = toolbox_1.buildIncludePaths(nodeSassOptions.includePaths, prev);
const cleanedUrl = toolbox_1.cleanImportUrl(url);
const resolvedUrl = toolbox_1.resolveUrl(cleanedUrl, includePaths);
const css = fs.readFileSync(resolvedUrl, { encoding: `utf8` });
const contents = cssSelectorExtract.processSync({
css,
filters: selectorFilters,
postcssSyntax,
preserveLines: true,
});
return contents ? {
file: resolvedUrl,
contents,
} : null;
};
};
//# sourceMappingURL=index.js.map