create.ts — astro Source File
Architecture documentation for create.ts, a typescript file in the astro codebase. 25 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR a7eed989_9f2b_5163_ecdf_85920a8b973f["create.ts"] 37e7610e_4cbf_5d5a_5b2c_236fdc8ce134["../../../assets/endpoint/config.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 37e7610e_4cbf_5d5a_5b2c_236fdc8ce134 ec3f57f9_1334_b72b_abeb_11b186147ebe["../integrations/hooks.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> ec3f57f9_1334_b72b_abeb_11b186147ebe 8651c206_171a_4a48_b04b_b47f5573b5da["../prerender/utils.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 8651c206_171a_4a48_b04b_b47f5573b5da e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> e9b74c5a_8d34_34a7_e196_5e41b87214aa c32d12e2_d85e_28c0_eea7_9b29629857e0["../types/public/config.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> c32d12e2_d85e_28c0_eea7_9b29629857e0 10d4e39f_edb6_3e34_aa93_ae1211e7da05["../types/public/internal.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 10d4e39f_edb6_3e34_aa93_ae1211e7da05 97dbad4f_4a90_206c_6e29_6a54c12480f2["../core/app/index.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 97dbad4f_4a90_206c_6e29_6a54c12480f2 7216d952_4e4a_2d18_a85b_74b4ace79e2b["../core/constants.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 7216d952_4e4a_2d18_a85b_74b4ace79e2b 8df634da_0f30_1e1f_1314_2439b0c9baab["../core/errors/errors-data.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 8df634da_0f30_1e1f_1314_2439b0c9baab ef8a1e3f_e350_75a6_b92d_62a8566d8db9["../core/errors/index.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> ef8a1e3f_e350_75a6_b92d_62a8566d8db9 d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> d3861967_b647_84d2_ff48_15013353bd56 7e4494c0_5563_4329_1bff_a84be66e1bc2["../core/path.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 7e4494c0_5563_4329_1bff_a84be66e1bc2 6753d7be_860e_1564_f3fe_9b97397c52b4["../server-islands/endpoint.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> 6753d7be_860e_1564_f3fe_9b97397c52b4 f68003f1_292f_ca44_03ce_21af87a33c7b["../core/util.js"] a7eed989_9f2b_5163_ecdf_85920a8b973f --> f68003f1_292f_ca44_03ce_21af87a33c7b style a7eed989_9f2b_5163_ecdf_85920a8b973f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import nodeFs from 'node:fs';
import { createRequire } from 'node:module';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import pLimit from 'p-limit';
import colors from 'piccolore';
import { injectImageEndpoint } from '../../../assets/endpoint/config.js';
import { runHookRoutesResolved } from '../../../integrations/hooks.js';
import { getPrerenderDefault } from '../../../prerender/utils.js';
import type { AstroSettings, RoutesList } from '../../../types/astro.js';
import type { AstroConfig } from '../../../types/public/config.js';
import type { RouteData, RoutePart } from '../../../types/public/internal.js';
import { toRoutingStrategy } from '../../app/index.js';
import { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from '../../constants.js';
import {
InvalidRedirectDestination,
MissingIndexForInternationalization,
UnsupportedExternalRedirect,
} from '../../errors/errors-data.js';
import { AstroError } from '../../errors/index.js';
import type { Logger } from '../../logger/core.js';
import { hasFileExtension, removeLeadingForwardSlash, slash } from '../../path.js';
import { injectServerIslandRoute } from '../../server-islands/endpoint.js';
import { resolvePages } from '../../util.js';
import { ensure404Route } from '../astro-designed-error-pages.js';
import { routeComparator } from '../priority.js';
import { getPattern } from './pattern.js';
import { getRoutePrerenderOption } from './prerender.js';
import { validateSegment } from './segment.js';
const require = createRequire(import.meta.url);
interface Item {
basename: string;
ext: string;
parts: RoutePart[];
file: string;
isDir: boolean;
isIndex: boolean;
isPage: boolean;
routeSuffix: string;
}
const ROUTE_DYNAMIC_SPLIT = /\[([^[\]()]+(?:\([^)]+\))?)\]/;
const ROUTE_SPREAD = /^\.{3}.+$/;
function getParts(part: string, file: string) {
const result: RoutePart[] = [];
part.split(ROUTE_DYNAMIC_SPLIT).map((str, i) => {
if (!str) return;
const dynamic = i % 2 === 1;
const [, content] = dynamic ? /([^(]+)$/.exec(str) || [null, null] : [null, str];
if (!content || (dynamic && !/^(?:\.\.\.)?[\w$]+$/.test(content))) {
throw new Error(`Invalid route ${file} — parameter name must match /^[a-zA-Z0-9_$]+$/`);
}
result.push({
content,
// ... (750 more lines)
Domain
Subdomains
Functions
Dependencies
- ../../../assets/endpoint/config.js
- ../core/app/index.js
- ../core/constants.js
- ../core/errors/errors-data.js
- ../core/errors/index.js
- ../core/logger/core.js
- ../core/path.js
- ../core/routing/astro-designed-error-pages.js
- ../core/routing/manifest/prerender.js
- ../core/routing/priority.js
- ../core/util.js
- ../integrations/hooks.js
- ../prerender/utils.js
- ../routing/manifest/pattern.js
- ../server-islands/endpoint.js
- ../types/astro.js
- ../types/public/config.js
- ../types/public/internal.js
- ./segment.js
- node:fs
- node:module
- node:path
- node:url
- p-limit
- piccolore
Source
Frequently Asked Questions
What does create.ts do?
create.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 create.ts?
create.ts defines 12 function(s): createFileBasedRoutes, createInjectedRoutes, createRedirectRoutes, createRoutesList, detectRouteCollision, getParts, isSemanticallyEqualSegment, isStaticSegment, joinSegments, replaceOrKeep, and 2 more.
What does create.ts depend on?
create.ts imports 25 module(s): ../../../assets/endpoint/config.js, ../core/app/index.js, ../core/constants.js, ../core/errors/errors-data.js, ../core/errors/index.js, ../core/logger/core.js, ../core/path.js, ../core/routing/astro-designed-error-pages.js, and 17 more.
Where is create.ts in the architecture?
create.ts is located at packages/astro/src/core/routing/manifest/create.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/core/routing/manifest).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free