runner.ts — astro Source File
Architecture documentation for runner.ts, a typescript file in the astro codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 58abb67e_f385_ecd0_f6d1_c515d265bf85["runner.ts"] d6a87075_d364_3cda_ef2a_653417e58f07["../../types/typed-emitter.js"] 58abb67e_f385_ecd0_f6d1_c515d265bf85 --> d6a87075_d364_3cda_ef2a_653417e58f07 fc0217ba_5b68_32cc_f77d_49b4596e615e["node:events"] 58abb67e_f385_ecd0_f6d1_c515d265bf85 --> fc0217ba_5b68_32cc_f77d_49b4596e615e e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"] 58abb67e_f385_ecd0_f6d1_c515d265bf85 --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415 263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"] 58abb67e_f385_ecd0_f6d1_c515d265bf85 --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7 style 58abb67e_f385_ecd0_f6d1_c515d265bf85 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { EventEmitter } from 'node:events';
import type * as fs from 'node:fs';
import type { EnvironmentModuleNode, RunnableDevEnvironment } from 'vite';
import type { TypedEventEmitter } from '../../types/typed-emitter.js';
// This is a generic interface for a module loader. In the astro cli this is
// fulfilled by Vite, see vite.ts
export type LoaderEvents = {
'file-add': (msg: [path: string, stats?: fs.Stats | undefined]) => void;
'file-change': (msg: [path: string, stats?: fs.Stats | undefined]) => void;
'file-unlink': (msg: [path: string, stats?: fs.Stats | undefined]) => void;
'hmr-error': (msg: {
type: 'error';
err: {
message: string;
stack: string;
};
}) => void;
};
export type ModuleLoaderEventEmitter = TypedEventEmitter<LoaderEvents>;
export interface ModuleLoader {
import: (src: string) => Promise<Record<string, any>>;
resolveId: (specifier: string, parentId: string | undefined) => Promise<string | undefined>;
getModuleById: (id: string) => EnvironmentModuleNode | undefined;
getModulesByFile: (file: string) => Set<EnvironmentModuleNode> | undefined;
getModuleInfo: (id: string) => ModuleInfo | null;
eachModule(
callbackfn: (
value: EnvironmentModuleNode,
key: string,
map: Map<string, EnvironmentModuleNode>,
) => void,
): void;
invalidateModule(mod: EnvironmentModuleNode): void;
fixStacktrace: (error: Error) => void;
clientReload: () => void;
webSocketSend: (msg: any) => void;
isHttps: () => boolean;
events: TypedEventEmitter<LoaderEvents>;
getSSREnvironment: () => RunnableDevEnvironment;
}
export interface ModuleInfo {
id: string;
meta?: Record<string, any>;
}
export function createLoader(overrides: Partial<ModuleLoader>): ModuleLoader {
return {
import() {
throw new Error(`Not implemented`);
},
resolveId(id) {
return Promise.resolve(id);
},
getModuleById() {
return undefined;
},
getModulesByFile() {
return undefined;
},
getModuleInfo() {
return null;
},
eachModule() {
throw new Error(`Not implemented`);
},
invalidateModule() {},
fixStacktrace() {},
clientReload() {},
webSocketSend() {},
isHttps() {
return true;
},
getSSREnvironment() {
throw new Error('Not implemented');
},
events: new EventEmitter() as ModuleLoaderEventEmitter,
...overrides,
};
}
Domain
Subdomains
Dependencies
- ../../types/typed-emitter.js
- node:events
- node:fs
- vite
Source
Frequently Asked Questions
What does runner.ts do?
runner.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 runner.ts?
runner.ts defines 8 function(s): RunnableDevEnvironment, createLoader, error, file, id, msg, specifier, src.
What does runner.ts depend on?
runner.ts imports 4 module(s): ../../types/typed-emitter.js, node:events, node:fs, vite.
Where is runner.ts in the architecture?
runner.ts is located at packages/astro/src/core/module-loader/runner.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/core/module-loader).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free