typescript-formatter
Version:
Formatter of TypeScript code
95 lines • 5.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var ts = require("typescript");
var path = require("path");
var fs = require("fs");
var utils_1 = require("../utils");
function makeFormatCodeOptions(fileName, opts, formatSettings) {
var baseDir = opts.baseDir ? path.resolve(opts.baseDir) : path.dirname(path.resolve(fileName));
var configFileName;
if (opts.tsfmtFile && path.isAbsolute(opts.tsfmtFile)) {
configFileName = opts.tsfmtFile;
}
else {
configFileName = utils_1.getConfigFileName(baseDir, opts.tsfmtFile || "tsfmt.json");
}
if (!configFileName) {
return formatSettings;
}
if (opts.verbose) {
console.log("read " + configFileName + " for " + fileName);
}
var config = utils_1.parseJSON(fs.readFileSync(configFileName, "utf-8"));
if (typeof config.insertSpaceAfterCommaDelimiter === "boolean") {
formatSettings.insertSpaceAfterCommaDelimiter = config.insertSpaceAfterCommaDelimiter;
}
if (typeof config.insertSpaceAfterSemicolonInForStatements === "boolean") {
formatSettings.insertSpaceAfterSemicolonInForStatements = config.insertSpaceAfterSemicolonInForStatements;
}
if (typeof config.insertSpaceBeforeAndAfterBinaryOperators === "boolean") {
formatSettings.insertSpaceBeforeAndAfterBinaryOperators = config.insertSpaceBeforeAndAfterBinaryOperators;
}
if (typeof config.insertSpaceAfterConstructor === "boolean") {
formatSettings.insertSpaceAfterConstructor = config.insertSpaceAfterConstructor;
}
if (typeof config.insertSpaceAfterKeywordsInControlFlowStatements === "boolean") {
formatSettings.insertSpaceAfterKeywordsInControlFlowStatements = config.insertSpaceAfterKeywordsInControlFlowStatements;
}
if (typeof config.insertSpaceAfterFunctionKeywordForAnonymousFunctions === "boolean") {
formatSettings.insertSpaceAfterFunctionKeywordForAnonymousFunctions = config.insertSpaceAfterFunctionKeywordForAnonymousFunctions;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis === "boolean") {
formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces === "boolean") {
formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets === "boolean") {
formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces === "boolean") {
formatSettings.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces = config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces;
}
if (typeof config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces === "boolean") {
formatSettings.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces = config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces;
}
if (typeof config.insertSpaceAfterTypeAssertion === "boolean") {
formatSettings.insertSpaceAfterTypeAssertion = config.insertSpaceAfterTypeAssertion;
}
if (typeof config.insertSpaceBeforeFunctionParenthesis === "boolean") {
formatSettings.insertSpaceBeforeFunctionParenthesis = config.insertSpaceBeforeFunctionParenthesis;
}
if (typeof config.placeOpenBraceOnNewLineForFunctions === "boolean") {
formatSettings.placeOpenBraceOnNewLineForFunctions = config.placeOpenBraceOnNewLineForFunctions;
}
if (typeof config.placeOpenBraceOnNewLineForControlBlocks === "boolean") {
formatSettings.placeOpenBraceOnNewLineForControlBlocks = config.placeOpenBraceOnNewLineForControlBlocks;
}
if (typeof config.insertSpaceBeforeTypeAnnotation === "boolean") {
formatSettings.insertSpaceBeforeTypeAnnotation = config.insertSpaceBeforeTypeAnnotation;
}
if (typeof config.baseIndentSize === "number") {
formatSettings.baseIndentSize = config.baseIndentSize;
}
if (typeof config.indentSize === "number") {
formatSettings.indentSize = config.indentSize;
}
if (typeof config.indentStyle === "number") {
formatSettings.indentStyle = config.indentStyle;
}
else if (typeof config.indentStyle === "string") {
formatSettings.indentStyle = ts.IndentStyle[config.indentStyle];
}
if (typeof config.tabSize === "number") {
formatSettings.tabSize = config.tabSize;
}
if (typeof config.newLineCharacter === "string") {
formatSettings.newLineCharacter = config.newLineCharacter;
}
if (typeof config.convertTabsToSpaces === "boolean") {
formatSettings.convertTabsToSpaces = config.convertTabsToSpaces;
}
return formatSettings;
}
exports.makeFormatCodeOptions = makeFormatCodeOptions;
//# sourceMappingURL=base.js.map
;