rebase.js 858 B

123456789101112131415161718192021222324252627282930
  1. var path = require('path');
  2. var rewriteUrls = require('./rewrite');
  3. function rebaseUrls(data, context) {
  4. var rebaseOpts = {
  5. absolute: context.options.explicitRoot,
  6. relative: !context.options.explicitRoot && context.options.explicitTarget,
  7. fromBase: context.options.relativeTo
  8. };
  9. if (!rebaseOpts.absolute && !rebaseOpts.relative)
  10. return data;
  11. if (rebaseOpts.absolute && context.options.explicitTarget)
  12. context.warnings.push('Both \'root\' and output file given so rebasing URLs as absolute paths');
  13. if (rebaseOpts.absolute)
  14. rebaseOpts.toBase = path.resolve(context.options.root);
  15. if (rebaseOpts.relative)
  16. rebaseOpts.toBase = path.resolve(context.options.target);
  17. if (!rebaseOpts.fromBase || !rebaseOpts.toBase)
  18. return data;
  19. return rewriteUrls(data, rebaseOpts, context);
  20. }
  21. module.exports = rebaseUrls;