Skip to content

Commit

Permalink
feat(validator): demo
Browse files Browse the repository at this point in the history
  • Loading branch information
AliMD committed Jan 3, 2023
1 parent 60829a6 commit 9e577ca
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 28 deletions.
3 changes: 1 addition & 2 deletions core/validator/src/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ export type JsonSchema = {
| string
| number
| boolean
| null
| undefined;
| null;
};

export type ValidType = {
Expand Down
59 changes: 33 additions & 26 deletions demo/validator/validator.ts
Original file line number Diff line number Diff line change
@@ -1,40 +1,47 @@
import {validator} from '@alwatr/validator';

// number
console.log(validator<{a: number}>({a: Number}, {a: 2}));
console.log(validator<{a: number}>({a: Number}, {a: '2'}));

// boolean
console.log(validator<{a: boolean}>({a: Boolean}, {a: 'false'}));
console.log(validator<{a: boolean}>({a: Boolean}, {a: 'true'}));
console.log('basic test');
console.log(
validator<
{num: number; str: string; bool: boolean; _null: null; undef: undefined; ali: 'ali'; five: 5; true: true}
>(
{num: Number, str: String, bool: Boolean, _null: null, undef: undefined, ali: 'ali', five: 5, true: true},
{num: 123, str: 'test', bool: false, _null: null, undef: undefined, ali: 'ali', five: 5, true: true},
),
);

// string
console.log(validator<{a: string}>({a: String}, {a: 'salam'}));
console.log('sanitize value test');
console.log(
validator<
{num: number; str: string; bool: boolean; _null: null; undef: undefined; ali: 'ali'; five: 5; true: true}
>(
{num: Number, str: String, bool: Boolean, _null: null, undef: undefined, ali: 'ali', five: 5, true: true},
{num: '123', str: 'test', bool: 'false', _null: null, undef: undefined, ali: 'ali', five: 5, true: true},
),
);

// nested object
console.log('nested value test');
console.log(
validator<{a: number; b: {c: boolean, d: {e: number}}}>(
{a: Number, b: {c: Boolean, d: {e: Number}}},
{a: '2', b: {c: true, d: {e: 1}}},
validator<
{a: {num: number; str: string; bool: boolean; _null: null; undef: undefined; ali: 'ali'; five: 5; true: true}}
>(
{a: {num: Number, str: String, bool: Boolean, _null: null, undef: undefined, ali: 'ali', five: 5, true: true}},
{a: {num: '123', str: 'test', bool: 'false', _null: null, undef: undefined, ali: 'ali', five: 5, true: true}},
),
);

// not valid
console.log('not valid test');
try {
console.log(
validator<{a: number; b: {c: boolean, d: {e: number}}}>(
{a: Number, b: {c: Boolean, d: {e: Number}}},
{a: '2', b: {c: true, d: {e: true}}},
validator<
{num: number}
>(
{num: Number},
{num: 'asd'},
),
);
new Error('validator_not_work');
}
catch (error) {
console.log(error);
}

try {
console.log(validator<{a: boolean}>({a: Boolean}, {a: 'test'}));
}
catch (error) {
console.log(error);
catch (err) {
console.log('test ok, error cause: ', (err as Error).cause);
}

0 comments on commit 9e577ca

Please sign in to comment.