astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
30 lines (29 loc) • 753 B
JavaScript
// Parses an id to check if it's an Astro request.
// CSS is imported like `import '/src/pages/index.astro?astro&type=style&index=0&lang.css';
// This parses those ids and returns an object representing what it found.
export function parseAstroRequest(id) {
const [filename, rawQuery] = id.split(`?`, 2);
const query = Object.fromEntries(new URLSearchParams(rawQuery).entries());
if (query.astro != null) {
query.astro = true;
}
if (query.src != null) {
query.src = true;
}
if (query.index != null) {
query.index = Number(query.index);
}
if (query.raw != null) {
query.raw = true;
}
if (query.inline != null) {
query.inline = true;
}
if (query.container != null) {
query.container = true;
}
return {
filename,
query
};
}