Home / Function/ validatePublicVariables() — astro Function Reference

validatePublicVariables() — astro Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

packages/astro/src/env/vite-plugin-env.ts lines 128–167

function validatePublicVariables({
	schema,
	loadedEnv,
	validateSecrets,
	sync,
}: {
	schema: EnvSchema;
	loadedEnv: Record<string, string>;
	validateSecrets: boolean;
	sync: boolean;
}) {
	const valid: Array<ValidVariable> = [];
	const invalid: Array<InvalidVariable> = [];

	for (const [key, options] of Object.entries(schema)) {
		const variable = loadedEnv[key] === '' ? undefined : loadedEnv[key];

		if (options.access === 'secret' && !validateSecrets) {
			continue;
		}

		const result = validateEnvVariable(variable, options);
		const type = getEnvFieldType(options);
		if (!result.ok) {
			invalid.push({ key, type, errors: result.errors });
			// We don't do anything with validated secrets so we don't store them
		} else if (options.access === 'public') {
			valid.push({ key, value: result.value, type, context: options.context });
		}
	}

	if (invalid.length > 0 && !sync) {
		throw new AstroError({
			...AstroErrorData.EnvInvalidVariables,
			message: AstroErrorData.EnvInvalidVariables.message(invalidVariablesToError(invalid)),
		});
	}

	return valid;
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does validatePublicVariables() do?
validatePublicVariables() is a function in the astro codebase, defined in packages/astro/src/env/vite-plugin-env.ts.
Where is validatePublicVariables() defined?
validatePublicVariables() is defined in packages/astro/src/env/vite-plugin-env.ts at line 128.
What calls validatePublicVariables()?
validatePublicVariables() 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