UNPKG

node-sass-magic-importer

Version:

Custom node-sass importer for selector specific imports, node importing, module importing, globbing support and importing files only once

30 lines (23 loc) 894 B
import { IParseSelectorFilters } from '../interfaces/IParseSelectorFilters'; import { IProcessRawSelectorFilters } from '../interfaces/IProcessRawSelectorFilters'; import { ISplitSelectorFilter } from '../interfaces/ISplitSelectorFilter'; export function parseSelectorFiltersFactory( processRawSelectorFilters: IProcessRawSelectorFilters, splitSelectorFilter: ISplitSelectorFilter, ): IParseSelectorFilters { return (url: string) => { const filterDivider = /[\s]+from[\s]+(?!.*from)/; if (!filterDivider.test(url)) { return []; } const selectorFiltersMatch = url .split(filterDivider)[0] .match(/{([\s\S]*)}/); if (!selectorFiltersMatch) { return []; } const rawSelectorFilters = selectorFiltersMatch[1].split(`,`) .map((x) => splitSelectorFilter(x.trim())); return processRawSelectorFilters(rawSelectorFilters); }; }