UNPKG

mindee

Version:

Mindee Client Library for Node.js

68 lines (67 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ListField = void 0; const mindeeError_1 = require("../../../errors/mindeeError"); const baseField_1 = require("./baseField"); const objectField_1 = require("./objectField"); const simpleField_1 = require("./simpleField"); const fieldFactory_1 = require("./fieldFactory"); class ListField extends baseField_1.BaseField { /** * SimpleField items from the list. */ get simpleItems() { const result = []; for (const item of this.items) { if (item instanceof simpleField_1.SimpleField) { result.push(item); } else { throw new mindeeError_1.MindeeApiV2Error(`All items must be SimpleField, found item of type ${item.constructor.name}.`); } } return result; } /** * SimpleField items from the list. */ get objectItems() { const result = []; for (const item of this.items) { if (item instanceof objectField_1.ObjectField) { result.push(item); } else { throw new mindeeError_1.MindeeApiV2Error(`All items must be ObjectField, found item of type ${item.constructor.name}.`); } } return result; } constructor(serverResponse, indentLevel = 0) { super(serverResponse, indentLevel); if (!Array.isArray(serverResponse["items"])) { throw new mindeeError_1.MindeeApiV2Error(`Expected "items" to be an array in ${JSON.stringify(serverResponse)}.`); } this.items = serverResponse["items"].map((item) => { return (0, fieldFactory_1.createField)(item, indentLevel + 1); }); } toString() { if (!this.items || this.items.length === 0) { return "\n"; } const parts = [""]; for (const item of this.items) { if (!item) continue; if (item instanceof objectField_1.ObjectField) { parts.push(item.toStringFromList()); } else { parts.push(item.toString()); } } return parts.join("\n * "); } } exports.ListField = ListField;