33 lines
886 B
JavaScript
33 lines
886 B
JavaScript
var path = require('path');
|
|
|
|
var UrlRewriter = require('./url-rewriter');
|
|
|
|
module.exports = function UrlRebase(options, context) {
|
|
var process = function(data) {
|
|
var rebaseOpts = {
|
|
absolute: !!options.root,
|
|
relative: !options.root && !!options.target,
|
|
fromBase: options.relativeTo
|
|
};
|
|
|
|
if (!rebaseOpts.absolute && !rebaseOpts.relative)
|
|
return data;
|
|
|
|
if (rebaseOpts.absolute && !!options.target)
|
|
context.warnings.push('Both \'root\' and output file given so rebasing URLs as absolute paths');
|
|
|
|
if (rebaseOpts.absolute)
|
|
rebaseOpts.toBase = path.resolve(options.root);
|
|
|
|
if (rebaseOpts.relative)
|
|
rebaseOpts.toBase = path.resolve(path.dirname(options.target));
|
|
|
|
if (!rebaseOpts.fromBase || !rebaseOpts.toBase)
|
|
return data;
|
|
|
|
return UrlRewriter.process(data, rebaseOpts);
|
|
};
|
|
|
|
return { process: process };
|
|
};
|