From 772ae839bf4d3e17996d5b3a5ce2496694fdeae5 Mon Sep 17 00:00:00 2001 From: alexandercerutti Date: Sat, 18 Aug 2018 23:07:36 +0200 Subject: [PATCH] Added comments to FieldsArea class and its methods --- fields.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/fields.js b/fields.js index 782aa4c..5af6f64 100644 --- a/fields.js +++ b/fields.js @@ -1,10 +1,25 @@ const schema = require("./schema"); +/** + * Pass fields area to be used as pass lower level keys + * @see https://apple.co/2wkUBd + */ + class FieldsArea { constructor() { this.fields = []; } + /** + * A wrapper of Array.prototype.push to validate the pushed content with the schema. + * Accepts also one array of objects. + * + * @method push + * @params {Object[]} fields - the fields to be checked and pushed + * @params {schema.constants.field} fields[].* - each key must be compliant with schema.constants.field structure + * @returns {Number} - the amount of pushed elements (for checks) + */ + push(...fields) { if (fields[0] instanceof Array && fields[0].length) { fields = fields[0]; @@ -17,6 +32,15 @@ class FieldsArea { return validFields.length; } + /** + * A wrapper of Array.prototype.pop and Array.prototype.slice to pop + * last element or n elements starting from the end. + * + * @method pop + * @params {Number} [quantity=-1] - the amount of elements to be removed + * @returns {Number} - the amount of removed elements + */ + pop(quantity = -1) { if (!this.fields.length) { return undefined;