jordy 0.18.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm5/http-api/axios/AxiosHttpNetworkProvider.js +24 -17
- package/esm5/http-api/axios/AxiosHttpUploadProvider.js +1 -6
- package/esm5/util/index.js +0 -1
- package/esm5/validate/fn.js +19 -37
- package/esm5/validate/index.js +2 -4
- package/libs/http-api/axios/AxiosHttpNetworkProvider.d.ts +6 -7
- package/libs/http-api/axios/AxiosHttpUploadProvider.d.ts +0 -1
- package/libs/http-api/network.type.d.ts +0 -13
- package/libs/types/component.type.d.ts +1 -2
- package/libs/util/index.d.ts +0 -1
- package/libs/validate/fn.d.ts +23 -41
- package/libs/validate/index.d.ts +2 -55
- package/libs/validate/validate.d.ts +49 -0
- package/package.json +3 -4
- package/esm5/util/filter.js +0 -10
- package/libs/util/filter.d.ts +0 -2
package/README.md
CHANGED
|
@@ -8,45 +8,52 @@ var AxiosHttpNetworkProvider = (function () {
|
|
|
8
8
|
AxiosHttpNetworkProvider.prototype.extractData = function (axiosRes) {
|
|
9
9
|
return axiosRes.data;
|
|
10
10
|
};
|
|
11
|
-
AxiosHttpNetworkProvider.prototype.makeAxiosHeaders = function (headers) {
|
|
12
|
-
return {
|
|
13
|
-
common: headers,
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
11
|
AxiosHttpNetworkProvider.prototype.get = function (_a) {
|
|
17
|
-
var url = _a.url,
|
|
12
|
+
var url = _a.url, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "paramsSerializer"]);
|
|
18
13
|
return axios
|
|
19
|
-
.get(url, __assign(__assign({}, config), {
|
|
14
|
+
.get(url, __assign(__assign({}, config), { paramsSerializer: {
|
|
15
|
+
serialize: paramsSerializer,
|
|
16
|
+
} }))
|
|
20
17
|
.then(this.extractData);
|
|
21
18
|
};
|
|
22
19
|
AxiosHttpNetworkProvider.prototype.post = function (_a) {
|
|
23
|
-
var url = _a.url,
|
|
20
|
+
var url = _a.url, data = _a.params, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "params", "paramsSerializer"]);
|
|
24
21
|
return axios
|
|
25
|
-
.post(url, data, __assign(__assign({}, config), {
|
|
22
|
+
.post(url, data, __assign(__assign({}, config), { paramsSerializer: {
|
|
23
|
+
serialize: paramsSerializer,
|
|
24
|
+
} }))
|
|
26
25
|
.then(this.extractData);
|
|
27
26
|
};
|
|
28
27
|
AxiosHttpNetworkProvider.prototype.put = function (_a) {
|
|
29
|
-
var url = _a.url,
|
|
28
|
+
var url = _a.url, data = _a.params, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "params", "paramsSerializer"]);
|
|
30
29
|
return axios
|
|
31
|
-
.put(url, data, __assign(__assign({}, config), {
|
|
30
|
+
.put(url, data, __assign(__assign({}, config), { paramsSerializer: {
|
|
31
|
+
serialize: paramsSerializer,
|
|
32
|
+
} }))
|
|
32
33
|
.then(this.extractData);
|
|
33
34
|
};
|
|
34
35
|
AxiosHttpNetworkProvider.prototype.patch = function (_a) {
|
|
35
|
-
var url = _a.url,
|
|
36
|
+
var url = _a.url, data = _a.params, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "params", "paramsSerializer"]);
|
|
36
37
|
return axios
|
|
37
|
-
.patch(url, data, __assign(__assign({}, config), {
|
|
38
|
+
.patch(url, data, __assign(__assign({}, config), { paramsSerializer: {
|
|
39
|
+
serialize: paramsSerializer,
|
|
40
|
+
} }))
|
|
38
41
|
.then(this.extractData);
|
|
39
42
|
};
|
|
40
43
|
AxiosHttpNetworkProvider.prototype.delete = function (_a) {
|
|
41
|
-
var url = _a.url,
|
|
44
|
+
var url = _a.url, data = _a.params, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "params", "paramsSerializer"]);
|
|
42
45
|
return axios
|
|
43
|
-
.delete(url, __assign(__assign({}, config), { data: data,
|
|
46
|
+
.delete(url, __assign(__assign({}, config), { data: data, paramsSerializer: {
|
|
47
|
+
serialize: paramsSerializer,
|
|
48
|
+
} }))
|
|
44
49
|
.then(this.extractData);
|
|
45
50
|
};
|
|
46
51
|
AxiosHttpNetworkProvider.prototype.getBlob = function (_a) {
|
|
47
|
-
var url = _a.url,
|
|
52
|
+
var url = _a.url, paramsSerializer = _a.paramsSerializer, config = __rest(_a, ["url", "paramsSerializer"]);
|
|
48
53
|
return axios
|
|
49
|
-
.get(url, __assign(__assign({}, config), {
|
|
54
|
+
.get(url, __assign(__assign({}, config), { paramsSerializer: {
|
|
55
|
+
serialize: paramsSerializer,
|
|
56
|
+
}, responseType: 'blob' }))
|
|
50
57
|
.then(this.extractData);
|
|
51
58
|
};
|
|
52
59
|
AxiosHttpNetworkProvider = __decorate([
|
|
@@ -20,17 +20,12 @@ var AxiosHttpUploadProvider = (function () {
|
|
|
20
20
|
AxiosHttpUploadProvider.prototype.extractData = function (axiosRes) {
|
|
21
21
|
return axiosRes.data;
|
|
22
22
|
};
|
|
23
|
-
AxiosHttpUploadProvider.prototype.makeAxiosHeaders = function (headers) {
|
|
24
|
-
return {
|
|
25
|
-
common: headers,
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
23
|
AxiosHttpUploadProvider.prototype.upload = function (method, _a) {
|
|
29
24
|
var url = _a.url, data = _a.data, headers = _a.headers, withCredentials = _a.withCredentials, timeout = _a.timeout, onProgress = _a.onProgress;
|
|
30
25
|
return axios(url, {
|
|
31
26
|
method: method,
|
|
32
27
|
data: convertToFormData(data),
|
|
33
|
-
headers:
|
|
28
|
+
headers: headers,
|
|
34
29
|
withCredentials: withCredentials,
|
|
35
30
|
timeout: timeout,
|
|
36
31
|
onDownloadProgress: onProgress
|
package/esm5/util/index.js
CHANGED
package/esm5/validate/fn.js
CHANGED
|
@@ -1,66 +1,48 @@
|
|
|
1
1
|
import { isNullable } from '../util/typeCheck';
|
|
2
|
-
function required(val) {
|
|
2
|
+
export function required(val) {
|
|
3
3
|
return !isNullable(val) && !!val;
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
return
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return (length(7, 100)(val) && /^(\w|-|\.)+@\w+([.-]?\w+)*(\.\w{2,5})+$/.test(val));
|
|
5
|
+
export function length(min, max) {
|
|
6
|
+
return function (val) {
|
|
7
|
+
return required(val) && val.length >= min && val.length <= max;
|
|
8
|
+
};
|
|
10
9
|
}
|
|
11
|
-
function
|
|
12
|
-
return /^(
|
|
10
|
+
export function email(val) {
|
|
11
|
+
return (length(7, 100)(val) && /^(\w|-|\.)+@\w+([.-]?\w+)*(\.\w{2,5})+$/.test(val));
|
|
13
12
|
}
|
|
14
|
-
function password(val) {
|
|
15
|
-
return /^(?=.*[A-z])(?=.*[
|
|
13
|
+
export function password(val) {
|
|
14
|
+
return /^(?=.*[A-z])(?=.*[0-9])(?=.{8,20})/.test(val);
|
|
16
15
|
}
|
|
17
|
-
function lowercase(val) {
|
|
16
|
+
export function lowercase(val) {
|
|
18
17
|
return /^(?=.*[a-z])/.test(val);
|
|
19
18
|
}
|
|
20
|
-
function uppercase(val) {
|
|
19
|
+
export function uppercase(val) {
|
|
21
20
|
return /^(?=.*[A-Z])/.test(val);
|
|
22
21
|
}
|
|
23
|
-
function numbers(val) {
|
|
22
|
+
export function numbers(val) {
|
|
24
23
|
return /^(?=.*\d)/.test(val);
|
|
25
24
|
}
|
|
26
|
-
function symbols(val) {
|
|
25
|
+
export function symbols(val) {
|
|
27
26
|
return /^(?=.*[~!@#$%^&*()\-=+_';<>/.`:"\\,[\]?|{}])/.test(val);
|
|
28
27
|
}
|
|
29
|
-
function korAndEng(val) {
|
|
28
|
+
export function korAndEng(val) {
|
|
30
29
|
return /^([A-Za-z]|[가-힣]){2,100}$/.test(val);
|
|
31
30
|
}
|
|
32
|
-
function numberOnly(val) {
|
|
31
|
+
export function numberOnly(val) {
|
|
33
32
|
return /^[0-9]{1,}$/.test(val);
|
|
34
33
|
}
|
|
35
|
-
function range(min, max) {
|
|
34
|
+
export function range(min, max) {
|
|
36
35
|
return function innerRange(val) {
|
|
37
36
|
var num = Number(val);
|
|
38
37
|
return num >= min && num <= max;
|
|
39
38
|
};
|
|
40
39
|
}
|
|
41
|
-
function phoneWithDash(val) {
|
|
40
|
+
export function phoneWithDash(val) {
|
|
42
41
|
return /^(\d{4}-\d{4}|\d{2,3}-\d{3,4}-\d{3,4})$/.test(val);
|
|
43
42
|
}
|
|
44
|
-
function phone(val) {
|
|
43
|
+
export function phone(val) {
|
|
45
44
|
return length(8, 11)(val) && numbers(val);
|
|
46
45
|
}
|
|
47
|
-
function companyRegNumber(val) {
|
|
46
|
+
export function companyRegNumber(val) {
|
|
48
47
|
return /^\d{3}-\d{2}-\d{5}$/.test(val);
|
|
49
48
|
}
|
|
50
|
-
export default {
|
|
51
|
-
required: required,
|
|
52
|
-
email: email,
|
|
53
|
-
passwordWeak: passwordWeak,
|
|
54
|
-
password: password,
|
|
55
|
-
lowercase: lowercase,
|
|
56
|
-
uppercase: uppercase,
|
|
57
|
-
numbers: numbers,
|
|
58
|
-
symbols: symbols,
|
|
59
|
-
korAndEng: korAndEng,
|
|
60
|
-
numberOnly: numberOnly,
|
|
61
|
-
range: range,
|
|
62
|
-
phoneWithDash: phoneWithDash,
|
|
63
|
-
phone: phone,
|
|
64
|
-
companyRegNumber: companyRegNumber,
|
|
65
|
-
length: length,
|
|
66
|
-
};
|
package/esm5/validate/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export var validate = validateOrigin;
|
|
4
|
-
validate.fn = fn;
|
|
1
|
+
export * as validateFn from './fn';
|
|
2
|
+
export { validate } from './validate';
|
|
5
3
|
export * from './mergeValidates';
|
|
6
4
|
export * from './validate.type';
|
|
7
5
|
export * from './useValidate';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { AsyncHttpNetworkConfig, AsyncHttpNetworkProvider } from '../network.type';
|
|
2
2
|
export declare class AxiosHttpNetworkProvider implements AsyncHttpNetworkProvider {
|
|
3
3
|
private extractData;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
getBlob({ url, headers, ...config }: AsyncHttpNetworkConfig): Promise<Blob>;
|
|
4
|
+
get<T>({ url, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<T>;
|
|
5
|
+
post<T>({ url, params: data, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<T>;
|
|
6
|
+
put<T>({ url, params: data, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<T>;
|
|
7
|
+
patch<T>({ url, params: data, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<T>;
|
|
8
|
+
delete<T>({ url, params: data, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<T>;
|
|
9
|
+
getBlob({ url, paramsSerializer, ...config }: AsyncHttpNetworkConfig): Promise<Blob>;
|
|
11
10
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AsyncHttpUploadConfig, AsyncHttpUploadProvider } from '../network.type';
|
|
2
2
|
export declare class AxiosHttpUploadProvider implements AsyncHttpUploadProvider {
|
|
3
3
|
private extractData;
|
|
4
|
-
private makeAxiosHeaders;
|
|
5
4
|
private handleDownloadProgressCurried;
|
|
6
5
|
private upload;
|
|
7
6
|
post<T>(config: AsyncHttpUploadConfig): Promise<T>;
|
|
@@ -23,19 +23,6 @@ export interface UploadStateArgs {
|
|
|
23
23
|
*/
|
|
24
24
|
completed: boolean;
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Axios 에서 업로드 상태 전달 콜백에 인자로 들어오는 이벤트 객체.
|
|
28
|
-
*/
|
|
29
|
-
export interface XhrUploadStateArgs {
|
|
30
|
-
/**
|
|
31
|
-
* 업로드 된 바이트 수
|
|
32
|
-
*/
|
|
33
|
-
loaded: number;
|
|
34
|
-
/**
|
|
35
|
-
* 업로드 되어야 할 전체 바이트 수
|
|
36
|
-
*/
|
|
37
|
-
total: number;
|
|
38
|
-
}
|
|
39
26
|
export interface HttpRestApi {
|
|
40
27
|
/**
|
|
41
28
|
* GET 메서드 호출
|
|
@@ -5,8 +5,7 @@ export interface InputChangeArgs {
|
|
|
5
5
|
export interface RowInputChangeArgs extends InputChangeArgs {
|
|
6
6
|
index: number;
|
|
7
7
|
}
|
|
8
|
-
export interface CheckedChangeArgs {
|
|
9
|
-
name: string;
|
|
8
|
+
export interface CheckedChangeArgs extends InputChangeArgs {
|
|
10
9
|
checked: boolean;
|
|
11
10
|
}
|
|
12
11
|
export interface SelectOptionItemModel {
|
package/libs/util/index.d.ts
CHANGED
package/libs/validate/fn.d.ts
CHANGED
|
@@ -5,63 +5,63 @@
|
|
|
5
5
|
* @param val
|
|
6
6
|
* @returns 비어있지 않다면 true, 아니면 false.
|
|
7
7
|
*/
|
|
8
|
-
declare function required(val: string): boolean;
|
|
8
|
+
export declare function required(val: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* 값의 길이를 확인한다.
|
|
11
|
+
* 기본적으로 내부에 validEmpty 를 함께 수행 한다.
|
|
12
|
+
* @param min 최소 길이
|
|
13
|
+
* @param max 최대 길이
|
|
14
|
+
*/
|
|
15
|
+
export declare function length(min: number, max: number): (val: string) => boolean;
|
|
9
16
|
/**
|
|
10
17
|
* 이메일 유효성을 검증한다.
|
|
11
18
|
* 좌측에 숫자/문자/ 언더바(_) 및 하이픈(-) 만 허용한다.
|
|
12
19
|
* 내부적으로 validLength 를 수행하여 7~100 자 까지 인지를 함께 검증한다.
|
|
13
20
|
* @param val
|
|
14
21
|
*/
|
|
15
|
-
declare function email(val: string): boolean;
|
|
22
|
+
export declare function email(val: string): boolean;
|
|
16
23
|
/**
|
|
17
|
-
* 비밀번호의 유효성을 체크한다.
|
|
24
|
+
* 비밀번호의 유효성을 체크한다.
|
|
18
25
|
* 숫자, 영문 각각 1자 이상 포함되고
|
|
19
|
-
* 총 길이가
|
|
20
|
-
* @param val
|
|
21
|
-
*/
|
|
22
|
-
declare function passwordWeak(val: string): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* 비밀번호의 유효성을 체크한다. - 강력 버전 - -
|
|
25
|
-
* 숫자, 영문 대/소문자 및 특수문자가 모두 최소 1자 이상 포함되고
|
|
26
|
-
* 총 길이가 6자~32자 까지 인지를 확인한다.
|
|
26
|
+
* 총 길이가 8자~20자 까지 인지를 확인한다.
|
|
27
27
|
* @param val
|
|
28
28
|
*/
|
|
29
|
-
declare function password(val: string): boolean;
|
|
29
|
+
export declare function password(val: string): boolean;
|
|
30
30
|
/**
|
|
31
31
|
* 소문자가 존재하는지 체크한다.
|
|
32
32
|
* @param val
|
|
33
33
|
*/
|
|
34
|
-
declare function lowercase(val: string): boolean;
|
|
34
|
+
export declare function lowercase(val: string): boolean;
|
|
35
35
|
/**
|
|
36
36
|
* 대문자가 존재하는지 체크한다.
|
|
37
37
|
* @param val
|
|
38
38
|
*/
|
|
39
|
-
declare function uppercase(val: string): boolean;
|
|
39
|
+
export declare function uppercase(val: string): boolean;
|
|
40
40
|
/**
|
|
41
41
|
* 숫자가 존재하는지 체크한다.
|
|
42
42
|
* @param val
|
|
43
43
|
*/
|
|
44
|
-
declare function numbers(val: string): boolean;
|
|
44
|
+
export declare function numbers(val: string): boolean;
|
|
45
45
|
/**
|
|
46
46
|
* 특수문자가 존재하는지 체크한다.
|
|
47
47
|
* @param val
|
|
48
48
|
*/
|
|
49
|
-
declare function symbols(val: string): boolean;
|
|
49
|
+
export declare function symbols(val: string): boolean;
|
|
50
50
|
/**
|
|
51
51
|
* 한글 또는 영문으로 2글자 이상, 100글자 이하인지 확인한다.
|
|
52
52
|
* @param val 확인할 값
|
|
53
53
|
*/
|
|
54
|
-
declare function korAndEng(val: string): boolean;
|
|
54
|
+
export declare function korAndEng(val: string): boolean;
|
|
55
55
|
/**
|
|
56
56
|
* 번호 유효성을 체크 한다.
|
|
57
57
|
* 값은 번호만 이뤄져 있어야 하며 앞이 0으로 채워져 있어도 유효하다.
|
|
58
58
|
* @param val 확인할 값
|
|
59
59
|
*/
|
|
60
|
-
declare function numberOnly(val: string): boolean;
|
|
60
|
+
export declare function numberOnly(val: string): boolean;
|
|
61
61
|
/**
|
|
62
62
|
* 특정범위의 값인지 여부를 확인한다.
|
|
63
63
|
* ```ts
|
|
64
|
-
* const checker =
|
|
64
|
+
* const checker = validateFn.range(10, 100);
|
|
65
65
|
*
|
|
66
66
|
* checker(50); // true
|
|
67
67
|
* checker(9); // false
|
|
@@ -71,41 +71,23 @@ declare function numberOnly(val: string): boolean;
|
|
|
71
71
|
* @param max
|
|
72
72
|
* @returns
|
|
73
73
|
*/
|
|
74
|
-
declare function range(min: number, max: number): (val: string | number) => boolean;
|
|
74
|
+
export declare function range(min: number, max: number): (val: string | number) => boolean;
|
|
75
75
|
/**
|
|
76
76
|
* 전화번호 유효성을 체크 한다.
|
|
77
77
|
*
|
|
78
78
|
* 중간에 dash (-) 가 있어야 한다.
|
|
79
79
|
* @param val 확인할 값
|
|
80
80
|
*/
|
|
81
|
-
declare function phoneWithDash(val: string): boolean;
|
|
81
|
+
export declare function phoneWithDash(val: string): boolean;
|
|
82
82
|
/**
|
|
83
83
|
* 전화번호 유효성을 체크 한다.
|
|
84
84
|
* 숫자로만 이뤄져 있어야하며, 최소 8자리, 최대 11자리 까지 허용 된다.
|
|
85
85
|
*
|
|
86
86
|
* @param val 확인할 값
|
|
87
87
|
*/
|
|
88
|
-
declare function phone(val: string): boolean;
|
|
88
|
+
export declare function phone(val: string): boolean;
|
|
89
89
|
/**
|
|
90
90
|
* 사업자 등록번호 유효성을 검증한다.
|
|
91
91
|
* @param val
|
|
92
92
|
*/
|
|
93
|
-
declare function companyRegNumber(val: string): boolean;
|
|
94
|
-
declare const _default: {
|
|
95
|
-
required: typeof required;
|
|
96
|
-
email: typeof email;
|
|
97
|
-
passwordWeak: typeof passwordWeak;
|
|
98
|
-
password: typeof password;
|
|
99
|
-
lowercase: typeof lowercase;
|
|
100
|
-
uppercase: typeof uppercase;
|
|
101
|
-
numbers: typeof numbers;
|
|
102
|
-
symbols: typeof symbols;
|
|
103
|
-
korAndEng: typeof korAndEng;
|
|
104
|
-
numberOnly: typeof numberOnly;
|
|
105
|
-
range: typeof range;
|
|
106
|
-
phoneWithDash: typeof phoneWithDash;
|
|
107
|
-
phone: typeof phone;
|
|
108
|
-
companyRegNumber: typeof companyRegNumber;
|
|
109
|
-
length: (min: number, max: number) => (val: string) => boolean;
|
|
110
|
-
};
|
|
111
|
-
export default _default;
|
|
93
|
+
export declare function companyRegNumber(val: string): boolean;
|
package/libs/validate/index.d.ts
CHANGED
|
@@ -1,58 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
declare type ValidationCheckerType = typeof validateOrigin & {
|
|
4
|
-
fn: typeof fn;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* @description
|
|
8
|
-
* 유효성 여부를 한번에 확인 한다.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* import { validate } from 'jordy';
|
|
13
|
-
*
|
|
14
|
-
interface UserModel {
|
|
15
|
-
name: string;
|
|
16
|
-
phone: string;
|
|
17
|
-
password: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function validateUserModel(user: UserModel) {
|
|
21
|
-
const result = validate(user, {
|
|
22
|
-
// 한가지 검증일 땐 객체로 넘겨준다.
|
|
23
|
-
name: {
|
|
24
|
-
// check 가 false 일 때 알려줄 메시지
|
|
25
|
-
message: '이름을 채워주세요.',
|
|
26
|
-
// 유효성 검사. 결과가 true 면 유효성이 검증된 것이다.
|
|
27
|
-
check: val => validate.fn.empty(val),
|
|
28
|
-
},
|
|
29
|
-
// phone 이 필수가 아니라면 생략한다.
|
|
30
|
-
|
|
31
|
-
// 여러가지 형태를 검증하고 메시지를 다르게 주고 싶을 땐 배열로 넘겨준다.
|
|
32
|
-
password: [
|
|
33
|
-
{
|
|
34
|
-
message: '비밀번호를 입력하세요',
|
|
35
|
-
check: val => validate.fn.empty(val),
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
message: '비밀번호가 유효하지 않습니다.',
|
|
39
|
-
check: val => validate.fn.password(val),
|
|
40
|
-
},
|
|
41
|
-
]
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
console.log(result.isValid); // true 면 모든 유효성 통과.
|
|
45
|
-
console.log(result.firstMessage); // 검증 중 가장 첫번째로 나타난 에러 메시지
|
|
46
|
-
console.log(result.results); // 각 필드별 결과
|
|
47
|
-
// 자세한건 `ValidateBulkResultModel` 참고
|
|
48
|
-
}
|
|
49
|
-
* ```
|
|
50
|
-
* @param state 유효성 체크 할 값이 모여있는 객체.
|
|
51
|
-
* @param opt 유효성 체크 옵션.
|
|
52
|
-
*
|
|
53
|
-
* @see ValidateBulkResultModel
|
|
54
|
-
*/
|
|
55
|
-
export declare const validate: ValidationCheckerType;
|
|
1
|
+
export * as validateFn from './fn';
|
|
2
|
+
export { validate } from './validate';
|
|
56
3
|
export * from './mergeValidates';
|
|
57
4
|
export * from './validate.type';
|
|
58
5
|
export * from './useValidate';
|
|
@@ -1,2 +1,51 @@
|
|
|
1
1
|
import { ValidateBulkOptionType, ValidateBulkResultModel } from './validate.type';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* 유효성 여부를 한번에 확인 한다.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { validate, validateFn } from 'jordy';
|
|
9
|
+
*
|
|
10
|
+
interface UserModel {
|
|
11
|
+
name: string;
|
|
12
|
+
phone: string;
|
|
13
|
+
password: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function validateUserModel(user: UserModel) {
|
|
17
|
+
const result = validate(user, {
|
|
18
|
+
// 한가지 검증일 땐 객체로 넘겨준다.
|
|
19
|
+
name: {
|
|
20
|
+
// check 가 false 일 때 알려줄 메시지
|
|
21
|
+
message: '이름을 채워주세요.',
|
|
22
|
+
// 유효성 검사. 결과가 true 면 유효성이 검증된 것이다.
|
|
23
|
+
check: val => validateFn.empty(val),
|
|
24
|
+
},
|
|
25
|
+
// phone 이 필수가 아니라면 생략한다.
|
|
26
|
+
|
|
27
|
+
// 여러가지 형태를 검증하고 메시지를 다르게 주고 싶을 땐 배열로 넘겨준다.
|
|
28
|
+
password: [
|
|
29
|
+
{
|
|
30
|
+
message: '비밀번호를 입력하세요',
|
|
31
|
+
check: val => validateFn.empty(val),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
message: '비밀번호가 유효하지 않습니다.',
|
|
35
|
+
check: val => validateFn.password(val),
|
|
36
|
+
},
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
console.log(result.isValid); // true 면 모든 유효성 통과.
|
|
41
|
+
console.log(result.firstMessage); // 검증 중 가장 첫번째로 나타난 에러 메시지
|
|
42
|
+
console.log(result.results); // 각 필드별 결과
|
|
43
|
+
// 자세한건 `ValidateBulkResultModel` 참고
|
|
44
|
+
}
|
|
45
|
+
* ```
|
|
46
|
+
* @param state 유효성 체크 할 값이 모여있는 객체.
|
|
47
|
+
* @param opt 유효성 체크 옵션.
|
|
48
|
+
*
|
|
49
|
+
* @see ValidateBulkResultModel
|
|
50
|
+
*/
|
|
2
51
|
export declare function validate<T>(state: T, opt: ValidateBulkOptionType<T>): ValidateBulkResultModel;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jordy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "typescript based frontend toolkit",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
"@reduxjs/toolkit": "^1.8.5",
|
|
31
31
|
"@testing-library/jest-dom": "^5.16.5",
|
|
32
32
|
"@testing-library/react": "^13.3.0",
|
|
33
|
-
"@types/lodash-es": "^4.17.6",
|
|
34
33
|
"@types/react": "^18.0.17",
|
|
35
34
|
"@types/react-dom": "^18.0.6",
|
|
36
35
|
"@types/react-router-dom": "^5.3.3",
|
|
@@ -38,11 +37,11 @@
|
|
|
38
37
|
"@typescript-eslint/parser": "^4.32.0",
|
|
39
38
|
"@vitejs/plugin-legacy": "^2.0.0",
|
|
40
39
|
"@vitejs/plugin-react": "^2.0.0",
|
|
41
|
-
"axios": "^
|
|
40
|
+
"axios": "^1.3.2",
|
|
42
41
|
"eslint": "^7.32.0",
|
|
43
42
|
"eslint-config-prettier": "^8.3.0",
|
|
44
43
|
"eslint-plugin-react": "^7.26.0",
|
|
45
|
-
"
|
|
44
|
+
"jsdom": "^21.1.0",
|
|
46
45
|
"npm-run-all": "^4.1.5",
|
|
47
46
|
"prettier": "^2.4.1",
|
|
48
47
|
"react": "^18.2.0",
|
package/esm5/util/filter.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import _throttle from 'lodash-es/throttle';
|
|
2
|
-
import _debounce from 'lodash-es/debounce';
|
|
3
|
-
export function throttle(func, wait) {
|
|
4
|
-
if (wait === void 0) { wait = 300; }
|
|
5
|
-
return _throttle(func, wait, { trailing: false });
|
|
6
|
-
}
|
|
7
|
-
export function debounce(func, wait) {
|
|
8
|
-
if (wait === void 0) { wait = 300; }
|
|
9
|
-
return _debounce(func, wait);
|
|
10
|
-
}
|
package/libs/util/filter.d.ts
DELETED