@squiz/json-schema-library
Version:
Customizable and hackable json-validator and json-schema utilities for traversal, data generation and validation
25 lines • 822 B
JavaScript
/* eslint max-statements-per-line: ["error", { "max": 2 }] */
const suffixes = /(#|\/)+$/;
const trailingHash = /#$/;
const isDomain = /^[^:]+:\/\/[^/]+\//;
const trailingFragments = /\/[^/]*$/;
const idAndPointer = /#.*$/;
export default function joinScope(previous, id) {
if (previous == null && id == null) {
return "#";
}
if (id == null) {
return previous.replace(trailingHash, "");
}
if (previous == null) {
return id.replace(trailingHash, "");
}
if (id[0] === "#") {
return `${previous.replace(idAndPointer, "")}${id.replace(suffixes, "")}`;
}
if (isDomain.test(id)) {
return id.replace(trailingHash, "");
}
return `${previous.replace(trailingFragments, "")}/${id.replace(trailingHash, "")}`;
}
//# sourceMappingURL=joinScope.js.map