xanv 1.1.11 → 1.1.13
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/XanvType.cjs +62 -0
- package/XanvType.cjs.map +1 -0
- package/XanvType.d.ts +20 -14
- package/XanvType.js +60 -54
- package/XanvType.js.map +1 -1
- package/index.cjs +61 -0
- package/index.cjs.map +1 -0
- package/index.d.ts +25 -29
- package/index.js +41 -17
- package/index.js.map +1 -1
- package/package.json +4 -19
- package/readme.md +199 -199
- package/types/Any.cjs +16 -0
- package/types/Any.cjs.map +1 -0
- package/types/Any.d.ts +3 -3
- package/types/Any.js +14 -6
- package/types/Any.js.map +1 -1
- package/types/Array.cjs +66 -0
- package/types/Array.cjs.map +1 -0
- package/types/Array.d.ts +9 -9
- package/types/Array.js +64 -80
- package/types/Array.js.map +1 -1
- package/types/Boolean.cjs +15 -0
- package/types/Boolean.cjs.map +1 -0
- package/types/Boolean.d.ts +2 -2
- package/types/Boolean.js +13 -7
- package/types/Boolean.js.map +1 -1
- package/types/{Date.mjs → Date.cjs} +15 -7
- package/types/Date.cjs.map +1 -0
- package/types/Date.d.ts +2 -2
- package/types/Date.js +13 -7
- package/types/Date.js.map +1 -1
- package/types/Enum.cjs +28 -0
- package/types/Enum.cjs.map +1 -0
- package/types/Enum.d.ts +4 -5
- package/types/Enum.js +26 -25
- package/types/Enum.js.map +1 -1
- package/types/File.cjs +62 -0
- package/types/File.cjs.map +1 -0
- package/types/File.d.ts +8 -8
- package/types/File.js +60 -52
- package/types/File.js.map +1 -1
- package/types/Function.cjs +33 -0
- package/types/Function.cjs.map +1 -0
- package/types/Function.d.ts +15 -0
- package/types/Function.js +31 -0
- package/types/Function.js.map +1 -0
- package/types/Json.cjs +19 -0
- package/types/Json.cjs.map +1 -0
- package/types/Json.d.ts +3 -3
- package/types/Json.js +17 -11
- package/types/Json.js.map +1 -1
- package/types/Map.cjs +31 -0
- package/types/Map.cjs.map +1 -0
- package/types/Map.d.ts +6 -6
- package/types/Map.js +29 -23
- package/types/Map.js.map +1 -1
- package/types/{Number.mjs → Number.cjs} +77 -67
- package/types/Number.cjs.map +1 -0
- package/types/Number.d.ts +10 -10
- package/types/Number.js +75 -67
- package/types/Number.js.map +1 -1
- package/types/Object.cjs +22 -0
- package/types/Object.cjs.map +1 -0
- package/types/Object.d.ts +11 -5
- package/types/Object.js +20 -26
- package/types/Object.js.map +1 -1
- package/types/Promise.cjs +29 -0
- package/types/Promise.cjs.map +1 -0
- package/types/Promise.d.ts +11 -0
- package/types/Promise.js +27 -0
- package/types/Promise.js.map +1 -0
- package/types/{Record.mjs → Record.cjs} +31 -24
- package/types/Record.cjs.map +1 -0
- package/types/Record.d.ts +7 -7
- package/types/Record.js +29 -24
- package/types/Record.js.map +1 -1
- package/types/{Set.mjs → Set.cjs} +41 -33
- package/types/Set.cjs.map +1 -0
- package/types/Set.d.ts +6 -6
- package/types/Set.js +39 -33
- package/types/Set.js.map +1 -1
- package/types/{String.mjs → String.cjs} +95 -87
- package/types/String.cjs.map +1 -0
- package/types/String.d.ts +12 -12
- package/types/String.js +93 -87
- package/types/String.js.map +1 -1
- package/types/Tuple.cjs +31 -0
- package/types/Tuple.cjs.map +1 -0
- package/types/Tuple.d.ts +9 -5
- package/types/Tuple.js +29 -23
- package/types/Tuple.js.map +1 -1
- package/types/Union.cjs +34 -0
- package/types/Union.cjs.map +1 -0
- package/types/Union.d.ts +5 -4
- package/types/Union.js +32 -28
- package/types/Union.js.map +1 -1
- package/types.d.ts +29 -10
- package/XanvType.mjs +0 -54
- package/XanvType.mjs.map +0 -1
- package/index.mjs +0 -17
- package/index.mjs.map +0 -1
- package/types/Any.mjs +0 -6
- package/types/Any.mjs.map +0 -1
- package/types/Array.mjs +0 -80
- package/types/Array.mjs.map +0 -1
- package/types/Boolean.mjs +0 -7
- package/types/Boolean.mjs.map +0 -1
- package/types/Date.mjs.map +0 -1
- package/types/Enum.mjs +0 -25
- package/types/Enum.mjs.map +0 -1
- package/types/File.mjs +0 -52
- package/types/File.mjs.map +0 -1
- package/types/Json.mjs +0 -11
- package/types/Json.mjs.map +0 -1
- package/types/Map.mjs +0 -23
- package/types/Map.mjs.map +0 -1
- package/types/Number.mjs.map +0 -1
- package/types/Object.mjs +0 -26
- package/types/Object.mjs.map +0 -1
- package/types/Record.mjs.map +0 -1
- package/types/Set.mjs.map +0 -1
- package/types/String.mjs.map +0 -1
- package/types/Tuple.mjs +0 -23
- package/types/Tuple.mjs.map +0 -1
- package/types/Union.mjs +0 -28
- package/types/Union.mjs.map +0 -1
|
@@ -1,33 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var XanvType = require('../XanvType.cjs');
|
|
4
|
+
|
|
5
|
+
class XVSet extends XanvType {
|
|
6
|
+
constructor(XVtype) {
|
|
7
|
+
super();
|
|
8
|
+
this.XVtype = XVtype;
|
|
9
|
+
}
|
|
10
|
+
check(value) {
|
|
11
|
+
if (!(value instanceof Set)) {
|
|
12
|
+
throw new Error(`Value should be a Set, received ${typeof value}`);
|
|
13
|
+
}
|
|
14
|
+
for (const item of Array.from(value)) {
|
|
15
|
+
try {
|
|
16
|
+
this.XVtype.parse(item);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
min(length) {
|
|
25
|
+
return this.set("min", (v) => {
|
|
26
|
+
if (v.size < length) {
|
|
27
|
+
throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
|
|
28
|
+
}
|
|
29
|
+
}, length);
|
|
30
|
+
}
|
|
31
|
+
max(length) {
|
|
32
|
+
return this.set("max", (v) => {
|
|
33
|
+
if (v.size > length) {
|
|
34
|
+
throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
|
|
35
|
+
}
|
|
36
|
+
}, length);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = XVSet;
|
|
41
|
+
//# sourceMappingURL=Set.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Set.cjs","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\r\nimport XanvType from \"../XanvType\";\r\n\r\nclass XVSet<T extends XVInstanceType = any> extends XanvType<T> {\r\n\r\n private XVtype: T;\r\n\r\n constructor(XVtype: T) {\r\n super();\r\n this.XVtype = XVtype;\r\n }\r\n\r\n protected check(value: any): T {\r\n if (!(value instanceof Set)) {\r\n throw new Error(`Value should be a Set, received ${typeof value}`);\r\n }\r\n\r\n for (const item of Array.from(value)) {\r\n try {\r\n this.XVtype.parse(item);\r\n } catch (error) {\r\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\r\n }\r\n }\r\n return value as any\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\"min\", (v: any) => {\r\n if (v.size < length) {\r\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\"max\", (v: any) => {\r\n if (v.size > length) {\r\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n\r\n}\r\n\r\nexport default XVSet;"],"names":[],"mappings":";;;;AAGA,MAAM,KAAsC,SAAQ,QAAW,CAAA;AAI5D,IAAA,WAAA,CAAY,MAAS,EAAA;AAClB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC,CAAC;AACrE,QAAA,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,CAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC,CAAC;AACzG,YAAA,CAAA;AACH,QAAA,CAAA;AACD,QAAA,OAAO,KAAY,CAAA;IACtB,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACrF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACpF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAGH;;;;"}
|
package/types/Set.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { XVInstanceType } from '../types.js';
|
|
2
2
|
import XanvType from '../XanvType.js';
|
|
3
3
|
|
|
4
|
-
declare class XVSet<T =
|
|
5
|
-
private XVtype;
|
|
6
|
-
constructor(XVtype:
|
|
7
|
-
protected check(value: any):
|
|
8
|
-
min(length: number): this;
|
|
9
|
-
max(length: number): this;
|
|
4
|
+
declare class XVSet<T extends XVInstanceType = any> extends XanvType<T> {
|
|
5
|
+
private XVtype;
|
|
6
|
+
constructor(XVtype: T);
|
|
7
|
+
protected check(value: any): T;
|
|
8
|
+
min(length: number): this;
|
|
9
|
+
max(length: number): this;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export { XVSet as default };
|
package/types/Set.js
CHANGED
|
@@ -1,33 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
1
|
+
import XanvType from '../XanvType.js';
|
|
2
|
+
|
|
3
|
+
class XVSet extends XanvType {
|
|
4
|
+
constructor(XVtype) {
|
|
5
|
+
super();
|
|
6
|
+
this.XVtype = XVtype;
|
|
7
|
+
}
|
|
8
|
+
check(value) {
|
|
9
|
+
if (!(value instanceof Set)) {
|
|
10
|
+
throw new Error(`Value should be a Set, received ${typeof value}`);
|
|
11
|
+
}
|
|
12
|
+
for (const item of Array.from(value)) {
|
|
13
|
+
try {
|
|
14
|
+
this.XVtype.parse(item);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
min(length) {
|
|
23
|
+
return this.set("min", (v) => {
|
|
24
|
+
if (v.size < length) {
|
|
25
|
+
throw new Error(`Set size should be at least ${length} items, received ${v.size}`);
|
|
26
|
+
}
|
|
27
|
+
}, length);
|
|
28
|
+
}
|
|
29
|
+
max(length) {
|
|
30
|
+
return this.set("max", (v) => {
|
|
31
|
+
if (v.size > length) {
|
|
32
|
+
throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);
|
|
33
|
+
}
|
|
34
|
+
}, length);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { XVSet as default };
|
|
39
|
+
//# sourceMappingURL=Set.js.map
|
package/types/Set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T =
|
|
1
|
+
{"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\r\nimport XanvType from \"../XanvType\";\r\n\r\nclass XVSet<T extends XVInstanceType = any> extends XanvType<T> {\r\n\r\n private XVtype: T;\r\n\r\n constructor(XVtype: T) {\r\n super();\r\n this.XVtype = XVtype;\r\n }\r\n\r\n protected check(value: any): T {\r\n if (!(value instanceof Set)) {\r\n throw new Error(`Value should be a Set, received ${typeof value}`);\r\n }\r\n\r\n for (const item of Array.from(value)) {\r\n try {\r\n this.XVtype.parse(item);\r\n } catch (error) {\r\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\r\n }\r\n }\r\n return value as any\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\"min\", (v: any) => {\r\n if (v.size < length) {\r\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\"max\", (v: any) => {\r\n if (v.size > length) {\r\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\r\n }\r\n }, length);\r\n }\r\n\r\n\r\n}\r\n\r\nexport default XVSet;"],"names":[],"mappings":";;AAGA,MAAM,KAAsC,SAAQ,QAAW,CAAA;AAI5D,IAAA,WAAA,CAAY,MAAS,EAAA;AAClB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC,CAAC;AACrE,QAAA,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,CAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC,CAAC;AACzG,YAAA,CAAA;AACH,QAAA,CAAA;AACD,QAAA,OAAO,KAAY,CAAA;IACtB,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACrF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAED,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACpF,YAAA,CAAA;QACJ,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,CAAC;AAGH;;;;"}
|
|
@@ -1,87 +1,95 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var XanvType = require('../XanvType.cjs');
|
|
4
|
+
|
|
5
|
+
class XVString extends XanvType {
|
|
6
|
+
constructor(length) {
|
|
7
|
+
super();
|
|
8
|
+
if (length !== undefined) {
|
|
9
|
+
this.length(length);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
check(value) {
|
|
13
|
+
if (typeof value !== "string") {
|
|
14
|
+
throw new Error(`Value should be a string, received ${typeof value}`);
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
length(length) {
|
|
19
|
+
return this.set("length", (v) => {
|
|
20
|
+
const s = String(v);
|
|
21
|
+
if (s.length !== length) {
|
|
22
|
+
throw new Error(`String length should be ${length} characters, received ${s.length}`);
|
|
23
|
+
}
|
|
24
|
+
}, length);
|
|
25
|
+
}
|
|
26
|
+
min(length) {
|
|
27
|
+
return this.set("min", (v) => {
|
|
28
|
+
const s = String(v);
|
|
29
|
+
if (s.length < length) {
|
|
30
|
+
throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
|
|
31
|
+
}
|
|
32
|
+
}, length);
|
|
33
|
+
}
|
|
34
|
+
max(length) {
|
|
35
|
+
return this.set("max", (v) => {
|
|
36
|
+
const s = String(v);
|
|
37
|
+
if (s.length > length) {
|
|
38
|
+
throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
|
|
39
|
+
}
|
|
40
|
+
}, length);
|
|
41
|
+
}
|
|
42
|
+
email() {
|
|
43
|
+
return this.set("email", (v) => {
|
|
44
|
+
const s = String(v);
|
|
45
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
46
|
+
if (!emailRegex.test(s)) {
|
|
47
|
+
throw new Error(`String should be a valid email address`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
uppercase() {
|
|
52
|
+
return this.set("uppercase", (v) => {
|
|
53
|
+
const s = String(v);
|
|
54
|
+
if (s !== s.toUpperCase()) {
|
|
55
|
+
throw new Error(`String should be in uppercase`);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
lowercase() {
|
|
60
|
+
return this.set("lowercase", (v) => {
|
|
61
|
+
const s = String(v);
|
|
62
|
+
if (s !== s.toLowerCase()) {
|
|
63
|
+
throw new Error(`String should be in lowercase`);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
number() {
|
|
68
|
+
return this.set("number", (v) => {
|
|
69
|
+
const s = String(v);
|
|
70
|
+
if (isNaN(Number(s))) {
|
|
71
|
+
throw new Error(`String should be a valid number`);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
date() {
|
|
76
|
+
return this.set("date", (v) => {
|
|
77
|
+
const s = String(v);
|
|
78
|
+
const d = new Date(s);
|
|
79
|
+
if (isNaN(d.getTime())) {
|
|
80
|
+
throw new Error(`String should be a valid date`);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
base64() {
|
|
85
|
+
return this.set("base64", (v) => {
|
|
86
|
+
const s = String(v);
|
|
87
|
+
if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
|
|
88
|
+
throw new Error(`String should be a valid Base64 encoded string`);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
module.exports = XVString;
|
|
95
|
+
//# sourceMappingURL=String.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"String.cjs","sources":["../../src/types/String.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\r\n\r\nclass XVString extends XanvType<string, unknown> {\r\n constructor(length?: number) {\r\n super();\r\n if (length !== undefined) {\r\n this.length(length);\r\n }\r\n }\r\n\r\n protected check(value: unknown): string {\r\n if (typeof value !== \"string\") {\r\n throw new Error(`Value should be a string, received ${typeof value}`);\r\n }\r\n return value;\r\n }\r\n\r\n length(length: number) {\r\n return this.set(\r\n \"length\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length !== length) {\r\n throw new Error(\r\n `String length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n min(length: number) {\r\n return this.set(\r\n \"min\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length < length) {\r\n throw new Error(\r\n `Minimum length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n max(length: number) {\r\n return this.set(\r\n \"max\",\r\n (v: unknown) => {\r\n const s = String(v);\r\n if (s.length > length) {\r\n throw new Error(\r\n `Maximum length should be ${length} characters, received ${s.length}`\r\n );\r\n }\r\n },\r\n length\r\n );\r\n }\r\n\r\n email() {\r\n return this.set(\"email\", (v: unknown) => {\r\n const s = String(v);\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n if (!emailRegex.test(s)) {\r\n throw new Error(`String should be a valid email address`);\r\n }\r\n });\r\n }\r\n\r\n uppercase() {\r\n return this.set(\"uppercase\", (v: unknown) => {\r\n const s = String(v);\r\n if (s !== s.toUpperCase()) {\r\n throw new Error(`String should be in uppercase`);\r\n }\r\n });\r\n }\r\n\r\n lowercase() {\r\n return this.set(\"lowercase\", (v: unknown) => {\r\n const s = String(v);\r\n if (s !== s.toLowerCase()) {\r\n throw new Error(`String should be in lowercase`);\r\n }\r\n });\r\n }\r\n\r\n number() {\r\n return this.set(\"number\", (v: unknown) => {\r\n const s = String(v);\r\n if (isNaN(Number(s))) {\r\n throw new Error(`String should be a valid number`);\r\n }\r\n });\r\n }\r\n\r\n date() {\r\n return this.set(\"date\", (v: unknown) => {\r\n const s = String(v);\r\n const d = new Date(s);\r\n if (isNaN(d.getTime())) {\r\n throw new Error(`String should be a valid date`);\r\n }\r\n });\r\n }\r\n\r\n base64() {\r\n return this.set(\"base64\", (v: unknown) => {\r\n const s = String(v);\r\n if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {\r\n throw new Error(`String should be a valid Base64 encoded string`);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default XVString;\r\n"],"names":[],"mappings":"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"}
|
package/types/String.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import XanvType from '../XanvType.js';
|
|
2
2
|
|
|
3
|
-
declare class XVString
|
|
4
|
-
constructor(length?: number);
|
|
5
|
-
protected check(value:
|
|
6
|
-
length(length: number): this;
|
|
7
|
-
min(length: number): this;
|
|
8
|
-
max(length: number): this;
|
|
9
|
-
email(): this;
|
|
10
|
-
uppercase(): this;
|
|
11
|
-
lowercase(): this;
|
|
12
|
-
number(): this;
|
|
13
|
-
date(): this;
|
|
14
|
-
base64(): this;
|
|
3
|
+
declare class XVString extends XanvType<string, unknown> {
|
|
4
|
+
constructor(length?: number);
|
|
5
|
+
protected check(value: unknown): string;
|
|
6
|
+
length(length: number): this;
|
|
7
|
+
min(length: number): this;
|
|
8
|
+
max(length: number): this;
|
|
9
|
+
email(): this;
|
|
10
|
+
uppercase(): this;
|
|
11
|
+
lowercase(): this;
|
|
12
|
+
number(): this;
|
|
13
|
+
date(): this;
|
|
14
|
+
base64(): this;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export { XVString as default };
|
package/types/String.js
CHANGED
|
@@ -1,87 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
1
|
+
import XanvType from '../XanvType.js';
|
|
2
|
+
|
|
3
|
+
class XVString extends XanvType {
|
|
4
|
+
constructor(length) {
|
|
5
|
+
super();
|
|
6
|
+
if (length !== undefined) {
|
|
7
|
+
this.length(length);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
check(value) {
|
|
11
|
+
if (typeof value !== "string") {
|
|
12
|
+
throw new Error(`Value should be a string, received ${typeof value}`);
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
length(length) {
|
|
17
|
+
return this.set("length", (v) => {
|
|
18
|
+
const s = String(v);
|
|
19
|
+
if (s.length !== length) {
|
|
20
|
+
throw new Error(`String length should be ${length} characters, received ${s.length}`);
|
|
21
|
+
}
|
|
22
|
+
}, length);
|
|
23
|
+
}
|
|
24
|
+
min(length) {
|
|
25
|
+
return this.set("min", (v) => {
|
|
26
|
+
const s = String(v);
|
|
27
|
+
if (s.length < length) {
|
|
28
|
+
throw new Error(`Minimum length should be ${length} characters, received ${s.length}`);
|
|
29
|
+
}
|
|
30
|
+
}, length);
|
|
31
|
+
}
|
|
32
|
+
max(length) {
|
|
33
|
+
return this.set("max", (v) => {
|
|
34
|
+
const s = String(v);
|
|
35
|
+
if (s.length > length) {
|
|
36
|
+
throw new Error(`Maximum length should be ${length} characters, received ${s.length}`);
|
|
37
|
+
}
|
|
38
|
+
}, length);
|
|
39
|
+
}
|
|
40
|
+
email() {
|
|
41
|
+
return this.set("email", (v) => {
|
|
42
|
+
const s = String(v);
|
|
43
|
+
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
44
|
+
if (!emailRegex.test(s)) {
|
|
45
|
+
throw new Error(`String should be a valid email address`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
uppercase() {
|
|
50
|
+
return this.set("uppercase", (v) => {
|
|
51
|
+
const s = String(v);
|
|
52
|
+
if (s !== s.toUpperCase()) {
|
|
53
|
+
throw new Error(`String should be in uppercase`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
lowercase() {
|
|
58
|
+
return this.set("lowercase", (v) => {
|
|
59
|
+
const s = String(v);
|
|
60
|
+
if (s !== s.toLowerCase()) {
|
|
61
|
+
throw new Error(`String should be in lowercase`);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
number() {
|
|
66
|
+
return this.set("number", (v) => {
|
|
67
|
+
const s = String(v);
|
|
68
|
+
if (isNaN(Number(s))) {
|
|
69
|
+
throw new Error(`String should be a valid number`);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
date() {
|
|
74
|
+
return this.set("date", (v) => {
|
|
75
|
+
const s = String(v);
|
|
76
|
+
const d = new Date(s);
|
|
77
|
+
if (isNaN(d.getTime())) {
|
|
78
|
+
throw new Error(`String should be a valid date`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
base64() {
|
|
83
|
+
return this.set("base64", (v) => {
|
|
84
|
+
const s = String(v);
|
|
85
|
+
if (!/^[A-Za-z0-9+/]+={0,2}$/.test(s)) {
|
|
86
|
+
throw new Error(`String should be a valid Base64 encoded string`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { XVString as default };
|
|
93
|
+
//# sourceMappingURL=String.js.map
|