UNPKG

typescript-formatter

Version:
39 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ts = require("typescript"); var utils_1 = require("./utils"); var LanguageServiceHost = /** @class */ (function () { function LanguageServiceHost() { var _this = this; this.files = {}; // for ts.LanguageServiceHost this.getCompilationSettings = function () { return ts.getDefaultCompilerOptions(); }; this.getScriptFileNames = function () { return Object.keys(_this.files); }; this.getScriptVersion = function (_fileName) { return "0"; }; this.getScriptSnapshot = function (fileName) { return _this.files[fileName]; }; this.getCurrentDirectory = function () { return process.cwd(); }; this.getDefaultLibFileName = function (options) { return ts.getDefaultLibFilePath(options); }; } LanguageServiceHost.prototype.addFile = function (fileName, text) { this.files[fileName] = ts.ScriptSnapshot.fromString(text); }; return LanguageServiceHost; }()); function format(fileName, text, options) { if (options === void 0) { options = utils_1.createDefaultFormatCodeSettings(); } var host = new LanguageServiceHost(); host.addFile(fileName, text); var languageService = ts.createLanguageService(host); var edits = languageService.getFormattingEditsForDocument(fileName, options); edits .sort(function (a, b) { return a.span.start - b.span.start; }) .reverse() .forEach(function (edit) { var head = text.slice(0, edit.span.start); var tail = text.slice(edit.span.start + edit.span.length); text = "" + head + edit.newText + tail; }); return text; } exports.format = format; //# sourceMappingURL=formatter.js.map