Skip to content

Commit 020e164

Browse files
authored
Merge pull request #166 from erfanium/master
addMessage method
2 parents b3edd2c + 3b52677 commit 020e164

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

index.d.ts

+8
Original file line numberDiff line numberDiff line change
@@ -914,6 +914,14 @@ declare module "fastest-validator" {
914914
*/
915915
add(type: string, fn: CompilationFunction): void;
916916

917+
/**
918+
* Add a message
919+
*
920+
* @param {String} name
921+
* @param {String} message
922+
*/
923+
addMessage(name: string, message: string): void
924+
917925
/**
918926
* Register an alias in validation object
919927
* @param {string} name

lib/validator.js

+20-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
//const flatten = require("./helpers/flatten");
44
const deepExtend = require("./helpers/deep-extend");
5-
const defaultMessages = require("./messages");
5+
6+
function loadMessages() {
7+
return Object.assign({} , require("./messages"));
8+
}
69

710
function loadRules() {
811
return {
@@ -40,11 +43,9 @@ class Validator {
4043
* @param {Object} opts
4144
*/
4245
constructor(opts) {
43-
this.opts = {
44-
messages: deepExtend({}, defaultMessages)
45-
};
46+
this.opts = {};
4647
this.defaults = {};
47-
this.messages = this.opts.messages;
48+
this.messages = loadMessages();
4849
this.rules = loadRules();
4950
this.aliases = {};
5051
this.cache = new Map();
@@ -53,6 +54,10 @@ class Validator {
5354
deepExtend(this.opts, opts);
5455
if (opts.defaults) deepExtend(this.defaults, opts.defaults);
5556

57+
if (opts.messages) {
58+
for (const messageName in opts.messages) this.addMessage(messageName, opts.messages[messageName]);
59+
}
60+
5661
if (opts.aliases) {
5762
for (const aliasName in opts.aliases) this.alias(aliasName, opts.aliases[aliasName]);
5863
}
@@ -417,6 +422,16 @@ class Validator {
417422
this.rules[type] = fn;
418423
}
419424

425+
/**
426+
* Add a message
427+
*
428+
* @param {String} name
429+
* @param {String} message
430+
*/
431+
addMessage(name, message) {
432+
this.messages[name] = message;
433+
}
434+
420435
/**
421436
* create alias name for a rule
422437
*

test/validator.spec.js

+6
Original file line numberDiff line numberDiff line change
@@ -647,3 +647,9 @@ describe("Test plugins", () => {
647647
});
648648
});
649649

650+
describe("Test addMessage" , () => {
651+
const v = new Validator();
652+
v.addMessage("string", "C");
653+
expect(v.messages.string).toBe("C");
654+
});
655+

0 commit comments

Comments
 (0)