window-path-loader.js 922 B

123456789101112131415161718192021222324252627282930
  1. // fix: https://github.com/unibest-tech/unibest/issues/219
  2. // Windows path loader for Node.js ESM
  3. // This loader converts Windows absolute paths to file:// URLs
  4. import { pathToFileURL } from 'node:url'
  5. /**
  6. * Resolve hook for ESM loader
  7. * Converts Windows absolute paths to file:// URLs
  8. */
  9. export function resolve(specifier, context, defaultResolve) {
  10. // Check if this is a Windows absolute path (starts with drive letter like C:)
  11. if (specifier.match(/^[a-z]:\\/i) || specifier.match(/^[a-z]:\//i)) {
  12. // Convert Windows path to file:// URL
  13. const fileUrl = pathToFileURL(specifier).href
  14. return defaultResolve(fileUrl, context, defaultResolve)
  15. }
  16. // For all other specifiers, use the default resolve
  17. return defaultResolve(specifier, context, defaultResolve)
  18. }
  19. /**
  20. * Load hook for ESM loader
  21. */
  22. export function load(url, context, defaultLoad) {
  23. return defaultLoad(url, context, defaultLoad)
  24. }