UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

97 lines 3.91 kB
"use strict"; 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; Object.defineProperty(exports, "__esModule", { value: true }); exports.NestedRelationInfo = void 0; const ta_json_1 = require("ta-json"); const relation_role_1 = require("../../contracts/base/relation-role"); const argument_error_1 = require("../../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 relation_role_1.RelationRole)) { throw new argument_error_1.ArgumentError(exceptionMsg); } let role; switch (tokens[1].toLowerCase()) { case "parent": role = relation_role_1.RelationRole.Parent; break; case "child": role = relation_role_1.RelationRole.Child; break; default: throw new argument_error_1.ArgumentError(exceptionMsg); } let properties = []; if (tokens.length > 2) { properties = tokens[2].split(","); } const result = new NestedRelationInfo_1({ relation: tokens[0], role, properties, }); return result; } }; exports.NestedRelationInfo = NestedRelationInfo; __decorate([ (0, ta_json_1.JsonProperty)("relation"), __metadata("design:type", String) ], NestedRelationInfo.prototype, "relation", void 0); __decorate([ (0, ta_json_1.JsonProperty)("role"), __metadata("design:type", Number) ], NestedRelationInfo.prototype, "role", void 0); __decorate([ (0, ta_json_1.JsonProperty)("properties"), (0, ta_json_1.JsonElementType)(String), __metadata("design:type", Array) ], NestedRelationInfo.prototype, "properties", void 0); __decorate([ (0, ta_json_1.JsonProperty)("renditions"), (0, ta_json_1.JsonElementType)(String), __metadata("design:type", Array) ], NestedRelationInfo.prototype, "renditions", void 0); __decorate([ (0, ta_json_1.JsonProperty)("limit"), __metadata("design:type", Number) ], NestedRelationInfo.prototype, "limit", void 0); exports.NestedRelationInfo = NestedRelationInfo = NestedRelationInfo_1 = __decorate([ (0, ta_json_1.JsonObject)(), __metadata("design:paramtypes", [Object]) ], NestedRelationInfo); //# sourceMappingURL=nested-relation-info.js.map