UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

94 lines 3.57 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var NestedRelationInfo_1; import { JsonElementType, JsonObject, JsonProperty } from "ta-json"; import { RelationRole } from "../../contracts/base/relation-role"; import { ArgumentError } from "../../errors/argument-error"; let NestedRelationInfo = NestedRelationInfo_1 = class NestedRelationInfo { constructor(init) { this.properties = []; this.renditions = []; Object.assign(this, init); } static parse(values) { if (!values || !values.length) { return []; } const result = []; for (const value of values) { if (!value || !value.length) { continue; } const parts = value.split(","); for (const part of parts) { if (part && part.length) { result.push(NestedRelationInfo_1.parseEntry(part)); } } } return result; } static parseEntry(value) { const exceptionMsg = "Invalid relation specified. Expected format: <name>|<role>[|<propertyName...>]"; const tokens = value.split("|"); if (tokens.length < 2 || !(tokens[1] in RelationRole)) { throw new ArgumentError(exceptionMsg); } let role; switch (tokens[1].toLowerCase()) { case "parent": role = RelationRole.Parent; break; case "child": role = RelationRole.Child; break; default: throw new ArgumentError(exceptionMsg); } let properties = []; if (tokens.length > 2) { properties = tokens[2].split(","); } const result = new NestedRelationInfo_1({ relation: tokens[0], role, properties, }); return result; } }; __decorate([ JsonProperty("relation"), __metadata("design:type", String) ], NestedRelationInfo.prototype, "relation", void 0); __decorate([ JsonProperty("role"), __metadata("design:type", Number) ], NestedRelationInfo.prototype, "role", void 0); __decorate([ JsonProperty("properties"), JsonElementType(String), __metadata("design:type", Array) ], NestedRelationInfo.prototype, "properties", void 0); __decorate([ JsonProperty("renditions"), JsonElementType(String), __metadata("design:type", Array) ], NestedRelationInfo.prototype, "renditions", void 0); __decorate([ JsonProperty("limit"), __metadata("design:type", Number) ], NestedRelationInfo.prototype, "limit", void 0); NestedRelationInfo = NestedRelationInfo_1 = __decorate([ JsonObject(), __metadata("design:paramtypes", [Object]) ], NestedRelationInfo); export { NestedRelationInfo }; //# sourceMappingURL=nested-relation-info.js.map