UNPKG

@modern-js/utils

Version:

A Progressive React Framework for modern web development.

33 lines (32 loc) 1.13 kB
import "node:module"; import fs from "fs"; import path from "path"; import { applyOptionsChain } from "./applyOptionsChain.mjs"; import { readTsConfigByFile } from "./get/index.mjs"; const mergeAlias = (alias)=>applyOptionsChain({}, alias); const getAliasConfig = (aliasOption, option)=>{ const isTsProject = fs.existsSync(option.tsconfigPath); const alias = mergeAlias(aliasOption); if (!isTsProject) return { absoluteBaseUrl: option.appDirectory, paths: alias, isTsPath: false, isTsProject }; const tsconfig = readTsConfigByFile(option.tsconfigPath); const baseUrl = tsconfig?.compilerOptions?.baseUrl; return { absoluteBaseUrl: baseUrl ? path.join(option.appDirectory, baseUrl) : option.appDirectory, paths: { ...alias, ...tsconfig?.compilerOptions?.paths }, isTsPath: true, isTsProject }; }; const getUserAlias = (alias = {})=>Object.keys(alias).reduce((o, k)=>{ if (Array.isArray(alias[k])) o[k] = alias[k]; return o; }, {}); export { getAliasConfig, getUserAlias, mergeAlias };