path.ts — astro Source File
Architecture documentation for path.ts, a typescript file in the astro codebase.
Entity Profile
Relationship Graph
Source Code
/**
* A set of common path utilities commonly used through the Astro core and integration
* projects. These do things like ensure a forward slash prepends paths.
*/
export function appendExtension(path: string, extension: string) {
return path + '.' + extension;
}
export function appendForwardSlash(path: string) {
return path.endsWith('/') ? path : path + '/';
}
export function prependForwardSlash(path: string) {
return path[0] === '/' ? path : '/' + path;
}
export const MANY_TRAILING_SLASHES = /\/{2,}$/g;
export function collapseDuplicateTrailingSlashes(path: string, trailingSlash: boolean) {
if (!path) {
return path;
}
return path.replace(MANY_TRAILING_SLASHES, trailingSlash ? '/' : '') || '/';
}
export function removeTrailingForwardSlash(path: string) {
return path.endsWith('/') ? path.slice(0, path.length - 1) : path;
}
export function removeLeadingForwardSlash(path: string) {
return path.startsWith('/') ? path.substring(1) : path;
}
export function removeLeadingForwardSlashWindows(path: string) {
return path.startsWith('/') && path[2] === ':' ? path.substring(1) : path;
}
export function trimSlashes(path: string) {
return path.replace(/^\/|\/$/g, '');
}
function startsWithDotDotSlash(path: string) {
const c1 = path[0];
const c2 = path[1];
const c3 = path[2];
return c1 === '.' && c2 === '.' && c3 === '/';
}
function startsWithDotSlash(path: string) {
const c1 = path[0];
const c2 = path[1];
return c1 === '.' && c2 === '/';
}
export function isRelativePath(path: string) {
return startsWithDotDotSlash(path) || startsWithDotSlash(path);
}
function isString(path: unknown): path is string {
// ... (225 more lines)
Domain
Subdomains
Functions
- appendExtension()
- appendForwardSlash()
- collapseDuplicateTrailingSlashes()
- fileExtension()
- hasFileExtension()
- isInternalPath()
- isParentDirectory()
- isRelativePath()
- isRemotePath()
- isString()
- joinPaths()
- normalizePathname()
- prependForwardSlash()
- removeBase()
- removeFileExtension()
- removeLeadingForwardSlash()
- removeLeadingForwardSlashWindows()
- removeQueryString()
- removeTrailingForwardSlash()
- slash()
- startsWithDotDotSlash()
- startsWithDotSlash()
- trimSlashes()
Source
Frequently Asked Questions
What does path.ts do?
path.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in path.ts?
path.ts defines 23 function(s): appendExtension, appendForwardSlash, collapseDuplicateTrailingSlashes, fileExtension, hasFileExtension, isInternalPath, isParentDirectory, isRelativePath, isRemotePath, isString, and 13 more.
Where is path.ts in the architecture?
path.ts is located at packages/internal-helpers/src/path.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/internal-helpers/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free