UNPKG

1.76 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var ts = require("typescript");
4var utils_1 = require("./utils");
5var LanguageServiceHost = /** @class */ (function () {
6 function LanguageServiceHost() {
7 var _this = this;
8 this.files = {};
9 // for ts.LanguageServiceHost
10 this.getCompilationSettings = function () { return ts.getDefaultCompilerOptions(); };
11 this.getScriptFileNames = function () { return Object.keys(_this.files); };
12 this.getScriptVersion = function (_fileName) { return "0"; };
13 this.getScriptSnapshot = function (fileName) { return _this.files[fileName]; };
14 this.getCurrentDirectory = function () { return process.cwd(); };
15 this.getDefaultLibFileName = function (options) { return ts.getDefaultLibFilePath(options); };
16 }
17 LanguageServiceHost.prototype.addFile = function (fileName, text) {
18 this.files[fileName] = ts.ScriptSnapshot.fromString(text);
19 };
20 return LanguageServiceHost;
21}());
22function format(fileName, text, options) {
23 if (options === void 0) { options = utils_1.createDefaultFormatCodeSettings(); }
24 var host = new LanguageServiceHost();
25 host.addFile(fileName, text);
26 var languageService = ts.createLanguageService(host);
27 var edits = languageService.getFormattingEditsForDocument(fileName, options);
28 edits
29 .sort(function (a, b) { return a.span.start - b.span.start; })
30 .reverse()
31 .forEach(function (edit) {
32 var head = text.slice(0, edit.span.start);
33 var tail = text.slice(edit.span.start + edit.span.length);
34 text = "" + head + edit.newText + tail;
35 });
36 return text;
37}
38exports.format = format;
39//# sourceMappingURL=formatter.js.map
\No newline at end of file