62 lines
No EOL
2.6 KiB
JavaScript
62 lines
No EOL
2.6 KiB
JavaScript
'use strict';
|
|
|
|
function _getBases(trustedBaseUrl, sandboxBaseUrl, publicBaseUrl) {
|
|
if (trustedBaseUrl.endsWith('/')) {
|
|
trustedBaseUrl = trustedBaseUrl.substring(0, trustedBaseUrl.length - 1);
|
|
}
|
|
|
|
if (sandboxBaseUrl.endsWith('/')) {
|
|
sandboxBaseUrl = sandboxBaseUrl.substring(0, sandboxBaseUrl.length - 1);
|
|
}
|
|
|
|
if (publicBaseUrl.endsWith('/')) {
|
|
publicBaseUrl = publicBaseUrl.substring(0, publicBaseUrl.length - 1);
|
|
}
|
|
|
|
return {trustedBaseUrl, sandboxBaseUrl, publicBaseUrl};
|
|
}
|
|
|
|
function getMergeTagsForBases(trustedBaseUrl, sandboxBaseUrl, publicBaseUrl) {
|
|
const bases = _getBases(trustedBaseUrl, sandboxBaseUrl, publicBaseUrl);
|
|
|
|
return {
|
|
URL_BASE: bases.publicBaseUrl,
|
|
TRUSTED_URL_BASE: bases.trustedBaseUrl,
|
|
SANDBOX_URL_BASE: bases.sandboxBaseUrl,
|
|
ENCODED_URL_BASE: encodeURIComponent(bases.publicBaseUrl),
|
|
ENCODED_TRUSTED_URL_BASE: encodeURIComponent(bases.trustedBaseUrl),
|
|
ENCODED_SANDBOX_URL_BASE: encodeURIComponent(bases.sandboxBaseUrl)
|
|
};
|
|
}
|
|
|
|
function base(text, trustedBaseUrl, sandboxBaseUrl, publicBaseUrl) {
|
|
const bases = _getBases(trustedBaseUrl, sandboxBaseUrl, publicBaseUrl);
|
|
|
|
text = text.split('[URL_BASE]').join(bases.publicBaseUrl);
|
|
text = text.split('[TRUSTED_URL_BASE]').join(bases.trustedBaseUrl);
|
|
text = text.split('[SANDBOX_URL_BASE]').join(bases.sandboxBaseUrl);
|
|
text = text.split('[ENCODED_URL_BASE]').join(encodeURIComponent(bases.publicBaseUrl));
|
|
text = text.split('[ENCODED_TRUSTED_URL_BASE]').join(encodeURIComponent(bases.trustedBaseUrl));
|
|
text = text.split('[ENCODED_SANDBOX_URL_BASE]').join(encodeURIComponent(bases.sandboxBaseUrl));
|
|
|
|
return text;
|
|
}
|
|
|
|
function unbase(text, trustedBaseUrl, sandboxBaseUrl, publicBaseUrl, treatAllAsPublic = false) {
|
|
const bases = _getBases(trustedBaseUrl, sandboxBaseUrl, publicBaseUrl);
|
|
|
|
text = text.split(bases.publicBaseUrl).join('[URL_BASE]');
|
|
text = text.split(bases.trustedBaseUrl).join(treatAllAsPublic ? '[URL_BASE]' : '[TRUSTED_URL_BASE]');
|
|
text = text.split(bases.sandboxBaseUrl).join(treatAllAsPublic ? '[URL_BASE]' : '[SANDBOX_URL_BASE]');
|
|
text = text.split(encodeURIComponent(bases.publicBaseUrl)).join('[ENCODED_URL_BASE]');
|
|
text = text.split(encodeURIComponent(bases.trustedBaseUrl)).join(treatAllAsPublic ? '[ENCODED_URL_BASE]' : '[ENCODED_TRUSTED_URL_BASE]');
|
|
text = text.split(encodeURIComponent(bases.sandboxBaseUrl)).join(treatAllAsPublic ? '[ENCODED_URL_BASE]' : '[ENCODED_SANDBOX_URL_BASE]');
|
|
|
|
return text;
|
|
}
|
|
|
|
module.exports = {
|
|
base,
|
|
unbase,
|
|
getMergeTagsForBases
|
|
}; |