UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

37 lines (36 loc) 989 B
import { viteID } from "../core/util.js"; import { getAstroMetadata } from "../vite-plugin-astro/index.js"; import { crawlGraph } from "./vite.js"; async function getComponentMetadata(filePath, loader) { const map = /* @__PURE__ */ new Map(); const rootID = viteID(filePath); addMetadata(map, loader.getModuleInfo(rootID)); for await (const moduleNode of crawlGraph(loader, rootID, true)) { const id = moduleNode.id; if (id) { addMetadata(map, loader.getModuleInfo(id)); } } return map; } function addMetadata(map, modInfo) { if (modInfo) { const astro = getAstroMetadata(modInfo); if (astro) { let metadata = { containsHead: false, propagation: "none" }; if (astro.propagation) { metadata.propagation = astro.propagation; } if (astro.containsHead) { metadata.containsHead = astro.containsHead; } map.set(modInfo.id, metadata); } } } export { getComponentMetadata };