addVirtualImports
addVirtualImports allows you to create virtual modules and share data from your integration. For example:
1import {2    defineIntegration,3    addVirtualImports4} from "astro-integration-kit";5
6export default defineIntegration({7    // ...8    setup({ name }) {9        return {10            hooks: {11                "astro:config:setup": (params) => {12                    addVirtualImports(params, {13                        name,14                        imports: {15                            'virtual:my-integration/config': `export default ${JSON.stringify({ foo: "bar" })}`,16                        }17                    })18
19                    addVirtualImports(params, {20                        name,21                        imports: [22                            {23                                id: "virtual:my-integration/advanced",24                                content: "export const foo = 'server'",25                                context: "server"26                            },27                            {28                                id: "virtual:my-integration/advanced",29                                content: "export const foo = 'client'",30                                context: "client"31                            },32                        ]33                    })34                }35            }36        }37    }38})You can now access the config somewhere else, for example inside a page injected by your integration:
1---2import config from "virtual:my-integration/config",3
4console.log(config.foo) // "bar"5---Typing your virtual module
In order to get the types for your virtual modules while developing your integration, you’ll need to manually declare a virtual module.
First create a virtual.d.ts file in your integration root. Then you can define your virtual modules as global TypeScript modules:
1declare module "virtual:my-integration/config" {2    export default { foo: string };3}