UNPKG

vite-jsconfig-paths

Version:

Vite resolver for JavaScript compilerOptions.paths

49 lines (44 loc) 1.23 kB
import { loadTsconfig, walkForTsConfig, } from 'tsconfig-paths/lib/tsconfig-loader.js' import { normalizePath } from 'vite' import { resolve } from 'path' import { statSync } from 'fs' import { TSConfig } from './types' export interface Config { configPath: string include?: string[] exclude?: string[] allowJs?: boolean baseUrl?: string paths?: { [path: string]: string[] } outDir?: string } export function loadConfig(cwd: string): Config | undefined { const configPath = resolveConfigPath(cwd) if (configPath) { const config = loadTsconfig(configPath) as TSConfig const { compilerOptions: { baseUrl, paths, outDir } = {}, } = config return { configPath: normalizePath(configPath), include: config.include, exclude: config.exclude, baseUrl: baseUrl && normalizePath(resolve(configPath, '..', baseUrl)), paths, outDir, } } } // Adapted from https://github.com/dividab/tsconfig-paths/blob/0b259d4cf6cffbc03ad362cfc6bb129d040375b7/src/tsconfig-loader.ts#L65 function resolveConfigPath(cwd: string) { if (statSync(cwd).isFile()) { return cwd } const configPath = walkForTsConfig(cwd) if (configPath) { return configPath } }