32 lines
1,006 B
JavaScript
32 lines
1,006 B
JavaScript
![]() |
import { ASTRO_VERSION } from "../../core/constants.js";
|
||
|
import { AstroError, AstroErrorData } from "../../core/errors/index.js";
|
||
|
function createAstroGlobFn() {
|
||
|
const globHandler = (importMetaGlobResult) => {
|
||
|
if (typeof importMetaGlobResult === "string") {
|
||
|
throw new AstroError({
|
||
|
...AstroErrorData.AstroGlobUsedOutside,
|
||
|
message: AstroErrorData.AstroGlobUsedOutside.message(JSON.stringify(importMetaGlobResult))
|
||
|
});
|
||
|
}
|
||
|
let allEntries = [...Object.values(importMetaGlobResult)];
|
||
|
if (allEntries.length === 0) {
|
||
|
throw new AstroError({
|
||
|
...AstroErrorData.AstroGlobNoMatch,
|
||
|
message: AstroErrorData.AstroGlobNoMatch.message(JSON.stringify(importMetaGlobResult))
|
||
|
});
|
||
|
}
|
||
|
return Promise.all(allEntries.map((fn) => fn()));
|
||
|
};
|
||
|
return globHandler;
|
||
|
}
|
||
|
function createAstro(site) {
|
||
|
return {
|
||
|
site: site ? new URL(site) : void 0,
|
||
|
generator: `Astro v${ASTRO_VERSION}`,
|
||
|
glob: createAstroGlobFn()
|
||
|
};
|
||
|
}
|
||
|
export {
|
||
|
createAstro
|
||
|
};
|