UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

55 lines 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemberConditionResourceConverter = void 0; /* eslint-disable @typescript-eslint/no-unsafe-member-access */ const ta_json_1 = require("ta-json"); const invalid_operation_error_1 = require("../errors/invalid-operation-error"); const member_condition_resource_1 = require("../models/member-condition-resource"); class MemberConditionResourceConverter { /** * Serializes a MemberConditionResource instance into JSON Value. * * @param value - A MemberConditionResource instance * * @returns An JSON Value. */ serialize(value) { return ta_json_1.TaJson.serialize(value); } /** * Deserializes a JSON Value into a MemberConditionResource instance. * * @param value - A JSON Value * * @returns A MemberConditionResource instance. */ deserialize(value) { if (!value) { throw new invalid_operation_error_1.InvalidOperationError("Can't deserialize falsy value."); } else if (typeof value !== "object" || value instanceof Array) { throw new invalid_operation_error_1.InvalidOperationError(`Expected a value of type 'object', but value was of type '${typeof value}'.`); } const obj = typeof value === "string" ? JSON.parse(value) : value; if (obj.definition) { return ta_json_1.TaJson.deserialize(value, member_condition_resource_1.NoAncestorMemberConditionResource); } else if (typeof obj.value === "string") { return ta_json_1.TaJson.deserialize(value, member_condition_resource_1.StringMemberConditionResource); } else if (typeof obj.value === "boolean") { return ta_json_1.TaJson.deserialize(value, member_condition_resource_1.BooleanMemberConditionResource); } else if (this.isLink(obj.value)) { return ta_json_1.TaJson.deserialize(value, member_condition_resource_1.RelationMemberConditionResource); } else { throw new invalid_operation_error_1.InvalidOperationError("Not a known condition format"); } } isLink(arg) { return arg.href !== undefined; } } exports.MemberConditionResourceConverter = MemberConditionResourceConverter; //# sourceMappingURL=member-condition-resource-converter.js.map