UNPKG

@piscium2010/v-form

Version:

This is not a form, instead it is only a form shell of which the single responsibility is validating and providing error messages. Capable of definding flexiable rules and validating multi fields at a time.

43 lines (36 loc) 1.11 kB
import vrule from 'v-rule' function create(ruleStore) { const validation = vrule.create(ruleStore) const forms = new Map() // listeners const { test, testAllRules } = validation const notify = function (result) { const messages = result.messages window.setTimeout(() => { forms.forEach(onMessages => { onMessages(messages) }) }, 100) } validation.addListener = function (instance, onMessages) { forms.set(instance, onMessages) } validation.removeListener = function (instance) { forms.delete(instance) } validation.test = function (values, context) { const result = test(values, context) notify(result) return result } validation.testAllRules = function (values, context) { const result = testAllRules(values, context) notify(result) return result } validation.has = function (instance) { return forms.has(instance) } return validation } const v = Object.assign({}, vrule, { create }) export default v