siegel
Version:
Web application development ecosystem
33 lines (32 loc) • 1.23 kB
JavaScript
import { join } from 'path';
import { LOC_NAMES } from '../constants.js';
import requireJSON from './require_json.js';
function tsToWebpackAliases(tsConfigDirPath, tsConfigFileName = LOC_NAMES.TS_JSON) {
const tsConfigPath = join(tsConfigDirPath, tsConfigFileName);
let paths = {};
try {
const tsConfig = requireJSON(tsConfigPath);
const compilerOptions = tsConfig?.compilerOptions;
if (compilerOptions) {
if (compilerOptions?.paths) {
paths = compilerOptions.paths;
}
else
console.error('Field [paths] is not exist in [compilerOptions]\nin %s', tsConfigPath);
}
else
console.error('Field [compilerOptions] is not exist\nin %s', tsConfigPath);
}
catch (e) {
console.error('Can`t process %s located at:\n%s\n%s', LOC_NAMES.TS_JSON, tsConfigPath, e);
}
const aliases = {};
Object.entries(paths)
.forEach(([tsAlias, tsAliasPaths]) => {
const WPAlias = tsAlias.replace('/*', '');
const WPPath = tsAliasPaths[0].replace('/*', '');
aliases[WPAlias] = join(tsConfigDirPath, WPPath);
});
return aliases;
}
export default tsToWebpackAliases;