mindee
Version:
Mindee Client Library for Node.js
68 lines (67 loc) • 2.3 kB
JavaScript
;
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;