Home / Function/ bundleFile() — astro Function Reference

bundleFile() — astro Function Reference

Architecture documentation for the bundleFile() function in load-file.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  c20447c2_1311_2e4c_8daf_f3f88647f731["bundleFile()"]
  c880535e_510d_6ed5_4280_3abb271db261["load-file.ts"]
  c20447c2_1311_2e4c_8daf_f3f88647f731 -->|defined in| c880535e_510d_6ed5_4280_3abb271db261
  70baf2f8_8656_2b85_dc81_210e3628975c["loadAndBundleDbConfigFile()"]
  70baf2f8_8656_2b85_dc81_210e3628975c -->|calls| c20447c2_1311_2e4c_8daf_f3f88647f731
  style c20447c2_1311_2e4c_8daf_f3f88647f731 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/db/src/core/load-file.ts lines 125–178

export async function bundleFile({
	fileUrl,
	root,
	virtualModContents,
}: {
	fileUrl: URL;
	root: URL;
	virtualModContents: string;
}) {
	const { ASTRO_DATABASE_FILE } = getAstroEnv();
	const result = await esbuild({
		absWorkingDir: process.cwd(),
		entryPoints: [fileURLToPath(fileUrl)],
		outfile: 'out.js',
		packages: 'external',
		write: false,
		target: ['node16'],
		platform: 'node',
		bundle: true,
		format: 'esm',
		sourcemap: 'inline',
		metafile: true,
		define: {
			'import.meta.env.ASTRO_DATABASE_FILE': JSON.stringify(ASTRO_DATABASE_FILE ?? ''),
		},
		plugins: [
			{
				name: 'resolve-astro-db',
				setup(build) {
					build.onResolve({ filter: /^astro:db$/ }, ({ path }) => {
						return { path, namespace: VIRTUAL_MODULE_ID };
					});
					build.onLoad({ namespace: VIRTUAL_MODULE_ID, filter: /.*/ }, () => {
						return {
							contents: virtualModContents,
							// Needed to resolve runtime dependencies
							resolveDir: fileURLToPath(root),
						};
					});
				},
			},
		],
	});

	const file = result.outputFiles[0];
	if (!file) {
		throw new Error(`Unexpected: no output file`);
	}

	return {
		code: file.text,
		dependencies: Object.keys(result.metafile.inputs),
	};
}

Domain

Subdomains

Frequently Asked Questions

What does bundleFile() do?
bundleFile() is a function in the astro codebase, defined in packages/db/src/core/load-file.ts.
Where is bundleFile() defined?
bundleFile() is defined in packages/db/src/core/load-file.ts at line 125.
What calls bundleFile()?
bundleFile() is called by 1 function(s): loadAndBundleDbConfigFile.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free