UNPKG

@sitecore/sc-contenthub-webclient-sdk

Version:

Sitecore Content Hub WebClient SDK.

51 lines 2.04 kB
/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { TaJson } from "ta-json"; import { InvalidOperationError } from "../errors/invalid-operation-error"; import { BooleanMemberConditionResource, NoAncestorMemberConditionResource, RelationMemberConditionResource, StringMemberConditionResource, } from "../models/member-condition-resource"; export class MemberConditionResourceConverter { /** * Serializes a MemberConditionResource instance into JSON Value. * * @param value - A MemberConditionResource instance * * @returns An JSON Value. */ serialize(value) { return 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 InvalidOperationError("Can't deserialize falsy value."); } else if (typeof value !== "object" || value instanceof Array) { throw new 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 TaJson.deserialize(value, NoAncestorMemberConditionResource); } else if (typeof obj.value === "string") { return TaJson.deserialize(value, StringMemberConditionResource); } else if (typeof obj.value === "boolean") { return TaJson.deserialize(value, BooleanMemberConditionResource); } else if (this.isLink(obj.value)) { return TaJson.deserialize(value, RelationMemberConditionResource); } else { throw new InvalidOperationError("Not a known condition format"); } } isLink(arg) { return arg.href !== undefined; } } //# sourceMappingURL=member-condition-resource-converter.js.map