UNPKG

prettier-plugin-organize-imports

Version:

Make prettier organize your imports using the TypeScript language service API.

41 lines (36 loc) 1.28 kB
const { dirname } = require('path'); const ts = require('typescript'); const { findTsconfig } = require('./find-tsconfig'); const { getCompilerOptions } = require('./get-compiler-options'); /** * Create the most basic TS language service host for the given file to make import sorting work. * * @param {string} path path to file * @param {string} content file's content * * @returns {ts.LanguageServiceHost} */ function getTypeScriptLanguageServiceHost(path, content) { const tsconfig = findTsconfig(path); const compilerOptions = getCompilerOptions(tsconfig); const snapshot = ts.ScriptSnapshot.fromString(content); return { directoryExists: ts.sys.directoryExists, fileExists: ts.sys.fileExists, getDefaultLibFileName: ts.getDefaultLibFileName, getDirectories: ts.sys.getDirectories, readDirectory: ts.sys.readDirectory, readFile: ts.sys.readFile, getCurrentDirectory: () => (tsconfig ? dirname(tsconfig) : ts.sys.getCurrentDirectory()), getCompilationSettings: () => compilerOptions, getNewLine: () => ts.sys.newLine, getScriptFileNames: () => [path], getScriptVersion: () => '0', getScriptSnapshot: (filePath) => { if (filePath === path) { return snapshot; } }, }; } module.exports = { getTypeScriptLanguageServiceHost };