113 lines
5.1 KiB
Plaintext
113 lines
5.1 KiB
Plaintext
|
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;
|