vite.ts — astro Source File
Architecture documentation for vite.ts, a typescript file in the astro codebase. 10 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 35a0af3d_ab30_11cd_b3ee_bae2c089e53b["vite.ts"] 10d4e39f_edb6_3e34_aa93_ae1211e7da05["../types/public/internal.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 10d4e39f_edb6_3e34_aa93_ae1211e7da05 32f8c7d4_d66e_e0cf_b019_46ec3f2fea31["../core/module-loader/index.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 32f8c7d4_d66e_e0cf_b019_46ec3f2fea31 dd6187d6_53c4_ce90_a1d1_3a0b5e7e7d3f["../../core/errors/errors.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> dd6187d6_53c4_ce90_a1d1_3a0b5e7e7d3f 8df634da_0f30_1e1f_1314_2439b0c9baab["../core/errors/errors-data.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 8df634da_0f30_1e1f_1314_2439b0c9baab 91e2aae7_9271_3bbb_4d0e_63fd50e547d0["./utils.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 91e2aae7_9271_3bbb_4d0e_63fd50e547d0 a3b7cd6b_b8c4_2fd6_1aee_ff353dd9b119["./runtime.js"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> a3b7cd6b_b8c4_2fd6_1aee_ff353dd9b119 e16a223b_37f3_6b25_1ee1_2b7bcb9d9415["node:fs"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> e16a223b_37f3_6b25_1ee1_2b7bcb9d9415 d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> d9a92db9_c95e_9165_13ac_24b3d859d946 0302dbcf_dad6_6bb1_3d2f_5c90fa9a96d4["shiki"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 0302dbcf_dad6_6bb1_3d2f_5c90fa9a96d4 263e522e_1aa5_ebc3_e7d6_45ebc51671f7["vite"] 35a0af3d_ab30_11cd_b3ee_bae2c089e53b --> 263e522e_1aa5_ebc3_e7d6_45ebc51671f7 style 35a0af3d_ab30_11cd_b3ee_bae2c089e53b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import * as fs from 'node:fs';
import { fileURLToPath } from 'node:url';
import type { ShikiTransformer } from 'shiki';
import { codeToHtml, createCssVariablesTheme } from 'shiki';
import type { ErrorPayload } from 'vite';
import type { SSRLoadedRenderer } from '../../../types/public/internal.js';
import type { ModuleLoader } from '../../module-loader/index.js';
import { AstroError, type ErrorWithMetadata } from '../errors.js';
import { FailedToLoadModuleSSR, MdxIntegrationMissingError } from '../errors-data.js';
import { createSafeError } from '../utils.js';
import { getDocsForError, renderErrorMarkdown } from './runtime.js';
export function enhanceViteSSRError({
error,
filePath,
loader,
renderers,
}: {
error: unknown;
filePath?: URL;
loader?: ModuleLoader;
renderers?: SSRLoadedRenderer[];
}): Error {
// NOTE: We don't know where the error that's coming here comes from, so we need to be defensive regarding what we do
// to it to make sure we keep as much information as possible. It's very possible that we receive an error that does not
// follow any kind of standard formats (ex: a number, a string etc)
let safeError = createSafeError(error) as ErrorWithMetadata;
// Vite will give you better stacktraces, using sourcemaps.
if (loader) {
try {
loader.fixStacktrace(safeError as Error);
} catch {}
}
if (filePath) {
const path = fileURLToPath(filePath);
const content = fs.readFileSync(path).toString();
const lns = content.split('\n');
// Vite has a fairly generic error message when it fails to load a module, let's try to enhance it a bit
// https://github.com/vitejs/vite/blob/ee7c28a46a6563d54b828af42570c55f16b15d2c/packages/vite/src/node/ssr/ssrModuleLoader.ts#L91
let importName: string | undefined;
if ((importName = /Failed to load url (.*?) \(resolved id:/.exec(safeError.message)?.[1])) {
safeError.title = FailedToLoadModuleSSR.title;
safeError.name = 'FailedToLoadModuleSSR';
safeError.message = FailedToLoadModuleSSR.message(importName);
safeError.hint = FailedToLoadModuleSSR.hint;
const line = lns.findIndex((ln) => ln.includes(importName!));
if (line !== -1) {
const column = lns[line]?.indexOf(importName);
safeError.loc = {
file: path,
line: line + 1,
column,
};
}
}
// ... (131 more lines)
Domain
Subdomains
Functions
Types
Dependencies
- ../../core/errors/errors.js
- ../core/errors/errors-data.js
- ../core/module-loader/index.js
- ../types/public/internal.js
- ./runtime.js
- ./utils.js
- node:fs
- node:url
- shiki
- vite
Source
Frequently Asked Questions
What does vite.ts do?
vite.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in vite.ts?
vite.ts defines 4 function(s): cssVariablesTheme, enhanceViteSSRError, getViteErrorPayload, transformerCompactLineOptions.
What does vite.ts depend on?
vite.ts imports 10 module(s): ../../core/errors/errors.js, ../core/errors/errors-data.js, ../core/module-loader/index.js, ../types/public/internal.js, ./runtime.js, ./utils.js, node:fs, node:url, and 2 more.
Where is vite.ts in the architecture?
vite.ts is located at packages/astro/src/core/errors/dev/vite.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/astro/src/core/errors/dev).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free