UNPKG

datatypes-validation

Version:

![](https://img.shields.io/npm/v/datatypes-validation.svg) ![](https://img.shields.io/npm/dm/datatypes-validation.svg) ![](coverage/badge-lines.svg) ![](coverage/badge-functions.svg) ![](coverage/badge-statements.svg) ![](coverage/badge-branches.svg)

49 lines 2.33 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const Rules_1 = require("../Rules"); const ObjectOfRules_1 = require("../types/ObjectOfRules"); function arrayOf(arrayOfArg) { return (field, globalFields) => __awaiter(this, void 0, void 0, function* () { const isNull = field.value !== undefined && field.value !== null; if (!field.error && isNull) { if (Array.isArray(field.value)) { let fields = { [field.path]: field }; let rules; if (arrayOfArg instanceof Rules_1.Rules) { rules = arrayOfArg; } else if (arrayOfArg instanceof Object) { rules = new ObjectOfRules_1.ObjectOfRules().objectOf(arrayOfArg); } else { throw new Error('arrayOf accept just object or Rules class instance'); } const loop = field.value.map((value, index) => __awaiter(this, void 0, void 0, function* () { const schema = { [index]: rules }; const result = yield Rules_1.Rules.checkRules(schema, { [index]: value }, { globalFields, prefix: field.path }); fields = Object.assign({}, fields, result); })); yield Promise.all(loop); return fields; } else { field.applyError('invalidValue'); return { [field.path]: field }; } } return { [field.path]: field }; }); } exports.arrayOf = arrayOf; //# sourceMappingURL=arrayOf.js.map