mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 18:34:02 +00:00
17 lines
666 B
JavaScript
17 lines
666 B
JavaScript
/** Resolve the actual ordered local CSS imports used by the application entry. */
|
|
import { readFileSync } from 'node:fs';
|
|
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
export function readStylesheet(file, ancestors = new Set()) {
|
|
const resolved = path.resolve(
|
|
file instanceof URL ? fileURLToPath(file) : file,
|
|
);
|
|
if (ancestors.has(resolved)) throw new Error('Circular stylesheet import');
|
|
const next = new Set(ancestors).add(resolved);
|
|
return readFileSync(resolved, 'utf8').replace(
|
|
/@import ['"]([^'"]+)['"];\s*/g,
|
|
(_, imported) =>
|
|
readStylesheet(path.resolve(path.dirname(resolved), imported), next),
|
|
);
|
|
}
|