semantic-network
Version:
A utility library for manipulating a list of links that form a semantic interface to a network of resources.
46 lines • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultEqualityMatcher = exports.EqualityUtil = void 0;
var semantic_link_1 = require("semantic-link");
var canonicalOrSelf_1 = require("./comparators/canonicalOrSelf");
var trackedRepresentationUtil_1 = require("./trackedRepresentationUtil");
var instanceOfTrackedRepresentation_1 = require("./instanceOf/instanceOfTrackedRepresentation");
var EqualityUtil = /** @class */ (function () {
function EqualityUtil() {
}
/**
* Checks if two resource identities are the same.
*
* @default {@link CanonicalOrSelf}
*/
EqualityUtil.matches = function (lvalue, rvalue, relationshipType) {
if (relationshipType === void 0) { relationshipType = canonicalOrSelf_1.CanonicalOrSelf; }
var lUri = semantic_link_1.LinkUtil.getUri(lvalue, relationshipType);
var rUri = semantic_link_1.LinkUtil.getUri(rvalue, relationshipType);
if (lUri && rUri) {
return lUri === rUri;
}
return false;
};
/**
* Checks if the identity and the version both match
*/
EqualityUtil.matchesIdAndETag = function (lvalue, rvalue, relationshipType) {
if (EqualityUtil.matches(lvalue, rvalue, relationshipType)) {
return EqualityUtil.matchesETag(lvalue, rvalue);
}
return false;
};
/**
* Checks if there is no difference in eTags (both empty also equals same)
*/
EqualityUtil.matchesETag = function (lvalue, rvalue) {
var lEtag = (0, instanceOfTrackedRepresentation_1.instanceOfTrackedRepresentation)(lvalue) && trackedRepresentationUtil_1.TrackedRepresentationUtil.getETag(lvalue) || '';
var rEtag = (0, instanceOfTrackedRepresentation_1.instanceOfTrackedRepresentation)(rvalue) && trackedRepresentationUtil_1.TrackedRepresentationUtil.getETag(rvalue) || '';
return lEtag === rEtag;
};
return EqualityUtil;
}());
exports.EqualityUtil = EqualityUtil;
exports.defaultEqualityMatcher = EqualityUtil.matches;
//# sourceMappingURL=equalityUtil.js.map