Added fieldsArea class to add fields to primaryFields, secondaryFields, etc

This commit is contained in:
alexandercerutti
2018-08-18 16:30:41 +02:00
parent 2d626fd2df
commit 03ea03a752

39
fields.js Normal file
View File

@@ -0,0 +1,39 @@
const schema = require("./schema");
class FieldsArea {
constructor() {
this.fields = [];
}
push(...fields) {
if (fields[0] instanceof Array && fields[0].length) {
fields = fields[0];
}
let validFields = fields.filter(f => typeof f === "object" && schema.isValid(f, schema.constants.field));
this.fields.push(...validFields);
return validFields.length;
}
pop(quantity = -1) {
if (!this.fields.length) {
return undefined;
}
if (quantity > -1) {
let removedElements = this.fields.slice(quantity);
this.fields = this.fields.slice(0, this.fields.length - quantity);
return removedElements;
}
return this.fields.pop();
}
}
module.exports = {
areas: ["primaryFields", "secondaryFields", "auxiliaryFields", "backFields", "headerFields"],
FieldsArea
};