createResolver
createResolver allows you to resolve paths relative to the integration folder easily.
1import type { AstroIntegration } from "astro";2import { createResolver } from "astro-integration-kit";3
4export default function myIntegration(): AstroIntegration {5    const { resolve } = createResolver(import.meta.url);6
7    return {8        name: "my-integration",9        hooks: {10            "astro:config:setup": ({ addDevToolbarApp }) => {11                addDevToolbarApp(resolve("./plugin.ts"));12            }13        }14    }15}Why should you use it?
We think it provides a better DX. Instead of having to do some back and forth between
your code and your package.json exports fields, you can just use some intuitive
relative paths!
1{2    "name": "package-name",3    "exports": {4        "pages/my-route.astro": "./src/pages/my-route.astro",5        "plugin.ts": "./src/plugin.ts"6    }7}1import type { AstroIntegration } from "astro";2import { createResolver } from "astro-integration-kit";3
4export default function myIntegration(): AstroIntegration {5    const { resolve } = createResolver(import.meta.url);6    return {7        name: "my-integration",8        hooks: {9            "astro:config:setup": ({ injectRoute, addDevToolbarApp }) => {10                injectRoute({11                    pattern: "/my-route",12                    entrypoint: "package-name/pages/my-route.astro"13                    entrypoint: resolve("./pages/my-route.astro")14                })15                addDevToolbarApp(16                    "package-name/plugin.ts"17                    resolve("./plugin.ts")18                )19            }20        }21    }22}Usage
Always pass import.meta.url to createResolver! That’s the equivalent of the
old __filename. This way, resolve will always create a valid path relatively,
no matter its location in node_modules, package managers madness etc
We recommend calling it in setup to easily access resolve in any hook.