Home / File/ vite-plugin-content-virtual-mod.ts — astro Source File

vite-plugin-content-virtual-mod.ts — astro Source File

Architecture documentation for vite-plugin-content-virtual-mod.ts, a typescript file in the astro codebase. 14 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  22d17eb4_64b9_b222_54e2_71c9cd084abb["vite-plugin-content-virtual-mod.ts"]
  7216d952_4e4a_2d18_a85b_74b4ace79e2b["../core/constants.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> 7216d952_4e4a_2d18_a85b_74b4ace79e2b
  ef8a1e3f_e350_75a6_b92d_62a8566d8db9["../core/errors/index.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> ef8a1e3f_e350_75a6_b92d_62a8566d8db9
  a370a45c_02f1_30de_445d_47ee08d095a2["../core/viteUtils.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> a370a45c_02f1_30de_445d_47ee08d095a2
  f202f4fa_f9f9_9398_9510_7a42ce8ea007["../environments.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> f202f4fa_f9f9_9398_9510_7a42ce8ea007
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  2273eb38_2cc1_3ab6_58ce_6299d8f2ed92["../vite-plugin-astro/index.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> 2273eb38_2cc1_3ab6_58ce_6299d8f2ed92
  6d6c494c_c8df_be75_fbfb_a5f4768e2e5c["../vite-plugin-astro/metadata.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> 6d6c494c_c8df_be75_fbfb_a5f4768e2e5c
  eb7ca709_080c_a438_b9d7_f1238835779d["../content/consts.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> eb7ca709_080c_a438_b9d7_f1238835779d
  b0d51698_8c9c_7a14_2fa8_0c688b058e22["../content/content-layer.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> b0d51698_8c9c_7a14_2fa8_0c688b058e22
  520c567a_b741_f105_70ac_c637eacc7f83["../content/utils.js"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> 520c567a_b741_f105_70ac_c637eacc7f83
  e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415
  d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> d9a92db9_c95e_9165_13ac_24b3d859d946
  b531829f_005c_a14d_2a55_b5d7df675899["pluginutils"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> b531829f_005c_a14d_2a55_b5d7df675899
  263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"]
  22d17eb4_64b9_b222_54e2_71c9cd084abb --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7
  style 22d17eb4_64b9_b222_54e2_71c9cd084abb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import nodeFs from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dataToEsm } from '@rollup/pluginutils';
import { normalizePath, type Plugin, type ViteDevServer } from 'vite';
import { ASTRO_VITE_ENVIRONMENT_NAMES } from '../core/constants.js';
import { AstroError, AstroErrorData } from '../core/errors/index.js';
import { rootRelativePath } from '../core/viteUtils.js';
import { isAstroClientEnvironment } from '../environments.js';
import type { AstroSettings } from '../types/astro.js';
import type { AstroPluginMetadata } from '../vite-plugin-astro/index.js';
import { createDefaultAstroMetadata } from '../vite-plugin-astro/metadata.js';
import {
	ASSET_IMPORTS_FILE,
	ASSET_IMPORTS_RESOLVED_STUB_ID,
	ASSET_IMPORTS_VIRTUAL_ID,
	CONTENT_MODULE_FLAG,
	CONTENT_RENDER_FLAG,
	DATA_STORE_VIRTUAL_ID,
	MODULES_IMPORTS_FILE,
	MODULES_MJS_ID,
	MODULES_MJS_VIRTUAL_ID,
	RESOLVED_DATA_STORE_VIRTUAL_ID,
	RESOLVED_VIRTUAL_MODULE_ID,
	VIRTUAL_MODULE_ID,
} from './consts.js';
import { getDataStoreFile } from './content-layer.js';
import { getContentPaths, isDeferredModule } from './utils.js';

interface AstroContentVirtualModPluginParams {
	settings: AstroSettings;
	fs: typeof nodeFs;
}

function invalidateDataStore(viteServer: ViteDevServer) {
	const environment = viteServer.environments[ASTRO_VITE_ENVIRONMENT_NAMES.ssr];
	const module = environment.moduleGraph.getModuleById(RESOLVED_DATA_STORE_VIRTUAL_ID);
	if (module) {
		environment.moduleGraph.invalidateModule(module);
	}
	viteServer.environments.client.hot.send({
		type: 'full-reload',
		path: '*',
	});
}

export function astroContentVirtualModPlugin({
	settings,
	fs,
}: AstroContentVirtualModPluginParams): Plugin {
	let dataStoreFile: URL;
	let devServer: ViteDevServer;
	let liveConfig: string;
	return {
		name: 'astro-content-virtual-mod-plugin',
		enforce: 'pre',
		config(_, env) {
			dataStoreFile = getDataStoreFile(settings, env.command === 'serve');
			const contentPaths = getContentPaths(
				settings.config,
				undefined,
// ... (187 more lines)

Subdomains

Dependencies

  • ../content/consts.js
  • ../content/content-layer.js
  • ../content/utils.js
  • ../core/constants.js
  • ../core/errors/index.js
  • ../core/viteUtils.js
  • ../environments.js
  • ../types/astro.js
  • ../vite-plugin-astro/index.js
  • ../vite-plugin-astro/metadata.js
  • node:fs
  • node:url
  • pluginutils
  • vite

Frequently Asked Questions

What does vite-plugin-content-virtual-mod.ts do?
vite-plugin-content-virtual-mod.ts is a source file in the astro codebase, written in typescript. It belongs to the ContentCollections domain, DataLoaders subdomain.
What functions are defined in vite-plugin-content-virtual-mod.ts?
vite-plugin-content-virtual-mod.ts defines 3 function(s): astroContentVirtualModPlugin, generateContentEntryFile, invalidateDataStore.
What does vite-plugin-content-virtual-mod.ts depend on?
vite-plugin-content-virtual-mod.ts imports 14 module(s): ../content/consts.js, ../content/content-layer.js, ../content/utils.js, ../core/constants.js, ../core/errors/index.js, ../core/viteUtils.js, ../environments.js, ../types/astro.js, and 6 more.
Where is vite-plugin-content-virtual-mod.ts in the architecture?
vite-plugin-content-virtual-mod.ts is located at packages/astro/src/content/vite-plugin-content-virtual-mod.ts (domain: ContentCollections, subdomain: DataLoaders, directory: packages/astro/src/content).

Analyze Your Own Codebase

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

Try Supermodel Free