Home / File/ server-listeners.ts — astro Source File

server-listeners.ts — astro Source File

Architecture documentation for server-listeners.ts, a typescript file in the astro codebase. 6 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23["server-listeners.ts"]
  d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> d3861967_b647_84d2_ff48_15013353bd56
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  b9d4daed_6cbd_2f82_de2c_bcacb69be3b2["./types-generator.js"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> b9d4daed_6cbd_2f82_de2c_bcacb69be3b2
  520c567a_b741_f105_70ac_c637eacc7f83["../content/utils.js"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> 520c567a_b741_f105_70ac_c637eacc7f83
  e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415
  263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"]
  ab9fccbb_2c60_cea9_6491_c0c755fcbd23 --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7
  style ab9fccbb_2c60_cea9_6491_c0c755fcbd23 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type fsMod from 'node:fs';
import type { ViteDevServer } from 'vite';
import type { Logger } from '../core/logger/core.js';
import type { AstroSettings } from '../types/astro.js';
import { createContentTypesGenerator } from './types-generator.js';
import { globalContentConfigObserver } from './utils.js';

interface ContentServerListenerParams {
	fs: typeof fsMod;
	logger: Logger;
	settings: AstroSettings;
	viteServer: ViteDevServer;
}

export async function attachContentServerListeners({
	viteServer,
	fs,
	logger,
	settings,
}: ContentServerListenerParams) {
	const contentGenerator = await createContentTypesGenerator({
		fs,
		settings,
		logger,
		viteServer,
		contentConfigObserver: globalContentConfigObserver,
	});
	await contentGenerator.init();
	logger.debug('content', 'Types generated');

	viteServer.watcher.on('add', (entry) => {
		contentGenerator.queueEvent({ name: 'add', entry });
	});
	viteServer.watcher.on('addDir', (entry) =>
		contentGenerator.queueEvent({ name: 'addDir', entry }),
	);
	viteServer.watcher.on('change', (entry) => {
		contentGenerator.queueEvent({ name: 'change', entry });
	});
	viteServer.watcher.on('unlink', (entry) => {
		contentGenerator.queueEvent({ name: 'unlink', entry });
	});
	viteServer.watcher.on('unlinkDir', (entry) =>
		contentGenerator.queueEvent({ name: 'unlinkDir', entry }),
	);
}

Subdomains

Dependencies

  • ../content/utils.js
  • ../core/logger/core.js
  • ../types/astro.js
  • ./types-generator.js
  • node:fs
  • vite

Frequently Asked Questions

What does server-listeners.ts do?
server-listeners.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 server-listeners.ts?
server-listeners.ts defines 1 function(s): attachContentServerListeners.
What does server-listeners.ts depend on?
server-listeners.ts imports 6 module(s): ../content/utils.js, ../core/logger/core.js, ../types/astro.js, ./types-generator.js, node:fs, vite.
Where is server-listeners.ts in the architecture?
server-listeners.ts is located at packages/astro/src/content/server-listeners.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