@sitecore/sc-contenthub-webclient-sdk
Version:
Sitecore Content Hub WebClient SDK.
55 lines • 2.38 kB
JavaScript
;
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