createPlugin() — astro Function Reference
Architecture documentation for the createPlugin() function in index.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD 86fcdfff_881d_020c_7dbc_274b2f42a55d["createPlugin()"] 1be97932_632b_c693_3537_b60cd384a0f5["index.ts"] 86fcdfff_881d_020c_7dbc_274b2f42a55d -->|defined in| 1be97932_632b_c693_3537_b60cd384a0f5 4d3f14a1_dd47_c6ba_2113_18491f2e7faa["appendForwardSlash()"] 86fcdfff_881d_020c_7dbc_274b2f42a55d -->|calls| 4d3f14a1_dd47_c6ba_2113_18491f2e7faa style 86fcdfff_881d_020c_7dbc_274b2f42a55d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/integrations/partytown/src/index.ts lines 21–69
export default function createPlugin(options?: PartytownOptions): AstroIntegration {
let partytownSnippetHtml: string;
const partytownEntrypoint = resolve('@qwik.dev/partytown/package.json');
const partytownLibDirectory = path.resolve(partytownEntrypoint, '../lib');
return {
name: '@astrojs/partytown',
hooks: {
'astro:config:setup': ({ config: _config, command, injectScript }) => {
const lib = `${appendForwardSlash(_config.base)}~partytown/`;
const recreateIFrameScript = `;(e=>{e.addEventListener("astro:before-swap",e=>{let r=document.body.querySelector("iframe[src*='${lib}']");if(r)e.newDocument.body.append(r)})})(document);`;
const partytownConfig = {
lib,
...options?.config,
debug: options?.config?.debug ?? command === 'dev',
};
partytownSnippetHtml = partytownSnippet(partytownConfig);
partytownSnippetHtml += recreateIFrameScript;
injectScript('head-inline', partytownSnippetHtml);
},
'astro:server:setup': ({ server }) => {
const lib = options?.config?.lib ?? `/~partytown/`;
server.middlewares.use(
sirv(partytownLibDirectory, {
mount: lib,
dev: true,
etag: true,
extensions: [],
}),
);
},
'astro:build:done': async ({ dir }) => {
await copyLibFiles(
fileURLToPath(new URL(options?.config?.lib?.replace(/^\/?/, '') ?? '~partytown', dir)),
{
debugDir: options?.config?.debug ?? false,
},
);
},
'astro:build:ssr': async ({ manifest }) => {
const dirpath = libDirPath({ debugDir: false });
const files = await fs.promises.readdir(dirpath);
for (const file of files) {
if (file === 'debug') continue;
manifest.assets.push(`/~partytown/${file}`);
}
},
},
};
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does createPlugin() do?
createPlugin() is a function in the astro codebase, defined in packages/integrations/partytown/src/index.ts.
Where is createPlugin() defined?
createPlugin() is defined in packages/integrations/partytown/src/index.ts at line 21.
What does createPlugin() call?
createPlugin() calls 1 function(s): appendForwardSlash.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free