UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

52 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemberConditionConverter = void 0; /* eslint-disable @typescript-eslint/no-unsafe-member-access */ const ta_json_1 = require("ta-json"); const base_1 = require("../contracts/base"); const invalid_operation_error_1 = require("../errors/invalid-operation-error"); class MemberConditionConverter { /** * Serializes a MemberCondition instance into JSON Value. * * @param value - A MemberCondition instance * * @returns An JSON Value. */ serialize(value) { return ta_json_1.TaJson.serialize(value); } /** * Deserializes a JSON Value into a MemberCondition instance. * * @param value - A JSON Value * * @returns A MemberCondition 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.definitionId) { return ta_json_1.TaJson.deserialize(value, base_1.NoAncestorMemberCondition); } else if (typeof obj.value === "string") { return ta_json_1.TaJson.deserialize(value, base_1.StringMemberCondition); } else if (typeof obj.value === "boolean") { return ta_json_1.TaJson.deserialize(value, base_1.BooleanMemberCondition); } else if (obj.entityId) { return ta_json_1.TaJson.deserialize(value, base_1.RelationMemberCondition); } else { throw new invalid_operation_error_1.InvalidOperationError("Not a known condition format"); } } } exports.MemberConditionConverter = MemberConditionConverter; //# sourceMappingURL=member-condition-converter.js.map