Home / Function/ getTemplates() — astro Function Reference

getTemplates() — astro Function Reference

Architecture documentation for the getTemplates() function in vite-plugin-env.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  b965fd87_d9a7_8cec_eddf_d034000cbcb5["getTemplates()"]
  241a5d79_df85_b217_dc9c_a74671cc544b["vite-plugin-env.ts"]
  b965fd87_d9a7_8cec_eddf_d034000cbcb5 -->|defined in| 241a5d79_df85_b217_dc9c_a74671cc544b
  1558dc0d_2a73_5227_6f33_9362e6487ba5["astroEnv()"]
  1558dc0d_2a73_5227_6f33_9362e6487ba5 -->|calls| b965fd87_d9a7_8cec_eddf_d034000cbcb5
  style b965fd87_d9a7_8cec_eddf_d034000cbcb5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/env/vite-plugin-env.ts lines 171–213

function getTemplates({
	schema,
	validatedVariables,
	loadedEnv,
}: {
	schema: EnvSchema;
	validatedVariables: Array<ValidVariable>;
	loadedEnv: Record<string, string> | null;
}) {
	let client = '';
	let server = (cachedServerTemplate ??= readFileSync(MODULE_TEMPLATE_URL, 'utf-8'));
	let onSetGetEnv = '';

	for (const { key, value, context } of validatedVariables) {
		const str = `export const ${key} = ${JSON.stringify(value)};`;
		if (context === 'client') {
			client += str;
		} else {
			server += str;
		}
	}

	for (const [key, options] of Object.entries(schema)) {
		if (!(options.context === 'server' && options.access === 'secret')) {
			continue;
		}

		server += `export let ${key} = _internalGetSecret(${JSON.stringify(key)});\n`;
		onSetGetEnv += `${key} = _internalGetSecret(${JSON.stringify(key)});\n`;
	}

	server = server.replace('// @@ON_SET_GET_ENV@@', onSetGetEnv);
	if (loadedEnv) {
		server = server.replace('// @@GET_ENV@@', `return (${JSON.stringify(loadedEnv)})[key];`);
	} else {
		server = server.replace('// @@GET_ENV@@', 'return _getEnv(key);');
	}

	return {
		client,
		server,
	};
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does getTemplates() do?
getTemplates() is a function in the astro codebase, defined in packages/astro/src/env/vite-plugin-env.ts.
Where is getTemplates() defined?
getTemplates() is defined in packages/astro/src/env/vite-plugin-env.ts at line 171.
What calls getTemplates()?
getTemplates() is called by 1 function(s): astroEnv.

Analyze Your Own Codebase

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

Try Supermodel Free