Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@foobarhq/validators

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foobarhq/validators - npm Package Compare versions

Comparing version 1.1.0 to 2.0.0

.idea/markdown-navigator.xml

6

__tests__/optionalValidator.js

@@ -31,2 +31,8 @@ // @flow

test('can accept undefined as a default value', () => {
const validate = optionalValidator(noValidate(), { defaultValue: void 0 });
expect(validate(void 0)).toEqual(void 0);
});
test('can accept a null as a defaultValue', () => {

@@ -33,0 +39,0 @@ const validate = optionalValidator(noValidate(), { defaultValue: null });

@@ -5,2 +5,12 @@ # Change Log

<a name="2.0.0"></a>
# [2.0.0](https://github.com/foobarhq/validators/compare/v1.1.0...v2.0.0) (2017-06-29)
### Features
* Accept undefined as default values ([772cb3e](https://github.com/foobarhq/validators/commit/772cb3e))
<a name="1.1.0"></a>

@@ -7,0 +17,0 @@ # 1.1.0 (2017-06-13)

20

lib/validators/optionalValidator.js

@@ -15,5 +15,3 @@ 'use strict';

const defaultOptionalArgs = {
allowNull: false,
defaultValue: void 0,
threatAsVoid: false
allowNull: false
};

@@ -25,7 +23,7 @@

// $FlowFixMe
{ allowNull, defaultValue, threatAsVoid } = defaultOptionalArgs) {
options = defaultOptionalArgs) {
return function validateOptional(item, metadata) {
if (item === null) {
if (allowNull) {
if (options.allowNull) {
return null;

@@ -37,12 +35,12 @@ }

if (item === void 0 || threatAsVoid && threatAsVoid === item || Array.isArray(threatAsVoid) && threatAsVoid.includes(item)) {
if (defaultValue === void 0) {
if (item === void 0 || options.threatAsVoid && options.threatAsVoid === item || Array.isArray(options.threatAsVoid) && options.threatAsVoid.includes(item)) {
if (!Object.prototype.hasOwnProperty.call(options, 'defaultValue')) {
throw new _InvalidData2.default('Missing value');
}
if (typeof defaultValue === 'function') {
return defaultValue();
if (typeof options.defaultValue === 'function') {
return options.defaultValue();
}
return defaultValue;
return options.defaultValue;
}

@@ -53,2 +51,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL29wdGlvbmFsVmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIm9wdGlvbmFsVmFsaWRhdG9yIiwiZGVmYXVsdE9wdGlvbmFsQXJncyIsImFsbG93TnVsbCIsImRlZmF1bHRWYWx1ZSIsInRocmVhdEFzVm9pZCIsIk9iamVjdCIsImZyZWV6ZSIsInZhbGlkYXRvciIsInZhbGlkYXRlT3B0aW9uYWwiLCJpdGVtIiwibWV0YWRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBbUJ3QkEsaUI7O0FBaEJ4Qjs7Ozs7O0FBUUEsTUFBTUMsc0JBQW9DO0FBQ3hDQyxhQUFXLEtBRDZCO0FBRXhDQyxnQkFBYyxLQUFLLENBRnFCO0FBR3hDQyxnQkFBYztBQUgwQixDQUExQzs7QUFNQUMsT0FBT0MsTUFBUCxDQUFjTCxtQkFBZDs7QUFFZSxTQUFTRCxpQkFBVCxDQUNiTyxTQURhO0FBRWI7QUFDQSxFQUFFTCxTQUFGLEVBQWFDLFlBQWIsRUFBMkJDLFlBQTNCLEtBQTJESCxtQkFIOUMsRUFJRjs7QUFFWCxTQUFPLFNBQVNPLGdCQUFULENBQTBCQyxJQUExQixFQUFnQ0MsUUFBaEMsRUFBMEM7QUFDL0MsUUFBSUQsU0FBUyxJQUFiLEVBQW1CO0FBQ2pCLFVBQUlQLFNBQUosRUFBZTtBQUNiLGVBQU8sSUFBUDtBQUNEOztBQUVELFlBQU0sMEJBQWdCLGdCQUFoQixDQUFOO0FBQ0Q7O0FBRUQsUUFDRU8sU0FBUyxLQUFLLENBQWQsSUFDSUwsZ0JBQWdCQSxpQkFBaUJLLElBRHJDLElBRUlFLE1BQU1DLE9BQU4sQ0FBY1IsWUFBZCxLQUErQkEsYUFBYVMsUUFBYixDQUFzQkosSUFBdEIsQ0FIckMsRUFJRTtBQUNBLFVBQUlOLGlCQUFpQixLQUFLLENBQTFCLEVBQTZCO0FBQzNCLGNBQU0sMEJBQWdCLGVBQWhCLENBQU47QUFDRDs7QUFFRCxVQUFJLE9BQU9BLFlBQVAsS0FBd0IsVUFBNUIsRUFBd0M7QUFDdEMsZUFBT0EsY0FBUDtBQUNEOztBQUVELGFBQU9BLFlBQVA7QUFDRDs7QUFFRCxXQUFPSSxVQUFVRSxJQUFWLEVBQWdCQyxRQUFoQixDQUFQO0FBQ0QsR0ExQkQ7QUEyQkQiLCJmaWxlIjoib3B0aW9uYWxWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuXG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRvciB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBJbnZhbGlkRGF0YSBmcm9tICcuLi9JbnZhbGlkRGF0YSc7XG5cbmV4cG9ydCB0eXBlIE9wdGlvbmFsQXJncyA9IHtcbiAgYWxsb3dOdWxsPzogYm9vbGVhbixcbiAgZGVmYXVsdFZhbHVlPzogYW55LFxuICB0aHJlYXRBc1ZvaWQ/OiBib29sZWFuLFxufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbmFsQXJnczogT3B0aW9uYWxBcmdzID0ge1xuICBhbGxvd051bGw6IGZhbHNlLFxuICBkZWZhdWx0VmFsdWU6IHZvaWQgMCxcbiAgdGhyZWF0QXNWb2lkOiBmYWxzZSxcbn07XG5cbk9iamVjdC5mcmVlemUoZGVmYXVsdE9wdGlvbmFsQXJncyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9wdGlvbmFsVmFsaWRhdG9yKFxuICB2YWxpZGF0b3I6IFZhbGlkYXRvcixcbiAgLy8gJEZsb3dGaXhNZVxuICB7IGFsbG93TnVsbCwgZGVmYXVsdFZhbHVlLCB0aHJlYXRBc1ZvaWQgfTogP09wdGlvbmFsQXJncyA9IGRlZmF1bHRPcHRpb25hbEFyZ3Ncbik6IFZhbGlkYXRvciB7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHZhbGlkYXRlT3B0aW9uYWwoaXRlbSwgbWV0YWRhdGEpIHtcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xuICAgICAgaWYgKGFsbG93TnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEludmFsaWREYXRhKCdDYW5ub3QgYmUgbnVsbCcpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGl0ZW0gPT09IHZvaWQgMFxuICAgICAgfHwgKHRocmVhdEFzVm9pZCAmJiB0aHJlYXRBc1ZvaWQgPT09IGl0ZW0pXG4gICAgICB8fCAoQXJyYXkuaXNBcnJheSh0aHJlYXRBc1ZvaWQpICYmIHRocmVhdEFzVm9pZC5pbmNsdWRlcyhpdGVtKSlcbiAgICApIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGEoJ01pc3NpbmcgdmFsdWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3IoaXRlbSwgbWV0YWRhdGEpO1xuICB9O1xufVxuXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL29wdGlvbmFsVmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIm9wdGlvbmFsVmFsaWRhdG9yIiwiZGVmYXVsdE9wdGlvbmFsQXJncyIsImFsbG93TnVsbCIsIk9iamVjdCIsImZyZWV6ZSIsInZhbGlkYXRvciIsIm9wdGlvbnMiLCJ2YWxpZGF0ZU9wdGlvbmFsIiwiaXRlbSIsIm1ldGFkYXRhIiwidGhyZWF0QXNWb2lkIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5jbHVkZXMiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZWZhdWx0VmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQWlCd0JBLGlCOztBQWR4Qjs7Ozs7O0FBUUEsTUFBTUMsc0JBQW9DO0FBQ3hDQyxhQUFXO0FBRDZCLENBQTFDOztBQUlBQyxPQUFPQyxNQUFQLENBQWNILG1CQUFkOztBQUVlLFNBQVNELGlCQUFULENBQ2JLLFNBRGE7QUFFYjtBQUNBQyxVQUF5QkwsbUJBSFosRUFJRjs7QUFFWCxTQUFPLFNBQVNNLGdCQUFULENBQTBCQyxJQUExQixFQUFnQ0MsUUFBaEMsRUFBMEM7QUFDL0MsUUFBSUQsU0FBUyxJQUFiLEVBQW1CO0FBQ2pCLFVBQUlGLFFBQVFKLFNBQVosRUFBdUI7QUFDckIsZUFBTyxJQUFQO0FBQ0Q7O0FBRUQsWUFBTSwwQkFBZ0IsZ0JBQWhCLENBQU47QUFDRDs7QUFFRCxRQUNFTSxTQUFTLEtBQUssQ0FBZCxJQUNJRixRQUFRSSxZQUFSLElBQXdCSixRQUFRSSxZQUFSLEtBQXlCRixJQURyRCxJQUVJRyxNQUFNQyxPQUFOLENBQWNOLFFBQVFJLFlBQXRCLEtBQXVDSixRQUFRSSxZQUFSLENBQXFCRyxRQUFyQixDQUE4QkwsSUFBOUIsQ0FIN0MsRUFJRTtBQUNBLFVBQUksQ0FBQ0wsT0FBT1csU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDVixPQUFyQyxFQUE4QyxjQUE5QyxDQUFMLEVBQW9FO0FBQ2xFLGNBQU0sMEJBQWdCLGVBQWhCLENBQU47QUFDRDs7QUFFRCxVQUFJLE9BQU9BLFFBQVFXLFlBQWYsS0FBZ0MsVUFBcEMsRUFBZ0Q7QUFDOUMsZUFBT1gsUUFBUVcsWUFBUixFQUFQO0FBQ0Q7O0FBRUQsYUFBT1gsUUFBUVcsWUFBZjtBQUNEOztBQUVELFdBQU9aLFVBQVVHLElBQVYsRUFBZ0JDLFFBQWhCLENBQVA7QUFDRCxHQTFCRDtBQTJCRCIsImZpbGUiOiJvcHRpb25hbFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5cbmltcG9ydCB0eXBlIHsgVmFsaWRhdG9yIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IEludmFsaWREYXRhIGZyb20gJy4uL0ludmFsaWREYXRhJztcblxuZXhwb3J0IHR5cGUgT3B0aW9uYWxBcmdzID0ge1xuICBhbGxvd051bGw/OiBib29sZWFuLFxuICBkZWZhdWx0VmFsdWU/OiBhbnksXG4gIHRocmVhdEFzVm9pZD86IGFueSxcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25hbEFyZ3M6IE9wdGlvbmFsQXJncyA9IHtcbiAgYWxsb3dOdWxsOiBmYWxzZSxcbn07XG5cbk9iamVjdC5mcmVlemUoZGVmYXVsdE9wdGlvbmFsQXJncyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9wdGlvbmFsVmFsaWRhdG9yKFxuICB2YWxpZGF0b3I6IFZhbGlkYXRvcixcbiAgLy8gJEZsb3dGaXhNZVxuICBvcHRpb25zPzogT3B0aW9uYWxBcmdzID0gZGVmYXVsdE9wdGlvbmFsQXJnc1xuKTogVmFsaWRhdG9yIHtcblxuICByZXR1cm4gZnVuY3Rpb24gdmFsaWRhdGVPcHRpb25hbChpdGVtLCBtZXRhZGF0YSkge1xuICAgIGlmIChpdGVtID09PSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5hbGxvd051bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0YSgnQ2Fubm90IGJlIG51bGwnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBpdGVtID09PSB2b2lkIDBcbiAgICAgIHx8IChvcHRpb25zLnRocmVhdEFzVm9pZCAmJiBvcHRpb25zLnRocmVhdEFzVm9pZCA9PT0gaXRlbSlcbiAgICAgIHx8IChBcnJheS5pc0FycmF5KG9wdGlvbnMudGhyZWF0QXNWb2lkKSAmJiBvcHRpb25zLnRocmVhdEFzVm9pZC5pbmNsdWRlcyhpdGVtKSlcbiAgICApIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICdkZWZhdWx0VmFsdWUnKSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZERhdGEoJ01pc3NpbmcgdmFsdWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5kZWZhdWx0VmFsdWUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3IoaXRlbSwgbWV0YWRhdGEpO1xuICB9O1xufVxuXG4iXX0=
{
"name": "@foobarhq/validators",
"version": "1.1.0",
"version": "2.0.0",
"description": "FP composable string parsers and validators.",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

# @foobarhq/validators
[![npm version](https://badge.fury.io/js/%40foobarhq%2Fvalidators.svg)](https://badge.fury.io/js/%40foobarhq%2Fvalidators)
The main purpose of this library is (but not limited) to parse and validate data received from HTTP requests.

@@ -4,0 +6,0 @@

@@ -9,3 +9,3 @@ // @flow

defaultValue?: any,
threatAsVoid?: boolean,
threatAsVoid?: any,
};

@@ -15,4 +15,2 @@

allowNull: false,
defaultValue: void 0,
threatAsVoid: false,
};

@@ -25,3 +23,3 @@

// $FlowFixMe
{ allowNull, defaultValue, threatAsVoid }: ?OptionalArgs = defaultOptionalArgs
options?: OptionalArgs = defaultOptionalArgs
): Validator {

@@ -31,3 +29,3 @@

if (item === null) {
if (allowNull) {
if (options.allowNull) {
return null;

@@ -41,14 +39,14 @@ }

item === void 0
|| (threatAsVoid && threatAsVoid === item)
|| (Array.isArray(threatAsVoid) && threatAsVoid.includes(item))
|| (options.threatAsVoid && options.threatAsVoid === item)
|| (Array.isArray(options.threatAsVoid) && options.threatAsVoid.includes(item))
) {
if (defaultValue === void 0) {
if (!Object.prototype.hasOwnProperty.call(options, 'defaultValue')) {
throw new InvalidData('Missing value');
}
if (typeof defaultValue === 'function') {
return defaultValue();
if (typeof options.defaultValue === 'function') {
return options.defaultValue();
}
return defaultValue;
return options.defaultValue;
}

@@ -55,0 +53,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc