UNPKG

@dasch-swiss/dsp-js

Version:
54 lines 2.19 kB
var ListNodeCommentsConverter_1; import { __decorate } from "tslib"; import { JsonConvert, JsonConverter, OperationMode, ValueCheckingMode, PropertyMatchingRule, } from 'json2typescript'; import { StringLiteralV2 } from '../string-literal-v2'; /** * Converter for list node comments that handles both plain strings * and objects with @language/@value properties. * * The API may return comments as: * - Plain string: "Some comment" * - Object: { "@language": "en", "@value": "Some comment" } * - Array of objects: [{ "@language": "en", "@value": "..." }, ...] * * @category Internal */ let ListNodeCommentsConverter = class ListNodeCommentsConverter { static { ListNodeCommentsConverter_1 = this; } static { this.jsonConvert = new JsonConvert(OperationMode.ENABLE, ValueCheckingMode.DISALLOW_NULL, false, PropertyMatchingRule.CASE_STRICT); } serialize(item) { if (item.length > 1) { return ListNodeCommentsConverter_1.jsonConvert.serializeArray(item, StringLiteralV2); } else { return ListNodeCommentsConverter_1.jsonConvert.serializeObject(item[0], StringLiteralV2); } } deserialize(item) { // Handle plain string (no language tag) if (typeof item === 'string') { const literal = new StringLiteralV2(); literal.value = item; return [literal]; } if (Array.isArray(item)) { // Handle array of strings or objects return item.map(i => { if (typeof i === 'string') { const literal = new StringLiteralV2(); literal.value = i; return literal; } return ListNodeCommentsConverter_1.jsonConvert.deserializeObject(i, StringLiteralV2); }); } else { return [ListNodeCommentsConverter_1.jsonConvert.deserializeObject(item, StringLiteralV2)]; } } }; ListNodeCommentsConverter = ListNodeCommentsConverter_1 = __decorate([ JsonConverter ], ListNodeCommentsConverter); export { ListNodeCommentsConverter }; //# sourceMappingURL=list-node-comments-converter.js.map