import { Path } from "./types"; /** * Internally, we represent paths as strings with '/' as the directory separator. * When we make system calls (eg: LanguageServiceHost.getDirectory()), * we expect the host to correctly handle paths in our specified format. */ export declare const directorySeparator = "/"; /** * Determines whether a path is an absolute disk path (e.g. starts with `/`, or a dos path * like `c:`, `c:\` or `c:/`). */ export declare function isRootedDiskPath(path: string): boolean; export declare function hasExtension(fileName: string): boolean; export declare function fileExtensionIsOneOf(path: string, extensions: readonly string[]): boolean; /** * Returns the path except for its basename. Semantics align with NodeJS's `path.dirname` * except that we support URLs as well. * * ```ts * // POSIX * getDirectoryPath("/path/to/file.ext") === "/path/to" * getDirectoryPath("/path/to/") === "/path" * getDirectoryPath("/") === "/" * // DOS * getDirectoryPath("c:/path/to/file.ext") === "c:/path/to" * getDirectoryPath("c:/path/to/") === "c:/path" * getDirectoryPath("c:/") === "c:/" * getDirectoryPath("c:") === "c:" * // URL * getDirectoryPath("http://typescriptlang.org/path/to/file.ext") === "http://typescriptlang.org/path/to" * getDirectoryPath("http://typescriptlang.org/path/to") === "http://typescriptlang.org/path" * getDirectoryPath("http://typescriptlang.org/") === "http://typescriptlang.org/" * getDirectoryPath("http://typescriptlang.org") === "http://typescriptlang.org" * ``` */ export declare function getDirectoryPath(path: Path): Path; /** * Returns the path except for its basename. Semantics align with NodeJS's `path.dirname` * except that we support URLs as well. * * ```ts * // POSIX * getDirectoryPath("/path/to/file.ext") === "/path/to" * getDirectoryPath("/path/to/") === "/path" * getDirectoryPath("/") === "/" * // DOS * getDirectoryPath("c:/path/to/file.ext") === "c:/path/to" * getDirectoryPath("c:/path/to/") === "c:/path" * getDirectoryPath("c:/") === "c:/" * getDirectoryPath("c:") === "c:" * // URL * getDirectoryPath("http://typescriptlang.org/path/to/file.ext") === "http://typescriptlang.org/path/to" * getDirectoryPath("http://typescriptlang.org/path/to") === "http://typescriptlang.org/path" * getDirectoryPath("http://typescriptlang.org/") === "http://typescriptlang.org/" * getDirectoryPath("http://typescriptlang.org") === "http://typescriptlang.org" * getDirectoryPath("file://server/path/to/file.ext") === "file://server/path/to" * getDirectoryPath("file://server/path/to") === "file://server/path" * getDirectoryPath("file://server/") === "file://server/" * getDirectoryPath("file://server") === "file://server" * getDirectoryPath("file:///path/to/file.ext") === "file:///path/to" * getDirectoryPath("file:///path/to") === "file:///path" * getDirectoryPath("file:///") === "file:///" * getDirectoryPath("file://") === "file://" * ``` */ export declare function getDirectoryPath(path: string): string; /** * Combines paths. If a path is absolute, it replaces any previous path. Relative paths are not simplified. * * ```ts * // Non-rooted * combinePaths("path", "to", "file.ext") === "path/to/file.ext" * combinePaths("path", "dir", "..", "to", "file.ext") === "path/dir/../to/file.ext" * // POSIX * combinePaths("/path", "to", "file.ext") === "/path/to/file.ext" * combinePaths("/path", "/to", "file.ext") === "/to/file.ext" * // DOS * combinePaths("c:/path", "to", "file.ext") === "c:/path/to/file.ext" * combinePaths("c:/path", "c:/to", "file.ext") === "c:/to/file.ext" * // URL * combinePaths("file:///path", "to", "file.ext") === "file:///path/to/file.ext" * combinePaths("file:///path", "file:///to", "file.ext") === "file:///to/file.ext" * ``` */ export declare function combinePaths(path: string, ...paths: (string | undefined)[]): string; /** * Parse a path into an array containing a root component (at index 0) and zero or more path * components (at indices > 0). The result is normalized. * If the path is relative, the root component is `""`. * If the path is absolute, the root component includes the first path separator (`/`). * * ```ts * getNormalizedPathComponents("to/dir/../file.ext", "/path/") === ["/", "path", "to", "file.ext"] * ``` */ export declare function getNormalizedPathComponents(path: string, currentDirectory: string | undefined): string[]; export declare function normalizePath(path: string): string; /** * Removes a trailing directory separator from a path, if it does not already have one. * * ```ts * removeTrailingDirectorySeparator("/path/to/file.ext") === "/path/to/file.ext" * removeTrailingDirectorySeparator("/path/to/file.ext/") === "/path/to/file.ext" * ``` */ export declare function removeTrailingDirectorySeparator(path: Path): Path; export declare function removeTrailingDirectorySeparator(path: string): string; /** * Determines whether a `parent` path contains a `child` path using the provide case sensitivity. */ export declare function containsPath(parent: string, child: string, ignoreCase?: boolean): boolean; export declare function containsPath(parent: string, child: string, currentDirectory: string, ignoreCase?: boolean): boolean; //# sourceMappingURL=path.d.ts.map