const SCRIPT_ID_PREFIX = `astro:scripts/`; const BEFORE_HYDRATION_SCRIPT_ID = `${SCRIPT_ID_PREFIX}${"before-hydration"}.js`; const PAGE_SCRIPT_ID = `${SCRIPT_ID_PREFIX}${"page"}.js`; const PAGE_SSR_SCRIPT_ID = `${SCRIPT_ID_PREFIX}${"page-ssr"}.js`; function astroScriptsPlugin({ settings }) { let env = void 0; return { name: "astro:scripts", config(_config, _env) { env = _env; }, async resolveId(id) { if (id.startsWith(SCRIPT_ID_PREFIX)) { return id; } return void 0; }, async load(id) { if (id === BEFORE_HYDRATION_SCRIPT_ID) { return settings.scripts.filter((s) => s.stage === "before-hydration").map((s) => s.content).join("\n"); } if (id === PAGE_SCRIPT_ID) { return settings.scripts.filter((s) => s.stage === "page").map((s) => s.content).join("\n"); } if (id === PAGE_SSR_SCRIPT_ID) { return settings.scripts.filter((s) => s.stage === "page-ssr").map((s) => s.content).join("\n"); } return null; }, buildStart() { const hasHydrationScripts = settings.scripts.some((s) => s.stage === "before-hydration"); if (hasHydrationScripts && (env == null ? void 0 : env.command) === "build" && !(env == null ? void 0 : env.ssrBuild)) { this.emitFile({ type: "chunk", id: BEFORE_HYDRATION_SCRIPT_ID, name: BEFORE_HYDRATION_SCRIPT_ID }); } } }; } export { BEFORE_HYDRATION_SCRIPT_ID, PAGE_SCRIPT_ID, PAGE_SSR_SCRIPT_ID, astroScriptsPlugin as default };