@stylable/core
Version:
CSS for Components
45 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.visitMetaCSSDependencies = void 0;
function* visitMetaCSSDependencies({ meta, resolver, }) {
const visited = new Set([meta.source]);
const q = [[...meta.getImportStatements()]];
let depth = -1;
while (++depth < q.length) {
let index = -1;
const items = q[depth];
if (items.length && !q[depth + 1]) {
q[depth + 1] = [];
}
while (++index < items.length) {
const imported = items[index];
const res = resolver.resolveImported(imported, '');
if (res?._kind === 'css' && !visited.has(res.meta.source)) {
visited.add(res.meta.source);
const dependency = {
kind: 'css',
depth: depth + 1,
meta: res.meta,
resolvedPath: res.meta.source,
imported,
};
yield dependency;
q[depth + 1].push(...res.meta.getImportStatements());
}
else if (res?._kind === 'js') {
const resolvedPath = resolver.resolvePath(imported.context, imported.request);
if (!visited.has(resolvedPath)) {
visited.add(resolvedPath);
const dependency = {
kind: 'js',
imported,
resolvedPath,
};
yield dependency;
}
}
}
}
}
exports.visitMetaCSSDependencies = visitMetaCSSDependencies;
//# sourceMappingURL=visit-meta-css-dependencies.js.map