UNPKG

@berish/validate

Version:

Validation of complex objects with support for validation maps, rules and decorators

57 lines 2.95 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const berish_guid_1 = require("berish-guid"); const createRule_1 = require("./createRule"); const createRuleFlag_1 = require("./createRuleFlag"); const flags_1 = require("./flags"); function createSimpleRule(params) { const ruleName = params.name || `rule-simple-${berish_guid_1.default.generateId()}`; let cacheFlags = []; return createRule_1.createRule({ name: ruleName, conditionSync: params.conditionSync && (obj => { const result = params.conditionSync(obj); if (!result) return flags_1.FLAG_CONDITION_FALSY; if (result === true) return flags_1.FLAG_CONDITION_TRUTHY; const flagId = createRuleFlag_1.createRuleFlag(`ruleSimple-flagId-${berish_guid_1.default.generateId()}`); cacheFlags.push([flagId, result]); return flagId; }), conditionAsync: (params.conditionAsync || params.conditionSync) && ((obj) => __awaiter(this, void 0, void 0, function* () { const result = params.conditionAsync ? yield params.conditionAsync(obj) : params.conditionSync(obj); if (!result) return flags_1.FLAG_CONDITION_FALSY; if (result === true) return flags_1.FLAG_CONDITION_TRUTHY; const flagId = createRuleFlag_1.createRuleFlag(`ruleSimple-flagId-${berish_guid_1.default.generateId()}`); cacheFlags.push([flagId, result]); return flagId; })), errorText: obj => { const flag = obj.flag; if (!flag || flag === flags_1.FLAG_CONDITION_FALSY) return createRule_1.SYMBOL_ERROR_TEXT_DEFAULT; const cacheResult = cacheFlags.filter(m => m[0] === flag)[0]; if (!cacheResult) return createRule_1.SYMBOL_ERROR_TEXT_DEFAULT; const errorText = cacheResult[1]; cacheFlags = cacheFlags.filter(m => m[0] !== flag); return errorText; }, }); } exports.createSimpleRule = createSimpleRule; //# sourceMappingURL=createSimpleRule.js.map