indicative
Advanced tools
Comparing version 7.0.0 to 7.1.0
@@ -1,5 +0,8 @@ | ||
import { ValidationOptions } from './src/Contracts'; | ||
import { DataNode, Schema, Messages } from 'indicative-compiler'; | ||
import { is, rules } from 'indicative-rules'; | ||
import { DataNode, Schema, Messages, Validation, FormatterContract } from 'indicative-compiler'; | ||
import { configure } from './src/config'; | ||
import { ValidationOptions, FormatterConstructorContract } from './src/Contracts'; | ||
export declare function validate<Data extends DataNode>(data: Data, rules: Schema, messages?: Messages, options?: Partial<ValidationOptions>): Promise<Data>; | ||
export declare function validateAll<Data extends DataNode>(data: Data, rules: Schema, messages?: Messages, options?: Partial<ValidationOptions>): Promise<Data>; | ||
export { is, rules } from 'indicative-rules'; | ||
export declare function extend(ruleName: string, validation: Validation): void; | ||
export { is, rules, FormatterContract, FormatterConstructorContract, configure }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const indicative_rules_1 = require("indicative-rules"); | ||
exports.is = indicative_rules_1.is; | ||
exports.rules = indicative_rules_1.rules; | ||
const config_1 = require("./src/config"); | ||
exports.configure = config_1.configure; | ||
const Validator_1 = require("./src/Validator"); | ||
@@ -13,4 +18,5 @@ const validator = new Validator_1.Validator(); | ||
exports.validateAll = validateAll; | ||
var indicative_rules_1 = require("indicative-rules"); | ||
exports.is = indicative_rules_1.is; | ||
exports.rules = indicative_rules_1.rules; | ||
function extend(ruleName, validation) { | ||
indicative_rules_1.validations[ruleName] = validation; | ||
} | ||
exports.extend = extend; |
import { RulesConfig } from 'indicative-rules'; | ||
export declare type Config = RulesConfig; | ||
import { FormatterContract } from 'indicative-compiler'; | ||
export declare type FormatterConstructorContract = { | ||
new (): FormatterContract; | ||
}; | ||
export declare type Config = RulesConfig & { | ||
formatter: FormatterConstructorContract; | ||
}; | ||
export declare type ValidationOptions = Config & { | ||
cacheKey: string; | ||
}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const indicative_rules_1 = require("indicative-rules"); | ||
const indicative_formatters_1 = require("indicative-formatters"); | ||
const indicative_compiler_1 = require("indicative-compiler"); | ||
const CacheManager_1 = require("../CacheManager"); | ||
const config_1 = require("../config"); | ||
class Validator { | ||
@@ -11,24 +11,24 @@ constructor() { | ||
} | ||
_getRunner(rules, messages, options) { | ||
if (!options.cacheKey) { | ||
_getRunner(rules, messages, cacheKey) { | ||
if (!cacheKey) { | ||
return indicative_compiler_1.validationCompiler(rules, indicative_rules_1.validations, messages); | ||
} | ||
let runner = this._cacheManager.get(options.cacheKey); | ||
let runner = this._cacheManager.get(cacheKey); | ||
if (!runner) { | ||
runner = indicative_compiler_1.validationCompiler(rules, indicative_rules_1.validations, messages); | ||
} | ||
this._cacheManager.set(options.cacheKey, runner); | ||
this._cacheManager.set(cacheKey, runner); | ||
return runner; | ||
} | ||
async validate(data, rules, messages, options) { | ||
options = Object.assign({}, options); | ||
const runner = this._getRunner(rules, messages, options); | ||
return runner(data, new indicative_formatters_1.VanillaFormatter(), options, true); | ||
options = Object.assign({}, config_1.config, options); | ||
const runner = this._getRunner(rules, messages, options.cacheKey); | ||
return runner(data, new options.formatter(), options, true); | ||
} | ||
async validateAll(data, rules, messages, options) { | ||
options = Object.assign({}, options); | ||
const runner = this._getRunner(rules, messages, options); | ||
return runner(data, new indicative_formatters_1.VanillaFormatter(), options, false); | ||
options = Object.assign({}, config_1.config, options); | ||
const runner = this._getRunner(rules, messages, options.cacheKey); | ||
return runner(data, new options.formatter(), options, false); | ||
} | ||
} | ||
exports.Validator = Validator; |
@@ -6,2 +6,13 @@ # Change Log | ||
# [7.1.0](http://github.com/poppinss/indicative/tree/master/packages/indicative/compare/v7.0.0...v7.1.0) (2019-04-01) | ||
### Features | ||
* **indicative:** add support for config and extending validations ([876417f](http://github.com/poppinss/indicative/tree/master/packages/indicative/commit/876417f)) | ||
# [7.0.0](http://github.com/poppinss/indicative/tree/master/packages/indicative/compare/v5.0.8...v7.0.0) (2019-04-01) | ||
@@ -8,0 +19,0 @@ |
{ | ||
"name": "indicative", | ||
"version": "7.0.0", | ||
"version": "7.1.0", | ||
"description": "Simple yet powerful data validation library for Nodejs", | ||
@@ -54,3 +54,3 @@ "main": "build/index.js", | ||
}, | ||
"gitHead": "ec4b9e65401b74657beab116d08dfb8f8b109551" | ||
"gitHead": "9d11ed2f1dc4fa787d8eb137cce0575657a651bd" | ||
} |
9518
14
120