31 lines
		
	
	
	
		
			1,006 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 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
 | |
| };
 | 
