ts-budgie
Version:
Converts TypeScript code to Budgie.
85 lines • 3.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var ts = require("typescript");
var utils_1 = require("./utils");
var createSourceFilesMap = function (sourceFiles) {
var map = new Map();
if (sourceFiles instanceof Map) {
for (var _i = 0, _a = Array.from(sourceFiles.entries()); _i < _a.length; _i++) {
var _b = _a[_i], fileName = _b[0], sourceFile = _b[1];
map.set(utils_1.fullyNormalizeFilePath(fileName), sourceFile);
}
}
else {
for (var _c = 0, sourceFiles_1 = sourceFiles; _c < sourceFiles_1.length; _c++) {
var sourceFile = sourceFiles_1[_c];
map.set(utils_1.fullyNormalizeFilePath(sourceFile.fileName), sourceFile);
}
}
return map;
};
var InMemoryCompilerHost = /** @class */ (function () {
function InMemoryCompilerHost(sourceFiles) {
var _this = this;
this.fileExists = function (fileName) { return _this.sourceFiles.has(utils_1.fullyNormalizeFilePath(fileName)); };
this.readFile = function (fileName) {
var file = _this.sourceFiles.get(utils_1.fullyNormalizeFilePath(fileName));
if (file === undefined) {
throw new Error("File not found: '" + file + "'.");
}
return file.text;
};
this.sourceFiles = createSourceFilesMap(sourceFiles);
}
InMemoryCompilerHost.prototype.getDefaultLibFileName = function () {
return "";
};
// tslint:disable-next-line:variable-name
InMemoryCompilerHost.prototype.getSourceFile = function (fileName, _languageVersion, onError) {
var sourceFile = this.sourceFiles.get(utils_1.fullyNormalizeFilePath(fileName));
if (sourceFile !== undefined) {
return sourceFile;
}
var message = "'" + fileName + "' not found.";
if (onError !== undefined) {
onError(message);
}
throw new Error(message);
};
InMemoryCompilerHost.prototype.writeFile = function () {
/* ... */
};
InMemoryCompilerHost.prototype.getCurrentDirectory = function () {
return ".";
};
InMemoryCompilerHost.prototype.getCanonicalFileName = function (fileName) {
return fileName;
};
InMemoryCompilerHost.prototype.getNewLine = function () {
return "\n";
};
InMemoryCompilerHost.prototype.useCaseSensitiveFileNames = function () {
return true;
};
InMemoryCompilerHost.prototype.resolveModuleNames = function (moduleNames, containingFile) {
var _this = this;
return moduleNames.map(function (rawModuleName) {
var moduleName = utils_1.fullyNormalizeFilePath(rawModuleName[0] === "." ? path.join(path.dirname(containingFile), rawModuleName) : path.normalize(rawModuleName));
var resolvedFileName = moduleName + ".ts";
if (!_this.sourceFiles.has(resolvedFileName)) {
throw new Error("Could not resolve '" + resolvedFileName + "' from module name '" + rawModuleName + "' in '" + containingFile + "'.");
}
return {
resolvedFileName: resolvedFileName,
extension: ts.Extension.Ts,
};
});
};
InMemoryCompilerHost.prototype.getDirectories = function () {
throw new Error("getDirectories is unsupported in a stub compiler.");
};
return InMemoryCompilerHost;
}());
exports.InMemoryCompilerHost = InMemoryCompilerHost;
//# sourceMappingURL=inMemoryCompilerHost.js.map