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.

index.js 629B

1234567891011121314151617181920
  1. const url = require('url');
  2. const fs = require('fs');
  3. const getRemoteContent = require('remote-content');
  4. module.exports = (destHref, sourceHref, callback) => {
  5. let resolvedUrl;
  6. let parsedUrl;
  7. let toUrl = destHref;
  8. if (url.parse(sourceHref).protocol === 'file:' && destHref[0] === '/') {
  9. toUrl = destHref.slice(1);
  10. }
  11. resolvedUrl = url.resolve(sourceHref, toUrl);
  12. parsedUrl = url.parse(resolvedUrl);
  13. if (parsedUrl.protocol === 'file:') {
  14. fs.readFile(decodeURIComponent(parsedUrl.pathname), 'utf8', callback);
  15. } else {
  16. getRemoteContent(resolvedUrl, callback);
  17. }
  18. };