Skip to content

Commit 258f30b

Browse files
committed
Release v0.21.0
1 parent 8a8cc5b commit 258f30b

17 files changed

+221
-91
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
v0.21.0 - Mon, 29 Aug 2016 18:29:31 GMT
2+
---------------------------------------
3+
4+
- [8a8cc5b](../../commit/8a8cc5b) [changed] remove case aliases and simplify camelCase
5+
6+
7+
18
v0.20.0 - Wed, 20 Jul 2016 02:02:08 GMT
29
---------------------------------------
310

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ json separate from validating it, via the `cast` method.
8282
- [`object.shape(fields: object, noSortEdges: ?Array<[string, string]>): Schema`](#objectshapefields-object-nosortedges-arraystring-string-schema)
8383
- [`object.from(fromKey: string, toKey: string, alias: boolean = false): Schema`](#objectfromfromkey-string-tokey-string-alias-boolean--false-schema)
8484
- [`object.noUnknown(onlyKnownKeys: boolean = true, message: ?string): Schema`](#objectnounknownonlyknownkeys-boolean--true-message-string-schema)
85-
- [`object.camelCase(): Schema`](#objectcamelCase-schema)
86-
- [`object.constantCase(): Schema`](#objectconstantCase-schema)
85+
- [`object.camelCase(): Schema`](#objectcamelcase-schema)
86+
- [`object.constantCase(): Schema`](#objectconstantcase-schema)
8787
- [Extending Schema Types](#extending-schema-types)
8888

8989
<!-- END doctoc generated TOC please keep comment here to allow auto update -->

lib/ValidationError.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
'use strict';
22

3+
exports.__esModule = true;
4+
exports.default = ValidationError;
5+
36
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
47

58
var strReg = /\$\{\s*(\w+)\s*\}/g;
@@ -12,8 +15,6 @@ var replace = function replace(str) {
1215
};
1316
};
1417

15-
module.exports = ValidationError;
16-
1718
function ValidationError(errors, value, field, type) {
1819
var _this = this;
1920

@@ -58,4 +59,5 @@ ValidationError.formatError = function (message, params) {
5859
};
5960

6061
return arguments.length === 1 ? fn : fn(params);
61-
};
62+
};
63+
module.exports = exports['default'];

lib/index.js

+73-28
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
exports.__esModule = true;
4+
exports.ValidationError = exports.addMethod = exports.isSchema = exports.reach = exports.lazy = exports.ref = exports.array = exports.object = exports.date = exports.boolean = exports.bool = exports.number = exports.string = exports.mixed = undefined;
45

56
var _mixed = require('./mixed');
67

@@ -10,6 +11,26 @@ var _boolean = require('./boolean');
1011

1112
var _boolean2 = _interopRequireDefault(_boolean);
1213

14+
var _string = require('./string');
15+
16+
var _string2 = _interopRequireDefault(_string);
17+
18+
var _number = require('./number');
19+
20+
var _number2 = _interopRequireDefault(_number);
21+
22+
var _date = require('./date');
23+
24+
var _date2 = _interopRequireDefault(_date);
25+
26+
var _object = require('./object');
27+
28+
var _object2 = _interopRequireDefault(_object);
29+
30+
var _array = require('./array');
31+
32+
var _array2 = _interopRequireDefault(_array);
33+
1334
var _Reference = require('./Reference');
1435

1536
var _Reference2 = _interopRequireDefault(_Reference);
@@ -18,41 +39,65 @@ var _Lazy = require('./Lazy');
1839

1940
var _Lazy2 = _interopRequireDefault(_Lazy);
2041

42+
var _ValidationError = require('./ValidationError');
43+
44+
var _ValidationError2 = _interopRequireDefault(_ValidationError);
45+
46+
var _reach = require('./util/reach');
47+
48+
var _reach2 = _interopRequireDefault(_reach);
49+
2150
var _isSchema = require('./util/isSchema');
2251

2352
var _isSchema2 = _interopRequireDefault(_isSchema);
2453

2554
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2655

56+
var boolean = _boolean2.default;
57+
var ref = function ref(key, options) {
58+
return new _Reference2.default(key, options);
59+
};
60+
61+
var lazy = function lazy(fn) {
62+
return new _Lazy2.default(fn);
63+
};
64+
65+
function addMethod(schemaType, name, fn) {
66+
if (!schemaType || !(0, _isSchema2.default)(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');
67+
68+
if (typeof name !== 'string') throw new TypeError('A Method name must be provided');
69+
if (typeof fn !== 'function') throw new TypeError('Method function must be provided');
70+
71+
schemaType.prototype[name] = fn;
72+
}
73+
74+
exports.mixed = _mixed2.default;
75+
exports.string = _string2.default;
76+
exports.number = _number2.default;
77+
exports.bool = _boolean2.default;
78+
exports.boolean = boolean;
79+
exports.date = _date2.default;
80+
exports.object = _object2.default;
81+
exports.array = _array2.default;
82+
exports.ref = ref;
83+
exports.lazy = lazy;
84+
exports.reach = _reach2.default;
85+
exports.isSchema = _isSchema2.default;
86+
exports.addMethod = addMethod;
87+
exports.ValidationError = _ValidationError2.default;
2788
exports.default = {
2889
mixed: _mixed2.default,
29-
string: require('./string'),
30-
number: require('./number'),
31-
boolean: _boolean2.default,
90+
string: _string2.default,
91+
number: _number2.default,
3292
bool: _boolean2.default,
33-
date: require('./date'),
34-
object: require('./object'),
35-
array: require('./array'),
36-
37-
reach: require('./util/reach'),
38-
39-
ValidationError: require('./ValidationError'),
40-
ref: function ref(key, options) {
41-
return new _Reference2.default(key, options);
42-
},
43-
lazy: function lazy(fn) {
44-
return new _Lazy2.default(fn);
45-
},
46-
93+
boolean: boolean,
94+
date: _date2.default,
95+
object: _object2.default,
96+
array: _array2.default,
97+
ref: ref,
98+
lazy: lazy,
99+
reach: _reach2.default,
47100
isSchema: _isSchema2.default,
48-
49-
addMethod: function addMethod(schemaType, name, fn) {
50-
if (!schemaType || !(0, _isSchema2.default)(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');
51-
52-
if (typeof name !== 'string') throw new TypeError('A Method name must be provided');
53-
if (typeof fn !== 'function') throw new TypeError('Method function must be provided');
54-
55-
schemaType.prototype[name] = fn;
56-
}
57-
};
58-
module.exports = exports['default'];
101+
addMethod: addMethod,
102+
ValidationError: _ValidationError2.default
103+
};

lib/mixed.js

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
'use strict';
22

3+
exports.__esModule = true;
4+
35
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
46

7+
exports.default = SchemaType;
8+
59
var _has = require('lodash/has');
610

711
var _has2 = _interopRequireDefault(_has);
@@ -49,9 +53,13 @@ var notEmpty = function notEmpty(value) {
4953
function extractTestParams(name, message, test, useCallback) {
5054
var opts = name;
5155

52-
if (typeof message === 'function') test = message, message = _locale.mixed.default, name = null;
56+
if (typeof message === 'function') {
57+
test = message;message = _locale.mixed.default;name = null;
58+
}
5359

54-
if (typeof name === 'function') test = name, message = _locale.mixed.default, name = null;
60+
if (typeof name === 'function') {
61+
test = name;message = _locale.mixed.default;name = null;
62+
}
5563

5664
if (typeof name === 'string' || name === null) opts = { name: name, test: test, message: message, useCallback: useCallback, exclusive: false };
5765

@@ -60,8 +68,6 @@ function extractTestParams(name, message, test, useCallback) {
6068
return opts;
6169
}
6270

63-
module.exports = SchemaType;
64-
6571
function SchemaType() {
6672
var _this = this;
6773

@@ -443,4 +449,5 @@ function nodeify(promise, cb) {
443449
}, function (err) {
444450
return cb(err);
445451
});
446-
}
452+
}
453+
module.exports = exports['default'];

lib/number.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
'use strict';
22

3+
exports.__esModule = true;
4+
exports.default = NumberSchema;
5+
36
var _inherits = require('./util/inherits');
47

58
var _inherits2 = _interopRequireDefault(_inherits);
@@ -16,8 +19,6 @@ var _isAbsent2 = _interopRequireDefault(_isAbsent);
1619

1720
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1821

19-
module.exports = NumberSchema;
20-
2122
var isNaN = function isNaN(value) {
2223
return value != +value;
2324
};
@@ -102,4 +103,5 @@ function NumberSchema() {
102103
return !(0, _isAbsent2.default)(value) ? Math[method](value) : value;
103104
});
104105
}
105-
});
106+
});
107+
module.exports = exports['default'];

lib/object.js

+26-26
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
'use strict';
22

3+
exports.__esModule = true;
4+
35
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
46

57
var _templateObject = _taggedTemplateLiteralLoose(['', '.', ''], ['', '.', '']);
68

7-
var _case = require('case');
8-
9-
var _case2 = _interopRequireDefault(_case);
9+
exports.default = ObjectSchema;
1010

1111
var _has = require('lodash/has');
1212

@@ -16,6 +16,14 @@ var _omit = require('lodash/omit');
1616

1717
var _omit2 = _interopRequireDefault(_omit);
1818

19+
var _snakeCase2 = require('lodash/snakeCase');
20+
21+
var _snakeCase3 = _interopRequireDefault(_snakeCase2);
22+
23+
var _camelCase2 = require('lodash/camelCase');
24+
25+
var _camelCase3 = _interopRequireDefault(_camelCase2);
26+
1927
var _mapKeys = require('lodash/mapKeys');
2028

2129
var _mapKeys2 = _interopRequireDefault(_mapKeys);
@@ -65,19 +73,6 @@ function unknown(ctx, value) {
6573
});
6674
}
6775

68-
/**
69-
* maintain "private" fields
70-
* `"__FOO_BAR"` becomes `"__fooBar"` not `"fooBar"`
71-
*/
72-
function camelize(str) {
73-
var result = _case2.default.camel(str),
74-
idx = str.search(/[^_]/);
75-
76-
return idx === 0 ? result : str.substr(0, idx) + result;
77-
}
78-
79-
module.exports = ObjectSchema;
80-
8176
function ObjectSchema(spec) {
8277
var _this2 = this;
8378

@@ -265,7 +260,10 @@ function ObjectSchema(spec) {
265260
var noAllow = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
266261
var message = arguments.length <= 1 || arguments[1] === undefined ? _locale.object.noUnknown : arguments[1];
267262

268-
if (typeof noAllow === 'string') message = noAllow, noAllow = true;
263+
if (typeof noAllow === 'string') {
264+
message = noAllow;
265+
noAllow = true;
266+
}
269267

270268
var next = this.test({
271269
name: 'noUnknown',
@@ -280,21 +278,23 @@ function ObjectSchema(spec) {
280278

281279
return next;
282280
},
283-
camelCase: function camelCase() {
281+
transformKeys: function transformKeys(fn) {
284282
return this.transform(function (obj) {
285283
return obj && (0, _mapKeys2.default)(obj, function (_, key) {
286-
return camelize(key);
284+
return fn(key);
287285
});
288286
});
289287
},
288+
camelCase: function camelCase() {
289+
return this.transformKeys(_camelCase3.default);
290+
},
291+
snakeCase: function snakeCase() {
292+
return this.transformKeys(_snakeCase3.default);
293+
},
290294
constantCase: function constantCase() {
291-
return this.transform(function (obj) {
292-
return obj && (0, _mapKeys2.default)(obj, function (_, key) {
293-
return _case2.default.constant(key);
294-
});
295+
return this.transformKeys(function (key) {
296+
return (0, _snakeCase3.default)(key).toUpperCase();
295297
});
296298
}
297299
});
298-
299-
ObjectSchema.prototype.camelCase = ObjectSchema.prototype.camelCase;
300-
ObjectSchema.prototype.constantCase = ObjectSchema.prototype.constantCase;
300+
module.exports = exports['default'];

lib/string.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
'use strict';
22

3+
exports.__esModule = true;
4+
exports.default = StringSchema;
5+
36
var _inherits = require('./util/inherits');
47

58
var _inherits2 = _interopRequireDefault(_inherits);
@@ -26,8 +29,6 @@ var isTrimmed = function isTrimmed(value) {
2629
return (0, _isAbsent2.default)(value) || value === value.trim();
2730
};
2831

29-
module.exports = StringSchema;
30-
3132
function StringSchema() {
3233
var _this = this;
3334

@@ -77,11 +78,16 @@ function StringSchema() {
7778
});
7879
},
7980
matches: function matches(regex, msg) {
81+
var _ref = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
82+
83+
var _ref$excludeEmptyStri = _ref.excludeEmptyString;
84+
var excludeEmptyString = _ref$excludeEmptyStri === undefined ? true : _ref$excludeEmptyStri;
85+
8086
return this.test({
8187
message: msg || _locale.string.matches,
8288
params: { regex: regex },
8389
test: function test(value) {
84-
return (0, _isAbsent2.default)(value) || regex.test(value);
90+
return (0, _isAbsent2.default)(value) || value === '' && excludeEmptyString || regex.test(value);
8591
}
8692
});
8793
},
@@ -130,4 +136,5 @@ function StringSchema() {
130136
}
131137
});
132138
}
133-
});
139+
});
140+
module.exports = exports['default'];

0 commit comments

Comments
 (0)