alm
Version:
The best IDE for TypeScript
53 lines (52 loc) • 2.08 kB
JavaScript
;
/**
* Controls the root directory we are working off of
*/
Object.defineProperty(exports, "__esModule", { value: true });
var fsu = require("../utils/fsu");
var utils = require("../../common/utils");
var settings = require("./settings");
var events_1 = require("../../common/events");
exports.projectRootUpdated = new events_1.TypedEvent();
var projectRoot = fsu.consistentPath(process.cwd());
exports.projectRootUpdated.emit({ filePath: projectRoot });
function getProjectRoot() {
return projectRoot;
}
exports.getProjectRoot = getProjectRoot;
function setProjectRoot(rootDir) {
projectRoot = fsu.consistentPath(rootDir);
process.chdir(projectRoot);
settings.addWorkingDir(projectRoot);
exports.projectRootUpdated.emit({ filePath: projectRoot });
}
exports.setProjectRoot = setProjectRoot;
function makeRelative(filePath) {
return fsu.makeRelativePath(projectRoot, filePath);
}
exports.makeRelative = makeRelative;
function makeAbsolute(relativeFilePath) {
return fsu.resolve(projectRoot, relativeFilePath);
}
exports.makeAbsolute = makeAbsolute;
function makeAbsoluteIfNeeded(filePathOrRelativeFilePath) {
if (!fsu.isAbsolute(filePathOrRelativeFilePath)) {
return makeAbsolute(filePathOrRelativeFilePath);
}
else {
return fsu.consistentPath(filePathOrRelativeFilePath);
}
}
exports.makeAbsoluteIfNeeded = makeAbsoluteIfNeeded;
function makeRelativeUrl(url) {
var _a = utils.getFilePathAndProtocolFromUrl(url), filePath = _a.filePath, protocol = _a.protocol;
var relativeFilePath = makeRelative(filePath);
return utils.getUrlFromFilePathAndProtocol({ protocol: protocol, filePath: relativeFilePath });
}
exports.makeRelativeUrl = makeRelativeUrl;
function makeAbsoluteUrl(relativeUrl) {
var _a = utils.getFilePathAndProtocolFromUrl(relativeUrl), relativeFilePath = _a.filePath, protocol = _a.protocol;
var filePath = makeAbsolute(relativeFilePath);
return utils.getUrlFromFilePathAndProtocol({ protocol: protocol, filePath: filePath });
}
exports.makeAbsoluteUrl = makeAbsoluteUrl;