@spartacus/core
Version:
Spartacus - the core framework
29 lines • 3.53 kB
JavaScript
/**
* Abstract class that can be used to resolve meta data for specific pages.
* The `getScore` method is used to select the right resolver for a specific
* page, based on a score. The score is calculated by the (non)matching page
* type and page template.
*/
export class PageMetaResolver {
/**
* Returns the matching score for a resolver class, based on
* the page type and page template.
*/
getScore(page) {
let score = 0;
if (this.pageType) {
score += page.type === this.pageType ? 1 : -1;
}
if (this.pageTemplate) {
score += page.template === this.pageTemplate ? 1 : -1;
}
return score;
}
hasMatch(page) {
return this.getScore(page) > 0;
}
getPriority(page) {
return this.getScore(page);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1tZXRhLnJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvY21zL3BhZ2UvcGFnZS1tZXRhLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixnQkFBZ0I7SUFPcEM7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2Ntcy5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAnLi4vbW9kZWwvcGFnZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBsaWNhYmxlIH0gZnJvbSAnLi4vLi4vdXRpbC9hcHBsaWNhYmxlJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgbWV0YSBkYXRhIGZvciBzcGVjaWZpYyBwYWdlcy5cbiAqIFRoZSBgZ2V0U2NvcmVgIG1ldGhvZCBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgcmlnaHQgcmVzb2x2ZXIgZm9yIGEgc3BlY2lmaWNcbiAqIHBhZ2UsIGJhc2VkIG9uIGEgc2NvcmUuIFRoZSBzY29yZSBpcyBjYWxjdWxhdGVkIGJ5IHRoZSAobm9uKW1hdGNoaW5nIHBhZ2VcbiAqIHR5cGUgYW5kIHBhZ2UgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYWdlTWV0YVJlc29sdmVyIGltcGxlbWVudHMgQXBwbGljYWJsZSB7XG4gIC8qKiBUaGUgYFBhZ2VUeXBlYCBpcyB1c2VkIHRvIHNjb3JlIHRoZSAobm9uKW1hdGNoaW5nIHBhZ2UgKi9cbiAgcGFnZVR5cGU6IFBhZ2VUeXBlO1xuXG4gIC8qKiBUaGUgcGFnZSB0ZW1wbGF0ZSBpcyB1c2VkIHRvIHNjb3JlIHRoZSAobm9uKW1hdGNoaW5nIHBhZ2UgdGVtcGxhdGUgKi9cbiAgcGFnZVRlbXBsYXRlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1hdGNoaW5nIHNjb3JlIGZvciBhIHJlc29sdmVyIGNsYXNzLCBiYXNlZCBvblxuICAgKiB0aGUgcGFnZSB0eXBlIGFuZCBwYWdlIHRlbXBsYXRlLlxuICAgKi9cbiAgZ2V0U2NvcmUocGFnZTogUGFnZSk6IG51bWJlciB7XG4gICAgbGV0IHNjb3JlID0gMDtcbiAgICBpZiAodGhpcy5wYWdlVHlwZSkge1xuICAgICAgc2NvcmUgKz0gcGFnZS50eXBlID09PSB0aGlzLnBhZ2VUeXBlID8gMSA6IC0xO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYWdlVGVtcGxhdGUpIHtcbiAgICAgIHNjb3JlICs9IHBhZ2UudGVtcGxhdGUgPT09IHRoaXMucGFnZVRlbXBsYXRlID8gMSA6IC0xO1xuICAgIH1cbiAgICByZXR1cm4gc2NvcmU7XG4gIH1cblxuICBoYXNNYXRjaChwYWdlOiBQYWdlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2NvcmUocGFnZSkgPiAwO1xuICB9XG5cbiAgZ2V0UHJpb3JpdHkocGFnZTogUGFnZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2NvcmUocGFnZSk7XG4gIH1cbn1cbiJdfQ==