Skip to content

Commit 4d05b26

Browse files
authored
fix undefined type (#10)
* fix: transform undefined * fix: fix undefined type * chroe: code * chroe: message * chroe: message
1 parent 17ad411 commit 4d05b26

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/index.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,7 @@ import type {
1616
Values,
1717
} from './interface';
1818
import { messages as defaultMessages, newMessages } from './messages';
19-
import {
20-
asyncMap,
21-
complementError,
22-
convertFieldsError,
23-
deepMerge,
24-
format,
25-
isEmptyValue,
26-
warning,
27-
} from './util';
19+
import { asyncMap, complementError, convertFieldsError, deepMerge, format, warning } from './util';
2820
import validators from './validator/index';
2921

3022
export * from './interface';
@@ -154,9 +146,8 @@ class Schema {
154146
source = { ...source };
155147
}
156148
value = source[z] = rule.transform(value);
157-
const type = rule.type || ((Array.isArray(value) ? 'array' : typeof value) as RuleType);
158-
if (!isEmptyValue(value, type)) {
159-
rule.type = type;
149+
if (value !== undefined && value !== null) {
150+
rule.type = rule.type || ((Array.isArray(value) ? 'array' : typeof value) as RuleType);
160151
}
161152
}
162153
if (typeof rule === 'function') {

tests/number.spec.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,17 @@ describe('number', () => {
167167
v: { required: true, transform: v => undefined },
168168
}).validate(value, errors => {
169169
expect(errors).toBeTruthy();
170+
expect(errors[0].message).toBe('v is required');
171+
done();
172+
});
173+
});
174+
it('empty array message is "v is required"', done => {
175+
const value = { v: [] };
176+
new Schema({
177+
v: { required: true, transform: () => [] },
178+
}).validate(value, errors => {
179+
expect(errors).toBeTruthy();
180+
expect(errors[0].message).toBe('v is required');
170181
done();
171182
});
172183
});

0 commit comments

Comments
 (0)