Home / File/ build.ts — astro Source File

build.ts — astro Source File

Architecture documentation for build.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro RenderingEngine 2 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  09de27d4_1fc5_e58b_fa6e_eee2e4636d42["build.ts"]
  d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"]
  09de27d4_1fc5_e58b_fa6e_eee2e4636d42 --> d9a92db9_c95e_9165_13ac_24b3d859d946
  972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60["esbuild"]
  09de27d4_1fc5_e58b_fa6e_eee2e4636d42 --> 972c6fe0_4a8d_d55e_c1b0_a57c5bf4ed60
  style 09de27d4_1fc5_e58b_fa6e_eee2e4636d42 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { fileURLToPath } from 'node:url';
import { build } from 'esbuild';

/**
 * Build a client directive entrypoint into code that can directly run in a `<script>` tag.
 */
export async function buildClientDirectiveEntrypoint(
	name: string,
	entrypoint: string | URL,
	root: URL,
) {
	const stringifiedName = JSON.stringify(name);
	const stringifiedEntrypoint = JSON.stringify(entrypoint);

	// NOTE: when updating this stdin code, make sure to also update `packages/astro/scripts/prebuild.ts`
	// that prebuilds the client directive with a similar code too.
	const output = await build({
		stdin: {
			contents: `\
import directive from ${stringifiedEntrypoint};

(self.Astro || (self.Astro = {}))[${stringifiedName}] = directive;

window.dispatchEvent(new Event('astro:' + ${stringifiedName}));`,
			resolveDir: fileURLToPath(root),
		},
		absWorkingDir: fileURLToPath(root),
		format: 'iife',
		minify: true,
		bundle: true,
		write: false,
	});

	const outputFile = output.outputFiles?.[0];
	if (!outputFile) return '';

	return outputFile.text;
}

Domain

Subdomains

Dependencies

  • esbuild
  • node:url

Frequently Asked Questions

What does build.ts do?
build.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What functions are defined in build.ts?
build.ts defines 1 function(s): buildClientDirectiveEntrypoint.
What does build.ts depend on?
build.ts imports 2 module(s): esbuild, node:url.
Where is build.ts in the architecture?
build.ts is located at packages/astro/src/core/client-directive/build.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/core/client-directive).

Analyze Your Own Codebase

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

Try Supermodel Free