| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // ESM entry point for module-alias
- // Provides programmatic API with auto-registered hooks
- import { registerHooks } from 'node:module'
- import { addAlias as _addAlias, addAliases as _addAliases, addPath as _addPath, reset as _reset, resolveAlias } from './esm-loader.mjs'
- let hooksRegistered = false
- function ensureHooks() {
- if (hooksRegistered) return
- const [major, minor] = process.versions.node.split('.').map(Number)
- const hasRegisterHooks = major > 22 || (major === 22 && minor >= 15)
- if (!hasRegisterHooks) {
- console.warn('[module-alias] Programmatic ESM usage requires Node 22.15+. For older versions, use module-alias/register with _moduleAliases in package.json.')
- return
- }
- registerHooks({
- resolve(specifier, context, nextResolve) {
- const resolved = resolveAlias(specifier, context.parentURL)
- if (resolved) {
- return nextResolve(resolved, context)
- }
- return nextResolve(specifier, context)
- }
- })
- hooksRegistered = true
- }
- export function addAlias(alias, target) {
- ensureHooks()
- _addAlias(alias, target)
- }
- export function addAliases(aliases) {
- ensureHooks()
- _addAliases(aliases)
- }
- export function addPath(path) {
- ensureHooks()
- _addPath(path)
- }
- export function reset() {
- _reset()
- hooksRegistered = false
- }
- // Default export for compatibility with: import moduleAlias from 'module-alias'
- import { init } from './esm-loader.mjs'
- function moduleAlias(options) {
- ensureHooks()
- init(options)
- }
- moduleAlias.addAlias = addAlias
- moduleAlias.addAliases = addAliases
- moduleAlias.addPath = addPath
- moduleAlias.reset = reset
- export default moduleAlias
|