Skip to content

Commit

Permalink
Merge pull request #18 from josh-wer/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
joshuauyi committed Dec 5, 2020
2 parents b4c8184 + 7543db4 commit 397b1e1
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 66 deletions.
2 changes: 1 addition & 1 deletion dist/formidate.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "formidate",
"version": "0.2.5",
"version": "1.0.0",
"description": "Form validation library",
"author": "Joshua Uyi <joshuaouyi@gmail.com>",
"main": "lib/index.js",
Expand Down
89 changes: 30 additions & 59 deletions src/ControlRules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ class ControlRules {
private rules: IFormRuleItem = {};

public date(dateOnly?: boolean, invalidDate?: ErroMessageType, overrideMessage?: ErroMessageType) {
if (!this.rules.datetime) {
this.rules.datetime = {};
}
this.rules.datetime = this.rules.datetime || {};
if (dateOnly !== undefined) {
this.rules.datetime.dateOnly = dateOnly;
}
Expand All @@ -35,9 +33,7 @@ class ControlRules {
}

public beforeDate(date: any, message?: ErroMessageType) {
if (!this.rules.datetime) {
this.rules.datetime = {};
}
this.rules.datetime = this.rules.datetime || {};
this.rules.datetime.latest = date;
if (message) {
this.rules.datetime.tooLate = message;
Expand All @@ -46,9 +42,7 @@ class ControlRules {
}

public afterDate(date: any, message?: ErroMessageType) {
if (!this.rules.datetime) {
this.rules.datetime = {};
}
this.rules.datetime = this.rules.datetime || {};
this.rules.datetime.earliet = date;
if (message) {
this.rules.datetime.tooEarly = message;
Expand Down Expand Up @@ -102,9 +96,7 @@ class ControlRules {
// length

public lengthConfig(tokenizer?: LengthTokenizer, notValid?: ErroMessageType, overrideMessage?: ErroMessageType) {
if (!this.rules.length) {
this.rules.length = {};
}
this.rules.length = this.rules.length || {};
if (overrideMessage) {
this.rules.length.message = overrideMessage;
}
Expand All @@ -119,9 +111,7 @@ class ControlRules {
}

public length(length: number, message?: ErroMessageType) {
if (!this.rules.length) {
this.rules.length = {};
}
this.rules.length = this.rules.length || {};

this.rules.length.is = length;
if (message) {
Expand All @@ -131,9 +121,7 @@ class ControlRules {
}

public minLength(length: number, message?: ErroMessageType) {
if (!this.rules.length) {
this.rules.length = {};
}
this.rules.length = this.rules.length || {};

this.rules.length.minimum = length;
if (message) {
Expand All @@ -143,9 +131,7 @@ class ControlRules {
}

public maxLength(length: number, message?: ErroMessageType) {
if (!this.rules.length) {
this.rules.length = {};
}
this.rules.length = this.rules.length || {};

this.rules.length.maximum = length;
if (message) {
Expand All @@ -156,39 +142,38 @@ class ControlRules {

// numericality

public numeric(useStrict?: boolean, notValid?: ErroMessageType, overrideMessage?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
public number(notValid?: ErroMessageType, useStrict?: boolean, overrideMessage?: ErroMessageType) {
this.rules.numericality = this.rules.numericality || {};
if (useStrict !== undefined) {
this.rules.numericality.strict = useStrict;
}
if (overrideMessage) {
this.rules.numericality.message = overrideMessage;
}
if (notValid) {
this.rules.numericality.notValid = notValid;
}
if (overrideMessage) {
this.rules.numericality.message = overrideMessage;
}

return this;
}

public isInteger(message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}

public integer(message?: ErroMessageType) {
this.rules.numericality = this.rules.numericality || {};
this.rules.numericality.onlyInteger = true;
if (message) {
this.rules.numericality.notInteger = message;
}
return this;
}

public double() {
this.rules.numericality = this.rules.numericality || {};
this.rules.numericality.onlyInteger = false;
return this;
}

public greaterThan(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.greaterThan = value;
if (message) {
Expand All @@ -198,9 +183,7 @@ class ControlRules {
}

public greaterThanOrEquals(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.greaterThanOrEqualTo = value;
if (message) {
Expand All @@ -210,9 +193,7 @@ class ControlRules {
}

public equals(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.equalTo = value;
if (message) {
Expand All @@ -222,9 +203,7 @@ class ControlRules {
}

public lessThanOrEquals(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.lessThanOrEqualTo = value;
if (message) {
Expand All @@ -234,9 +213,7 @@ class ControlRules {
}

public lessThan(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.lessThan = value;
if (message) {
Expand All @@ -246,9 +223,7 @@ class ControlRules {
}

public divisibleBy(value: number, message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.divisibleBy = value;
if (message) {
Expand All @@ -258,9 +233,7 @@ class ControlRules {
}

public odd(message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.odd = true;
if (message) {
Expand All @@ -270,9 +243,7 @@ class ControlRules {
}

public even(message?: ErroMessageType) {
if (!this.rules.numericality) {
this.rules.numericality = {};
}
this.rules.numericality = this.rules.numericality || {};

this.rules.numericality.even = true;
if (message) {
Expand All @@ -283,15 +254,15 @@ class ControlRules {

//

public required(message?: string | null, allowEmpty?: boolean) {
public required(message?: ErroMessageType, allowEmpty?: boolean) {
this.rules.presence = {
allowEmpty: allowEmpty === undefined ? false : allowEmpty,
message: message ? message : undefined,
};
return this;
}

public isType(type: string, message?: string) {
public isType(type: string, message?: ErroMessageType) {
this.rules.type = {
type,
message: message ? message : undefined,
Expand Down
18 changes: 14 additions & 4 deletions src/__tests__/rules.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,10 @@ describe('Control Rules', () => {
});
});

describe('numeric', () => {
describe('number', () => {
it('should set passed properties', () => {
const rules = FD.rules()
.numeric(true, 'wrong', 'default msg')
.number('wrong', true, 'default msg')
.serialize();

expect(rules.numericality?.strict).toBe(true);
Expand All @@ -175,17 +175,27 @@ describe('Control Rules', () => {
});
});

describe('isInteger', () => {
describe('integer', () => {
it('should set passed properties', () => {
const rules = FD.rules()
.isInteger('wrong')
.integer('wrong')
.serialize();

expect(rules.numericality?.onlyInteger).toBe(true);
expect(rules.numericality?.notInteger).toBe('wrong');
});
});

describe('double', () => {
it('should set passed properties', () => {
const rules = FD.rules()
.double()
.serialize();

expect(rules.numericality?.onlyInteger).toBe(false);
});
});

describe('greaterThan', () => {
it('should set passed properties', () => {
const rules = FD.rules()
Expand Down

0 comments on commit 397b1e1

Please sign in to comment.