UNPKG

sortier

Version:
54 lines (53 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatFile = formatFile; const tslib_1 = require("tslib"); const find_up_1 = require("find-up"); const path_1 = tslib_1.__importDefault(require("path")); const index_js_1 = require("../../config/index.js"); const ignored_file_error_js_1 = require("../../error/ignored-file-error.js"); const unsupported_extension_error_js_1 = require("../../error/unsupported-extension-error.js"); const language_js_1 = require("../../language.js"); const file_utils_js_1 = require("../../utilities/file-utils.js"); const log_utils_js_1 = require("../../utilities/log-utils.js"); const index_js_2 = require("../is-ignored/index.js"); function formatFile(filename, options = (0, index_js_1.resolveOptions)(filename)) { const language = (0, language_js_1.getReprinterForFile)(filename); if (language == null) { throw new unsupported_extension_error_js_1.UnsupportedExtensionError(filename); } const isFileIgnored = isIgnoredFile(filename); if (isFileIgnored) { throw new ignored_file_error_js_1.IgnoredFileError(filename); } const originalFileContents = file_utils_js_1.FileUtils.readFileContents(filename); const newFileContents = language.getRewrittenContents(filename, originalFileContents, options); if (options.isTestRun == null || !options.isTestRun) { try { file_utils_js_1.FileUtils.writeFileContents(filename, newFileContents); } catch (writeError) { log_utils_js_1.LogUtils.log(log_utils_js_1.LoggerVerboseOption.Diagnostic, `Error writing file ${filename}`, writeError); throw writeError; } } } function isIgnoredFile(filename) { // Find the nearest sortier ignore file const ignoreFilePath = (0, find_up_1.findUpSync)(".sortierignore", { cwd: filename, }); if (ignoreFilePath != null) { try { const ignoreText = file_utils_js_1.FileUtils.readFileContents(ignoreFilePath).trim(); const relativeFilePath = path_1.default.relative(path_1.default.resolve("."), filename); const result = (0, index_js_2.isIgnored)(ignoreText, relativeFilePath); return result; } catch (readError) { log_utils_js_1.LogUtils.log(log_utils_js_1.LoggerVerboseOption.Diagnostic, `Error reading file ${filename}`, readError); throw readError; } } return false; }