@@ -4,17 +4,15 @@ import {
4
4
IDSFacetParameter ,
5
5
IDSCheckResult ,
6
6
IDSFacetParameterName ,
7
- IDSSimpleParameter ,
8
- IDSEnumerationParameter ,
9
- IDSPatternParameter ,
10
- IDSLengthParameter ,
11
- IDSBoundsParameter ,
12
7
IDSCheck ,
13
8
IDSConditionalCardinaltiy ,
14
9
IDSSimpleCardinality ,
10
+ IDSFacetType ,
15
11
} from "../types" ;
16
12
17
13
export abstract class IDSFacet {
14
+ abstract facetType : IDSFacetType ;
15
+
18
16
// Used when the facet is a requirement
19
17
// On IDSEntity is always required
20
18
cardinality : IDSSimpleCardinality | IDSConditionalCardinaltiy = "required" ;
@@ -54,24 +52,20 @@ export abstract class IDSFacet {
54
52
let pass = false ;
55
53
56
54
if ( facetParameter . type === "simple" ) {
57
- const parameter = facetParameter . parameter as IDSSimpleParameter ;
58
- pass = value === parameter ;
55
+ pass = value === facetParameter . parameter ;
59
56
}
60
57
61
58
if ( facetParameter . type === "enumeration" ) {
62
- const parameter = facetParameter . parameter as IDSEnumerationParameter ;
63
- pass = parameter . includes ( value as never ) ;
59
+ pass = facetParameter . parameter . includes ( value as never ) ;
64
60
}
65
61
66
62
if ( facetParameter . type === "pattern" ) {
67
- const parameter = facetParameter . parameter as IDSPatternParameter ;
68
- const regex = new RegExp ( parameter ) ;
63
+ const regex = new RegExp ( facetParameter . parameter ) ;
69
64
pass = regex . test ( String ( value ) ) ;
70
65
}
71
66
72
67
if ( facetParameter . type === "length" ) {
73
- const parameter = facetParameter . parameter as IDSLengthParameter ;
74
- const { min, length, max } = parameter ;
68
+ const { min, length, max } = facetParameter . parameter ;
75
69
if ( length !== undefined ) {
76
70
pass = String ( value ) . length === length ;
77
71
}
@@ -84,8 +78,7 @@ export abstract class IDSFacet {
84
78
}
85
79
86
80
if ( facetParameter . type === "bounds" && typeof value === "number" ) {
87
- const { min, minInclusive, max, maxInclusive } =
88
- facetParameter . parameter as IDSBoundsParameter ;
81
+ const { min, minInclusive, max, maxInclusive } = facetParameter . parameter ;
89
82
90
83
let minPass = true ;
91
84
let maxPass = true ;
0 commit comments