rollup-plugin-tsconfig-paths
Version:
Rollup plugin for resolving tsconfig paths
50 lines (48 loc) • 1.39 kB
JavaScript
// src/plugin.ts
import fs from "node:fs";
import path from "node:path";
import ts from "typescript";
import { convertLogLevel, createHandler, createLogger, LogLevel } from "typescript-paths";
var PLUGIN_NAME = "tsconfig-paths";
function tsConfigPaths({
tsConfigPath,
respectCoreModule,
logLevel,
colors = true
} = {}) {
let log;
let handler;
return {
name: PLUGIN_NAME,
buildStart() {
log = createLogger({ logLevel: convertLogLevel(logLevel), colors, ID: PLUGIN_NAME });
log(LogLevel.Debug, `typescript version: ${ts.version}`);
handler = createHandler({
log,
tsConfigPath,
respectCoreModule,
falllback: (moduleName) => fs.existsSync(moduleName)
});
return;
},
async resolveId(request, importer, options) {
if (!importer || request.startsWith("\0")) {
return null;
}
const moduleName = handler == null ? void 0 : handler(request, importer);
if (!moduleName) {
return this.resolve(request, importer, { skipSelf: true, ...options });
}
log(LogLevel.Debug, `${request} -> ${moduleName}`);
if (!path.extname(moduleName)) {
return this.resolve(moduleName, importer, { skipSelf: true, ...options });
}
return moduleName;
}
};
}
// src/index.mts
var src_default = tsConfigPaths;
export {
src_default as default
};