createResolver
createResolver
allows you to resolve paths relative to your integration’s location, eliminating the need to manage complex package.json
exports for file references. It takes a base URL (typically import.meta.url
) and returns a resolve
function that can create absolute paths relative to that location:
We recommend calling createResolver
in your integration’s setup
function to easily access resolve
in any hook.
-
Create the resolver
Always pass
import.meta.url
tocreateResolver
- this is the equivalent of the old__filename
and ensures paths work correctly regardless of installation location:const { resolve } = createResolver(import.meta.url); -
Use the resolve function
Use
resolve()
with relative paths to reference files in your integration:integration/index.ts import type { AstroIntegration } from "astro";import { createResolver } from "astro-integration-kit";export default function myIntegration(): AstroIntegration {const { resolve } = createResolver(import.meta.url);return {name: "my-integration",hooks: {"astro:config:setup": ({ injectRoute }) => {injectRoute({pattern: "/my-route",entrypoint: resolve("./pages/my-route.astro")});}}}}