UNPKG

@theia/core

Version:

Theia is a cloud & desktop IDE framework implemented in TypeScript.

63 lines 2.77 kB
"use strict"; // ***************************************************************************** // Copyright (C) 2017 TypeFox and others. // // This program and the accompanying materials are made available under the // terms of the Eclipse Public License v. 2.0 which is available at // http://www.eclipse.org/legal/epl-2.0. // // This Source Code may also be made available under the following Secondary // Licenses when the conditions for such availability set forth in the Eclipse // Public License v. 2.0 are satisfied: GNU General Public License, version 2 // with the GNU Classpath Exception which is available at // https://www.gnu.org/software/classpath/license.html. // // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 // ***************************************************************************** Object.defineProperty(exports, "__esModule", { value: true }); exports.FileUri = void 0; const vscode_uri_1 = require("vscode-uri"); const uri_1 = require("../common/uri"); const os_1 = require("../common/os"); var FileUri; (function (FileUri) { const windowsDriveRegex = /^([^:/?#]+?):$/; /** * Creates a new file URI from the filesystem path argument. * @param fsPath the filesystem path. */ function create(fsPath_) { return new uri_1.default(vscode_uri_1.URI.file(fsPath_)); } FileUri.create = create; /** * Returns with the platform specific FS path that is represented by the URI argument. * * @param uri the file URI that has to be resolved to a platform specific FS path. */ function fsPath(uri) { if (typeof uri === 'string') { return fsPath(new uri_1.default(uri)); } else { /* * A uri for the root of a Windows drive, eg file:\\\c%3A, is converted to c: * by the Uri class. However file:\\\c%3A is unambiguously a uri to the root of * the drive and c: is interpreted as the default directory for the c drive * (by, for example, the readdir function in the fs-extra module). * A backslash must be appended to the drive, eg c:\, to ensure the correct path. */ // eslint-disable-next-line @typescript-eslint/no-explicit-any const fsPathFromVsCodeUri = uri.codeUri.fsPath; if (os_1.isWindows) { const isWindowsDriveRoot = windowsDriveRegex.exec(fsPathFromVsCodeUri); if (isWindowsDriveRoot) { return fsPathFromVsCodeUri + '\\'; } } return fsPathFromVsCodeUri; } } FileUri.fsPath = fsPath; })(FileUri = exports.FileUri || (exports.FileUri = {})); //# sourceMappingURL=file-uri.js.map