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

vue3-form-validation

Package Overview
Dependencies
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue3-form-validation - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6

34

dist/composable/useForm.js

@@ -1,16 +0,10 @@

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.provideBaseForm = exports.useBaseForm = exports.isKeyedRule = exports.isSimpleRule = void 0;
const vue_1 = require("vue");
const useUid_1 = __importDefault(require("./useUid"));
const Form_1 = __importDefault(require("../Form"));
exports.isSimpleRule = (rule) => typeof rule === 'function';
exports.isKeyedRule = (rule) => 'key' in rule && 'rule' in rule;
import { inject, onBeforeUnmount, provide, watch } from 'vue';
import useUid from './useUid';
import Form from '../Form';
export const isSimpleRule = (rule) => typeof rule === 'function';
export const isKeyedRule = (rule) => 'key' in rule && 'rule' in rule;
let registerFieldKey;
function useBaseForm(modelValue, rules) {
const uid = useUid_1.default();
const registerField = vue_1.inject(registerFieldKey);
export function useBaseForm(modelValue, rules) {
const uid = useUid();
const registerField = inject(registerFieldKey);
if (!registerField) {

@@ -30,10 +24,9 @@ throw Error('This component can only be used inside of the base form component');

}
exports.useBaseForm = useBaseForm;
function provideBaseForm() {
const form = new Form_1.default();
export function provideBaseForm() {
const form = new Form();
registerFieldKey = Symbol();
vue_1.provide(registerFieldKey, (uid, { modelValue, rules }) => {
provide(registerFieldKey, (uid, { modelValue, rules }) => {
const formField = form.registerField(uid, rules.value);
formField.modelValue = modelValue.value;
vue_1.watch(modelValue, async (modelValue) => {
watch(modelValue, async (modelValue) => {
formField.modelValue = modelValue;

@@ -44,3 +37,3 @@ if (formField.touched) {

});
vue_1.onBeforeUnmount(() => {
onBeforeUnmount(() => {
form.onDelete(uid);

@@ -63,2 +56,1 @@ });

}
exports.provideBaseForm = provideBaseForm;

@@ -1,7 +0,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
let uid = 1;
function useUid() {
export default function useUid() {
return uid++;
}
exports.default = useUid;

@@ -1,10 +0,5 @@

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const useForm_1 = require("./composable/useForm");
const FormField_1 = __importDefault(require("./FormField"));
const utils_1 = require("./utils");
class Form {
import { isSimpleRule } from './composable/useForm';
import FormField from './FormField';
import { tryGet, trySet } from './utils';
export default class Form {
constructor() {

@@ -15,6 +10,6 @@ this.simpleValidators = new Map();

registerField(uid, rules) {
const formField = new FormField_1.default(rules);
const formField = new FormField(rules);
const simple = rules.reduce((acc, rule, index) => {
const validate = this.makeValidate(formField, rule, index);
if (useForm_1.isSimpleRule(rule)) {
if (isSimpleRule(rule)) {
acc.validators.push(validate);

@@ -25,3 +20,3 @@ }

acc.keys.push(rule.key);
utils_1.trySet(this.keyedValidators)({
trySet(this.keyedValidators)({
failure: validators => {

@@ -32,3 +27,3 @@ validators.add(entry);

acc.rollback.push(() => {
utils_1.tryGet(this.keyedValidators)({
tryGet(this.keyedValidators)({
success: validators => {

@@ -70,3 +65,3 @@ validators.delete(entry);

let promise = Promise.allSettled([]);
utils_1.tryGet(this.simpleValidators)({
tryGet(this.simpleValidators)({
success: ({ formField, keys, validators }) => {

@@ -84,3 +79,3 @@ if (formField.touched) {

onDelete(uid) {
utils_1.tryGet(this.simpleValidators)({
tryGet(this.simpleValidators)({
success({ rollback }) {

@@ -94,3 +89,3 @@ rollback.forEach(r => r());

return keys.reduce((promises, key) => {
utils_1.tryGet(this.keyedValidators)({
tryGet(this.keyedValidators)({
success(validators) {

@@ -134,5 +129,4 @@ let everyFormFieldIsTouched = true;

};
return validator(formField)(index, useForm_1.isSimpleRule(rule) ? rule : rule.rule);
return validator(formField)(index, isSimpleRule(rule) ? rule : rule.rule);
}
}
exports.default = Form;

@@ -1,11 +0,9 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const vue_1 = require("vue");
import { computed, ref } from 'vue';
const notNull = (value) => value !== null;
class FormField {
export default class FormField {
constructor(rules) {
this.totalWaiting = vue_1.ref(0);
this.totalWaiting = ref(0);
this.errorCount = 0;
this.touched = false;
this.errors = vue_1.ref(rules.map(() => null));
this.errors = ref(rules.map(() => null));
this.waiting = rules.map(() => 0);

@@ -38,8 +36,7 @@ }

getErrors() {
return vue_1.computed(() => this.errors.value.filter(notNull));
return computed(() => this.errors.value.filter(notNull));
}
validating() {
return vue_1.computed(() => this.totalWaiting.value > 0);
return computed(() => this.totalWaiting.value > 0);
}
}
exports.default = FormField;

@@ -1,13 +0,1 @@

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./composable/useForm"), exports);
export * from './composable/useForm';

@@ -1,7 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tryGet = exports.trySet = void 0;
var trySet_1 = require("./map/trySet");
Object.defineProperty(exports, "trySet", { enumerable: true, get: function () { return trySet_1.trySet; } });
var tryGet_1 = require("./map/tryGet");
Object.defineProperty(exports, "tryGet", { enumerable: true, get: function () { return tryGet_1.tryGet; } });
export { trySet } from './map/trySet';
export { tryGet } from './map/tryGet';

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tryGet = void 0;
exports.tryGet = (map) => ({ success, failure }) => (key) => {
export const tryGet = (map) => ({ success, failure }) => (key) => {
const value = map.get(key);

@@ -6,0 +3,0 @@ if (value) {

@@ -1,5 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.trySet = void 0;
exports.trySet = (map) => ({ success, failure }) => (key, value) => {
export const trySet = (map) => ({ success, failure }) => (key, value) => {
const _value = map.get(key);

@@ -6,0 +3,0 @@ if (_value) {

{
"name": "vue3-form-validation",
"version": "1.0.5",
"description": "Vue 3 form validation",
"version": "1.0.6",
"description": "Form validation for Vue 3",
"author": {
"name": "jens",
"email": "jens@doellmann.com"
},
"repository": {
"type": "git",
"url": "https://github.com/JensD98/vue3-form-validation.git"
},
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"test": "jest",
"docs:dev": "cd docs && npx vitepress"
},
"files": [

@@ -15,11 +19,9 @@ "dist/**/*.js",

],
"repository": {
"type": "git",
"url": "git+https://github.com/JensD98/vue-form-validation.git"
"license": "ISC",
"scripts": {
"lint": "npx prettier --write .",
"test": "jest",
"dev": "vite",
"build": "vite build"
},
"author": {
"name": "jens",
"email": "jens@doellmann.com"
},
"license": "ISC",
"devDependencies": {

@@ -29,8 +31,10 @@ "@types/jest": "^26.0.15",

"@typescript-eslint/parser": "^4.6.0",
"@vue/compiler-sfc": "^3.0.2",
"eslint": "^7.12.1",
"jest": "^26.6.1",
"prettier": "2.1.2",
"prettier": "^2.1.2",
"ts-jest": "^26.4.3",
"typescript": "^4.0.5",
"vitepress": "^0.7.1"
"vite": "^1.0.0-rc.8",
"vue": "^3.0.2"
},

@@ -37,0 +41,0 @@ "prettier": {

# WIP
> Easy to use Form Validation for Vue 3

@@ -6,6 +7,7 @@

``` bash
```bash
npm i vue3-form-validation
```
Validation is async and is utilising `Promise.allSettled()`, which has not yet reached cross-browser stability ([see](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled)).
Example usage can be found in this [Code Sandbox](https://codesandbox.io/s/vue-3-form-validation-demo-busd9).
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