New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-hooks-validation

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-hooks-validation - npm Package Compare versions

Comparing version 1.0.4 to 1.1.0

22

dist/react-hooks-validation.js

@@ -8,2 +8,3 @@ "use strict";

exports.validateAll = validateAll;
exports.reset = reset;

@@ -28,3 +29,5 @@ var _react = _interopRequireWildcard(require("react"));

var depended = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (!object.name) throw new Error("You should add a 'name' property on your object and provide a value for it!");else if (object.value === undefined) throw new Error("You should add a 'value' property on your object!");else if (object.contains && !Array.isArray(object.contains)) throw new Error("'contains' should be an Array!");else if (object.containsNot && !Array.isArray(object.containsNot)) throw new Error("'containsNot' should be an Array!");
if (!object.name) throw new Error("You should add a 'name' property on your object and provide a value for it!");else if (object.contains && !Array.isArray(object.contains)) throw new Error("'contains' should be an Array!");else if (object.containsNot && !Array.isArray(object.containsNot)) throw new Error("'containsNot' should be an Array!");
if (object.defaultValue === undefined) object.defaultValue = '';
if (object.value === undefined) object.value = object.defaultValue;

@@ -49,2 +52,7 @@ var _useState = (0, _react.useState)(object.value),

function reset() {
setValue(object.defaultValue);
setError(null);
}
(0, _react.useEffect)(function () {

@@ -68,3 +76,5 @@ object.depend = depended;

onChange: onChange,
required: object.required
required: object.required,
defaultValue: object.defaultValue,
reset: reset
};

@@ -81,2 +91,8 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdC1ob29rcy12YWxpZGF0aW9uLmpzIl0sIm5hbWVzIjpbInVzZVZhbGlkYXRpb24iLCJvYmplY3QiLCJkZXBlbmRlZCIsIm5hbWUiLCJFcnJvciIsInZhbHVlIiwidW5kZWZpbmVkIiwiY29udGFpbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjb250YWluc05vdCIsInNldFZhbHVlIiwiZXJyb3IiLCJzZXRFcnJvciIsIm9uQ2hhbmdlIiwibmV3VmFsdWUiLCJkaXNhYmxlZCIsImRlcGVuZCIsInJlcXVpcmVkIiwidmFsaWRhdGVBbGwiLCJzY2hlbWEiLCJlcnIiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInB1c2giLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsTUFBdkIsRUFBZ0Q7QUFBQSxNQUFqQkMsUUFBaUIsdUVBQU4sSUFBTTtBQUM3RCxNQUFJLENBQUNELE1BQU0sQ0FBQ0UsSUFBWixFQUNFLE1BQU0sSUFBSUMsS0FBSixDQUNKLDZFQURJLENBQU4sQ0FERixLQUlLLElBQUlILE1BQU0sQ0FBQ0ksS0FBUCxLQUFpQkMsU0FBckIsRUFDSCxNQUFNLElBQUlGLEtBQUosQ0FBVSxtREFBVixDQUFOLENBREcsS0FFQSxJQUFJSCxNQUFNLENBQUNNLFFBQVAsSUFBbUIsQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNSLE1BQU0sQ0FBQ00sUUFBckIsQ0FBeEIsRUFDSCxNQUFNLElBQUlILEtBQUosQ0FBVSxnQ0FBVixDQUFOLENBREcsS0FFQSxJQUFJSCxNQUFNLENBQUNTLFdBQVAsSUFBc0IsQ0FBQ0YsS0FBSyxDQUFDQyxPQUFOLENBQWNSLE1BQU0sQ0FBQ1MsV0FBckIsQ0FBM0IsRUFDSCxNQUFNLElBQUlOLEtBQUosQ0FBVSxtQ0FBVixDQUFOOztBQVYyRCxrQkFZbkMscUJBQVNILE1BQU0sQ0FBQ0ksS0FBaEIsQ0FabUM7QUFBQTtBQUFBLE1BWXREQSxLQVpzRDtBQUFBLE1BWS9DTSxRQVorQzs7QUFBQSxtQkFhbkMscUJBQVMsSUFBVCxDQWJtQztBQUFBO0FBQUEsTUFhdERDLEtBYnNEO0FBQUEsTUFhL0NDLFFBYitDOztBQWU3RCxXQUFTQyxRQUFULENBQWtCQyxRQUFsQixFQUE0QjtBQUMxQixRQUFJZCxNQUFNLENBQUNlLFFBQVgsRUFBcUIsT0FBTyxLQUFQO0FBQ3JCTCxJQUFBQSxRQUFRLENBQUNJLFFBQUQsQ0FBUjtBQUNBZCxJQUFBQSxNQUFNLENBQUNnQixNQUFQLEdBQWdCZixRQUFoQjtBQUNBRCxJQUFBQSxNQUFNLENBQUNJLEtBQVAsR0FBZVUsUUFBZjtBQUNBRixJQUFBQSxRQUFRLENBQUMsQ0FBQywwQkFBU1osTUFBVCxDQUFGLENBQVI7QUFDRDs7QUFFRCx3QkFBVSxZQUFNO0FBQ2RBLElBQUFBLE1BQU0sQ0FBQ2dCLE1BQVAsR0FBZ0JmLFFBQWhCO0FBQ0EsUUFBSUQsTUFBTSxDQUFDSSxLQUFYLEVBQWtCUSxRQUFRLENBQUMsQ0FBQywwQkFBU1osTUFBVCxDQUFGLENBQVI7QUFDbkIsR0FIRCxFQUdHLEVBSEg7O0FBS0EsTUFBSUEsTUFBTSxDQUFDVyxLQUFQLEtBQWlCLElBQWpCLElBQTBCWCxNQUFNLENBQUNJLEtBQVAsS0FBaUIsRUFBakIsSUFBdUJKLE1BQU0sQ0FBQ0ksS0FBUCxLQUFpQixJQUF4QyxJQUFnREosTUFBTSxDQUFDSSxLQUFQLEtBQWlCQyxTQUEvRixFQUEyRztBQUN6R08sSUFBQUEsUUFBUSxDQUFDLENBQUMsMEJBQVNaLE1BQVQsQ0FBRixDQUFSO0FBQ0Q7O0FBR0QsTUFBSUEsTUFBTSxDQUFDVyxLQUFQLElBQWdCLElBQWhCLElBQXdCLENBQUNYLE1BQU0sQ0FBQ2lCLFFBQXBDLEVBQThDO0FBQzVDakIsSUFBQUEsTUFBTSxDQUFDVyxLQUFQLEdBQWUsS0FBZjtBQUNELEdBRkQsTUFHS1gsTUFBTSxDQUFDVyxLQUFQLEdBQWVBLEtBQWY7O0FBRUwsU0FBTztBQUNMVCxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0UsSUFEUjtBQUVMRSxJQUFBQSxLQUFLLEVBQUxBLEtBRks7QUFHTE8sSUFBQUEsS0FBSyxFQUFFWCxNQUFNLENBQUNXLEtBSFQ7QUFJTEUsSUFBQUEsUUFBUSxFQUFSQSxRQUpLO0FBS0xJLElBQUFBLFFBQVEsRUFBRWpCLE1BQU0sQ0FBQ2lCO0FBTFosR0FBUDtBQU9EOztBQUVNLFNBQVNDLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTZCO0FBQ2xDLE1BQUlDLEdBQUcsR0FBRyxFQUFWO0FBQ0FDLEVBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxNQUFaLEVBQW9CSSxPQUFwQixDQUE0QixVQUFBQyxHQUFHLEVBQUk7QUFDakMsUUFDRUwsTUFBTSxDQUFDSyxHQUFELENBQU4sQ0FBWWIsS0FBWixJQUNBUSxNQUFNLENBQUNLLEdBQUQsQ0FBTixDQUFZYixLQUFaLEtBQXNCLElBRHRCLElBRUEsQ0FBQywwQkFBU1EsTUFBTSxDQUFDSyxHQUFELENBQWYsQ0FISCxFQUtFSixHQUFHLENBQUNLLElBQUosQ0FBU04sTUFBTSxDQUFDSyxHQUFELENBQU4sQ0FBWXRCLElBQXJCO0FBQ0gsR0FQRDtBQVFBLE1BQUlrQixHQUFHLENBQUNNLE1BQUosR0FBYSxDQUFqQixFQUFvQixPQUFPTixHQUFQO0FBQ3BCLFNBQU8sSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCIuL3ZhbGlkYXRlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VWYWxpZGF0aW9uKG9iamVjdCwgZGVwZW5kZWQgPSBudWxsKSB7XHJcbiAgaWYgKCFvYmplY3QubmFtZSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgXCJZb3Ugc2hvdWxkIGFkZCBhICduYW1lJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCBhbmQgcHJvdmlkZSBhIHZhbHVlIGZvciBpdCFcIlxyXG4gICAgKTtcclxuICBlbHNlIGlmIChvYmplY3QudmFsdWUgPT09IHVuZGVmaW5lZClcclxuICAgIHRocm93IG5ldyBFcnJvcihcIllvdSBzaG91bGQgYWRkIGEgJ3ZhbHVlJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCFcIik7XHJcbiAgZWxzZSBpZiAob2JqZWN0LmNvbnRhaW5zICYmICFBcnJheS5pc0FycmF5KG9iamVjdC5jb250YWlucykpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInY29udGFpbnMnIHNob3VsZCBiZSBhbiBBcnJheSFcIik7XHJcbiAgZWxzZSBpZiAob2JqZWN0LmNvbnRhaW5zTm90ICYmICFBcnJheS5pc0FycmF5KG9iamVjdC5jb250YWluc05vdCkpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInY29udGFpbnNOb3QnIHNob3VsZCBiZSBhbiBBcnJheSFcIik7XHJcblxyXG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUob2JqZWN0LnZhbHVlKTtcclxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKG51bGwpO1xyXG5cclxuICBmdW5jdGlvbiBvbkNoYW5nZShuZXdWYWx1ZSkge1xyXG4gICAgaWYgKG9iamVjdC5kaXNhYmxlZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgb2JqZWN0LmRlcGVuZCA9IGRlcGVuZGVkO1xyXG4gICAgb2JqZWN0LnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgb2JqZWN0LmRlcGVuZCA9IGRlcGVuZGVkO1xyXG4gICAgaWYgKG9iamVjdC52YWx1ZSkgc2V0RXJyb3IoIXZhbGlkYXRlKG9iamVjdCkpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgaWYgKG9iamVjdC5lcnJvciA9PT0gbnVsbCAmJiAob2JqZWN0LnZhbHVlICE9PSAnJyAmJiBvYmplY3QudmFsdWUgIT09IG51bGwgJiYgb2JqZWN0LnZhbHVlICE9PSB1bmRlZmluZWQpKSB7XHJcbiAgICBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaWYgKG9iamVjdC5lcnJvciAhPSB0cnVlICYmICFvYmplY3QucmVxdWlyZWQpIHtcclxuICAgIG9iamVjdC5lcnJvciA9IGZhbHNlO1xyXG4gIH1cclxuICBlbHNlIG9iamVjdC5lcnJvciA9IGVycm9yO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogb2JqZWN0Lm5hbWUsXHJcbiAgICB2YWx1ZSxcclxuICAgIGVycm9yOiBvYmplY3QuZXJyb3IsXHJcbiAgICBvbkNoYW5nZSxcclxuICAgIHJlcXVpcmVkOiBvYmplY3QucmVxdWlyZWRcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBbGwoc2NoZW1hKSB7XHJcbiAgdmFyIGVyciA9IFtdO1xyXG4gIE9iamVjdC5rZXlzKHNjaGVtYSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgaWYgKFxyXG4gICAgICBzY2hlbWFba2V5XS5lcnJvciB8fFxyXG4gICAgICBzY2hlbWFba2V5XS5lcnJvciA9PT0gbnVsbCB8fFxyXG4gICAgICAhdmFsaWRhdGUoc2NoZW1hW2tleV0pXHJcbiAgICApXHJcbiAgICAgIGVyci5wdXNoKHNjaGVtYVtrZXldLm5hbWUpO1xyXG4gIH0pO1xyXG4gIGlmIChlcnIubGVuZ3RoID4gMCkgcmV0dXJuIGVycjtcclxuICByZXR1cm4gbnVsbDtcclxufVxyXG4iXX0=
function reset(schema) {
Object.keys(schema).forEach(function (key) {
schema[key].reset();
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdC1ob29rcy12YWxpZGF0aW9uLmpzIl0sIm5hbWVzIjpbInVzZVZhbGlkYXRpb24iLCJvYmplY3QiLCJkZXBlbmRlZCIsIm5hbWUiLCJFcnJvciIsImNvbnRhaW5zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnNOb3QiLCJkZWZhdWx0VmFsdWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZSIsInNldFZhbHVlIiwiZXJyb3IiLCJzZXRFcnJvciIsIm9uQ2hhbmdlIiwibmV3VmFsdWUiLCJkaXNhYmxlZCIsImRlcGVuZCIsInJlc2V0IiwicmVxdWlyZWQiLCJ2YWxpZGF0ZUFsbCIsInNjaGVtYSIsImVyciIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHVzaCIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsTUFBdkIsRUFBZ0Q7QUFBQSxNQUFqQkMsUUFBaUIsdUVBQU4sSUFBTTtBQUM3RCxNQUFJLENBQUNELE1BQU0sQ0FBQ0UsSUFBWixFQUNFLE1BQU0sSUFBSUMsS0FBSixDQUNKLDZFQURJLENBQU4sQ0FERixLQUlLLElBQUlILE1BQU0sQ0FBQ0ksUUFBUCxJQUFtQixDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY04sTUFBTSxDQUFDSSxRQUFyQixDQUF4QixFQUNILE1BQU0sSUFBSUQsS0FBSixDQUFVLGdDQUFWLENBQU4sQ0FERyxLQUVBLElBQUlILE1BQU0sQ0FBQ08sV0FBUCxJQUFzQixDQUFDRixLQUFLLENBQUNDLE9BQU4sQ0FBY04sTUFBTSxDQUFDTyxXQUFyQixDQUEzQixFQUNILE1BQU0sSUFBSUosS0FBSixDQUFVLG1DQUFWLENBQU47QUFFRixNQUFJSCxNQUFNLENBQUNRLFlBQVAsS0FBd0JDLFNBQTVCLEVBQXVDVCxNQUFNLENBQUNRLFlBQVAsR0FBc0IsRUFBdEI7QUFDdkMsTUFBSVIsTUFBTSxDQUFDVSxLQUFQ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RyxNQUFmLEVBQXVCO0FBQzVCRSxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUgsTUFBWixFQUFvQkksT0FBcEIsQ0FBNEIsVUFBQUMsR0FBRyxFQUFJO0FBQ2pDTCxJQUFBQSxNQUFNLENBQUNLLEdBQUQsQ0FBTixDQUFZUixLQUFaO0FBQ0QsR0FGRDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCIuL3ZhbGlkYXRlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VWYWxpZGF0aW9uKG9iamVjdCwgZGVwZW5kZWQgPSBudWxsKSB7XHJcbiAgaWYgKCFvYmplY3QubmFtZSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgXCJZb3Ugc2hvdWxkIGFkZCBhICduYW1lJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCBhbmQgcHJvdmlkZSBhIHZhbHVlIGZvciBpdCFcIlxyXG4gICAgKTtcclxuICBlbHNlIGlmIChvYmplY3QuY29udGFpbnMgJiYgIUFycmF5LmlzQXJyYXkob2JqZWN0LmNvbnRhaW5zKSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcIidjb250YWlucycgc2hvdWxkIGJlIGFuIEFycmF5IVwiKTtcclxuICBlbHNlIGlmIChvYmplY3QuY29udGFpbnNOb3QgJiYgIUFycmF5LmlzQXJyYXkob2JqZWN0LmNvbnRhaW5zTm90KSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcIidjb250YWluc05vdCcgc2hvdWxkIGJlIGFuIEFycmF5IVwiKTtcclxuXHJcbiAgaWYgKG9iamVjdC5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkgb2JqZWN0LmRlZmF1bHRWYWx1ZSA9ICcnO1xyXG4gIGlmIChvYmplY3QudmFsdWUgPT09IHVuZGVmaW5lZCkgb2JqZWN0LnZhbHVlID0gb2JqZWN0LmRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShvYmplY3QudmFsdWUpO1xyXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XHJcblxyXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKG5ld1ZhbHVlKSB7XHJcbiAgICBpZiAob2JqZWN0LmRpc2FibGVkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICBvYmplY3QuZGVwZW5kID0gZGVwZW5kZWQ7XHJcbiAgICBvYmplY3QudmFsdWUgPSBuZXdWYWx1ZTtcclxuICAgIHNldEVycm9yKCF2YWxpZGF0ZShvYmplY3QpKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgc2V0VmFsdWUob2JqZWN0LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICBzZXRFcnJvcihudWxsKTtcclxuICB9XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBvYmplY3QuZGVwZW5kID0gZGVwZW5kZWQ7XHJcbiAgICBpZiAob2JqZWN0LnZhbHVlKSBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBpZiAob2JqZWN0LmVycm9yID09PSBudWxsICYmIChvYmplY3QudmFsdWUgIT09ICcnICYmIG9iamVjdC52YWx1ZSAhPT0gbnVsbCAmJiBvYmplY3QudmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgIHNldEVycm9yKCF2YWxpZGF0ZShvYmplY3QpKTtcclxuICB9XHJcblxyXG4gIGlmIChvYmplY3QuZXJyb3IgIT0gdHJ1ZSAmJiAhb2JqZWN0LnJlcXVpcmVkKSB7XHJcbiAgICBvYmplY3QuZXJyb3IgPSBmYWxzZTtcclxuICB9XHJcbiAgZWxzZSBvYmplY3QuZXJyb3IgPSBlcnJvcjtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6IG9iamVjdC5uYW1lLFxyXG4gICAgdmFsdWUsXHJcbiAgICBlcnJvcjogb2JqZWN0LmVycm9yLFxyXG4gICAgb25DaGFuZ2UsXHJcbiAgICByZXF1aXJlZDogb2JqZWN0LnJlcXVpcmVkLFxyXG4gICAgZGVmYXVsdFZhbHVlOiBvYmplY3QuZGVmYXVsdFZhbHVlLFxyXG4gICAgcmVzZXQ6IHJlc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQWxsKHNjaGVtYSkge1xyXG4gIHZhciBlcnIgPSBbXTtcclxuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcclxuICAgIGlmIChcclxuICAgICAgc2NoZW1hW2tleV0uZXJyb3IgfHxcclxuICAgICAgc2NoZW1hW2tleV0uZXJyb3IgPT09IG51bGwgfHxcclxuICAgICAgIXZhbGlkYXRlKHNjaGVtYVtrZXldKVxyXG4gICAgKVxyXG4gICAgICBlcnIucHVzaChzY2hlbWFba2V5XS5uYW1lKTtcclxuICB9KTtcclxuICBpZiAoZXJyLmxlbmd0aCA+IDApIHJldHVybiBlcnI7XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNldChzY2hlbWEpIHtcclxuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcclxuICAgIHNjaGVtYVtrZXldLnJlc2V0KCk7XHJcbiAgfSk7XHJcbn0iXX0=

4

package.json
{
"name": "react-hooks-validation",
"version": "1.0.4",
"version": "1.1.0",
"description": "Simple form validation for your React Hooks project.",

@@ -36,2 +36,2 @@ "main": "dist/react-hooks-validation.js",

]
}
}

@@ -21,3 +21,3 @@ # react-hooks-validation

name: 'firstName',
value: '',
defaultValue: '',
required: true

@@ -32,5 +32,9 @@ }

{
name: 'name', //name
value: '', //the current value
error: false, //returns true or false to let us know if validation is ok or not
onChange: function(value) //we need to call onChange everytime we need to change a value
required: false, //returns true or false if field is required or not
defaultValue: '', //returns defaultValue if we provided one
onChange: function(value), //we need to call onChange everytime we need to change a value
reset: function() //we call that if we need to reset validation for that field
}

@@ -45,8 +49,11 @@ ```

### reset(object)
`reset(object)` expects an object that contains objects from `useValidation(object)`. And it will reset the validation for the object, and all values will be set to their `defaultValue`s.
## DEMO
Here is a simple demo of how to use `useValidation(object)` and `validateAll(object)` together:
Here is a simple demo of how to use `useValidation(object)`, `validateAll(object)` and `reset(object)` together:
```
import useValidation, { validateAll } from 'react-hooks-validation';
import useValidation, { validateAll, reset } from 'react-hooks-validation';

@@ -57,3 +64,3 @@ function MyClass(){

name: 'firstName',
value: '',
defaultValue: '',
required: true

@@ -63,3 +70,3 @@ },

name: 'lastName',
value: '',
defaultValue: '',
required: true

@@ -74,8 +81,13 @@ }

handleChange({currentTarget: input}){
function handleChange({currentTarget: input}){
data[input.name].onChange(value);
}
function handleOnSubmit(e){
e.preventDefault();
reset(data);
}
return(
<form>
<form onSubmit={handleOnSubmit}>
<div>

@@ -109,3 +121,3 @@ <label>First Name:</label>

name: 'password',
value: '',
defaultValue: '',
required: true,

@@ -117,3 +129,3 @@ min: 6,

name: 'confirmPassword',
value: '',
defaultValue: '',
required: true

@@ -139,7 +151,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo' //the default value will be 'Kosovo' now
defaultValue: 'Kosovo' //the default value will be 'Kosovo' now
}

@@ -155,3 +167,3 @@ }

name: 'firstName',
value: '',
defaultValue: '',
required: true // this will be required now

@@ -161,3 +173,3 @@ },

name: 'country',
value: 'Kosovo'
defaultValue: 'Kosovo'
}

@@ -173,7 +185,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
disabled: true //now you will not be able to change this value

@@ -190,7 +202,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
age: {
name: 'age',
value: 2,
defaultValue: 2,
number: true // we will require this to be number now

@@ -207,3 +219,3 @@ }

name: 'firstName',
value: '',
defaultValue: '',
min: 2 //the minimum required length of the value is 2

@@ -213,3 +225,3 @@ },

name: 'age',
value: 18,
defaultValue: 18,
number: true,

@@ -220,3 +232,3 @@ min: 18 //the minimum required number is 18

name: 'projects',
value: [],
defaultValue: [],
array: true,

@@ -234,3 +246,3 @@ min: 2 //the array shuld have minimum 2 elements

name: 'firstName',
value: '',
defaultValue: '',
max: 30 // the maximum value length is 30 characters

@@ -240,3 +252,3 @@ },

name: 'age',
value: 18,
defaultValue: 18,
number: true,

@@ -248,3 +260,3 @@ min: 18, //the mimumum number required is 18

name: 'projects',
value: [],
defaultValue: [],
array: true,

@@ -262,7 +274,7 @@ max: 2 //the array shuld have maximum 2 elements

name: 'firstName',
value: '',
defaultValue: '',
},
countries: {
name: 'countries',
value: ['Kosovo', 'Albania', 'United States', 'Sweden'],
defaultValue: ['Kosovo', 'Albania', 'United States', 'Sweden'],
array: true // we will require value to be array

@@ -279,7 +291,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
email: {
name: 'email',
value: '',
defaultValue: '',
email: true // this value now will need to match an email pattern

@@ -296,7 +308,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
acceptTerms: {
name: 'acceptTerms',
value: false,
defaultValue: false,
boolean: true // this value needs to be boolean now

@@ -313,7 +325,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: '',
defaultValue: '',
regex : /^[a-zA-Z]+$/ //now the value should match the regex pattern

@@ -331,7 +343,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
birthday: {
name: 'birthday',
value: '',
defaultValue: '',
date: true // the value will need to be in a date format, and it will try to parse any format

@@ -341,3 +353,3 @@ },

name: 'startDate',
value: '',
defaultValue: '',
date: true, // the value will need to be in a date format

@@ -355,3 +367,3 @@ format: 'DD.MM.YYYY' // and will need to be in this format.

name: 'firstName',
value: '',
defaultValue: '',
greater: 2 // the value length should be more than 2

@@ -361,3 +373,3 @@ },

name: 'experience',
value: 3,
defaultValue: 3,
number: true,

@@ -368,3 +380,3 @@ greater: 2 // the number should be greater than 2

name: 'projects',
value: [],
defaultValue: [],
array: true,

@@ -382,3 +394,3 @@ greater: 2 //the array shuld have more than 2 elements

name: 'firstName',
value: '',,
defaultValue: '',,
less: 100 // the value length should be less than 100

@@ -388,3 +400,3 @@ },

name: 'experience',
value: 1,
defaultValue: 1,
number: true,

@@ -395,3 +407,3 @@ less: 2 // the number should be less than 2

name: 'projects',
value: [],
defaultValue: [],
array: true,

@@ -409,7 +421,7 @@ less: 4 //the array shuld have less than 4 elements

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'KOSOVO',
defaultValue: 'KOSOVO',
uppercase: true // now the value should be in uppercase

@@ -426,7 +438,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'kosovo',
defaultValue: 'kosovo',
lowercase: true // now the value should be in lowercase

@@ -443,7 +455,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
valid: 'Kosovo' //now the value should match the 'Kosovo' string

@@ -453,3 +465,3 @@ },

name: 'age',
value: 18,
defaultValue: 18,
number: true,

@@ -467,7 +479,7 @@ valid: 18 //now the value should be 18

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
is: ['Kosovo', 'Albania'] // now the value should be one of values in this array

@@ -484,7 +496,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
contains: 'os' // the value should contain 'os' string inside

@@ -501,7 +513,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
invalid: 'Africa' // the value should not be 'Africa'

@@ -518,7 +530,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
isNot: ['Africa', 'Australia'] // the value should not be one of the elements in this arrat

@@ -535,7 +547,7 @@ }

name: 'firstName',
value: '',
defaultValue: '',
},
country: {
name: 'country',
value: 'Kosovo',
defaultValue: 'Kosovo',
containsNot: 'a' //the value should not contain 'a'.

@@ -542,0 +554,0 @@ }

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