市场夺宝奇兵
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 lines
699 B

  1. import resolveUri from '@jridgewell/resolve-uri';
  2. import stripFilename from './strip-filename';
  3. type Resolve = (source: string | null) => string;
  4. export default function resolver(
  5. mapUrl: string | null | undefined,
  6. sourceRoot: string | undefined,
  7. ): Resolve {
  8. const from = stripFilename(mapUrl);
  9. // The sourceRoot is always treated as a directory, if it's not empty.
  10. // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327
  11. // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401
  12. const prefix = sourceRoot ? sourceRoot + '/' : '';
  13. return (source) => resolveUri(prefix + (source || ''), from);
  14. }