Skip to content

Commit 17a23c3

Browse files
modified transformToYup
1 parent e6c43a4 commit 17a23c3

File tree

12 files changed

+140
-37
lines changed

12 files changed

+140
-37
lines changed

lib/bootstrap/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const ValidationBuilderEditor = ({ data, onChange, className = "", config, pillS
4040
fields && fields.map((field, key) => (react_1.default.createElement("div", { className: "row align-items-center mb-3", key: key },
4141
react_1.default.createElement("div", { className: "col-sm-3 d-flex align-items-center", style: { marginTop: 5 } },
4242
react_1.default.createElement("div", { className: "validate-editor-container-remove-field" },
43-
react_1.default.createElement("button", { type: "button", className: "btn btn-danger btn-sm", onClick: onRemoveField }, (config === null || config === void 0 ? void 0 : config.removeField) ?
43+
react_1.default.createElement("button", { type: "button", className: "btn btn-danger btn-sm", onClick: () => onRemoveField(key) }, (config === null || config === void 0 ? void 0 : config.removeField) ?
4444
react_1.default.createElement(react_1.default.Fragment, null,
4545
config.removeField.icon && react_1.default.createElement("i", { className: config === null || config === void 0 ? void 0 : config.removeField.icon }),
4646
config.removeField.text && config.removeField.text)

lib/custom/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const ValidationBuilderEditor = ({ data, onChange, className = "", config, pillS
4040
fields && fields.map((field, key) => (react_1.default.createElement("div", { className: "validate-builder-TC-container-fields", key: key },
4141
react_1.default.createElement("div", { className: "validate-builder-TC-fields-remove", style: { marginTop: 5 } },
4242
react_1.default.createElement("div", { className: "validate-editor-container-remove-field" },
43-
react_1.default.createElement("button", { type: "button", className: "validate-editor-button", onClick: onRemoveField }, (config === null || config === void 0 ? void 0 : config.removeField) ?
43+
react_1.default.createElement("button", { type: "button", className: "validate-editor-button", onClick: () => onRemoveField(key) }, (config === null || config === void 0 ? void 0 : config.removeField) ?
4444
react_1.default.createElement(react_1.default.Fragment, null,
4545
config.removeField.icon && react_1.default.createElement("i", { className: config === null || config === void 0 ? void 0 : config.removeField.icon }),
4646
config.removeField.text && config.removeField.text)

lib/hooks/useActionsField.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const useActionsField = (data, onChange) => {
1010
(0, react_1.useEffect)(() => setValues(data), [data]);
1111
const onAddField = (0, react_1.useCallback)(() => {
1212
let copyValues = Object.assign({}, values);
13-
let keys = Object.keys(copyValues).length;
13+
let keys = Object.keys(copyValues).length + 1;
1414
copyValues[`field${keys}`] = { type: "string", fieldKey: `field${keys}` };
1515
setValues(copyValues);
1616
}, [values]);

lib/transformYup/searchType.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,33 @@
11
"use strict";
2+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3+
if (k2 === undefined) k2 = k;
4+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5+
}) : (function(o, m, k, k2) {
6+
if (k2 === undefined) k2 = k;
7+
o[k2] = m[k];
8+
}));
9+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10+
Object.defineProperty(o, "default", { enumerable: true, value: v });
11+
}) : function(o, v) {
12+
o["default"] = v;
13+
});
14+
var __importStar = (this && this.__importStar) || function (mod) {
15+
if (mod && mod.__esModule) return mod;
16+
var result = {};
17+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18+
__setModuleDefault(result, mod);
19+
return result;
20+
};
221
Object.defineProperty(exports, "__esModule", { value: true });
322
exports.searchYupType = void 0;
23+
const yup = __importStar(require("yup"));
424
const types = {
5-
"string": "yup.string().",
6-
"number": "yup.number().",
7-
"date": "yup.date().",
8-
"boolean": "yup.boolean()."
25+
"string": yup.string,
26+
"number": yup.number,
27+
"date": yup.date,
28+
"boolean": yup.boolean
929
};
1030
const searchYupType = (type) => {
11-
return types[type];
31+
return types[type]();
1232
};
1333
exports.searchYupType = searchYupType;

lib/transformYup/transformYup.js

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
2020
};
2121
Object.defineProperty(exports, "__esModule", { value: true });
2222
const yup = __importStar(require("yup"));
23-
const getKeys_1 = require("./getKeys");
23+
// import { DataInterface } from '../interfaces/ValidationBuilderEditorInterface';
24+
// import { getKeys } from './getKeys';
2425
const searchType_1 = require("./searchType");
2526
const transformSchemaToYup = (data) => {
2627
return yup.object().shape(Object.assign({}, transformSchema(data)));
@@ -31,16 +32,55 @@ const transformSchema = (data) => {
3132
for (const key in data) {
3233
let nameField = key;
3334
let values = data[key];
34-
let yupType = (0, searchType_1.searchYupType)(values.type) || "";
35+
let fieldValidation = (0, searchType_1.searchYupType)(values.type);
3536
delete values.fieldKey;
3637
delete values.type;
37-
if (yupType) {
38-
let keysValidation = Object.keys(values);
39-
let structureFunction = `return ${yupType}${(0, getKeys_1.getKeys)(keysValidation, values)}`;
40-
console.log(structureFunction);
41-
let getSchema = new Function("yup", structureFunction);
42-
schema = Object.assign(Object.assign({}, schema), { [nameField]: getSchema(yup) });
38+
if (values.required) {
39+
fieldValidation = fieldValidation.required(values.required.message);
4340
}
41+
if (values.min) {
42+
fieldValidation = fieldValidation.min(values.min.limit, values.min.message);
43+
}
44+
if (values.max) {
45+
fieldValidation = fieldValidation.max(values.max.limit, values.max.message);
46+
}
47+
if (values.matches) {
48+
fieldValidation = fieldValidation.matches(values.matches.regex, values.matches.message);
49+
}
50+
if (values.email) {
51+
fieldValidation = fieldValidation.email(values.email.message);
52+
}
53+
if (values.url) {
54+
fieldValidation = fieldValidation.url(values.url.message);
55+
}
56+
if (values.uuid) {
57+
fieldValidation = fieldValidation.uuid(values.uuid.message);
58+
}
59+
if (values.trim) {
60+
fieldValidation = fieldValidation.trim(values.trim.message);
61+
}
62+
if (values.lowercase) {
63+
fieldValidation = fieldValidation.lowercase(values.lowercase.message);
64+
}
65+
if (values.uppercase) {
66+
fieldValidation = fieldValidation.uppercase(values.uppercase.message);
67+
}
68+
if (values.lessThan) {
69+
fieldValidation = fieldValidation.lessThan(values.lessThan.max, values.lessThan.message);
70+
}
71+
if (values.moreThan) {
72+
fieldValidation = fieldValidation.moreThan(values.moreThan.min, values.moreThan.message);
73+
}
74+
if (values.positive) {
75+
fieldValidation = fieldValidation.positive(values.positive.message);
76+
}
77+
if (values.negative) {
78+
fieldValidation = fieldValidation.negative(values.negative.message);
79+
}
80+
if (values.integer) {
81+
fieldValidation = fieldValidation.integer(values.integer.message);
82+
}
83+
schema = Object.assign(Object.assign({}, schema), { [nameField]: fieldValidation });
4484
}
4585
}
4686
return schema;

lib/utils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ exports.types = {
3232
],
3333
"date": [
3434
{ name: "required", fieldType: "boolean" },
35-
{ name: "min", key: "min", fieldType: "date" },
36-
{ name: "max", key: "max", fieldType: "date" }
35+
{ name: "min", key: "limit", fieldType: "date" },
36+
{ name: "max", key: "limit", fieldType: "date" }
3737
],
3838
"boolean": [
3939
{ name: "required", fieldType: "boolean" },

src/bootstrap/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const ValidationBuilderEditor = ({ data, onChange, className = "", config
4343
<div className="row align-items-center mb-3" key={key}>
4444
<div className="col-sm-3 d-flex align-items-center" style={{ marginTop: 5 }}>
4545
<div className="validate-editor-container-remove-field">
46-
<button type="button" className="btn btn-danger btn-sm" onClick={onRemoveField}>
46+
<button type="button" className="btn btn-danger btn-sm" onClick={() => onRemoveField(key)}>
4747
{config?.removeField ?
4848
<React.Fragment>
4949
{config.removeField.icon && <i className={config?.removeField.icon} />}

src/custom/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const ValidationBuilderEditor = ({ data, onChange, className = "", config
4343
<div className="validate-builder-TC-container-fields" key={key}>
4444
<div className="validate-builder-TC-fields-remove" style={{ marginTop: 5 }}>
4545
<div className="validate-editor-container-remove-field">
46-
<button type="button" className="validate-editor-button" onClick={onRemoveField}>
46+
<button type="button" className="validate-editor-button" onClick={() => onRemoveField(key)}>
4747
{config?.removeField ?
4848
<React.Fragment>
4949
{config.removeField.icon && <i className={config?.removeField.icon} />}

src/hooks/useActionsField.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ export const useActionsField = (data, onChange) => {
1010

1111
const onAddField = useCallback(() => {
1212
let copyValues = {...values};
13-
let keys = Object.keys(copyValues).length;
13+
let keys = Object.keys(copyValues).length + 1;
1414
copyValues[`field${keys}`] = {type: "string", fieldKey: `field${keys}`};
15-
setValues(copyValues);
15+
setValues(copyValues)
1616
}, [values]);
1717

1818
const onRemoveField = useCallback((index) => {

src/transformYup/searchType.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import * as yup from 'yup';
22

33
const types = {
4-
"string": "yup.string().",
5-
"number": "yup.number().",
6-
"date": "yup.date().",
7-
"boolean": "yup.boolean()."
4+
"string": yup.string,
5+
"number": yup.number,
6+
"date": yup.date,
7+
"boolean": yup.boolean
88
}
99

1010
export const searchYupType = (type) => {
11-
return types[type];
11+
return types[type]();
1212
}

0 commit comments

Comments
 (0)