@@ -3,6 +3,7 @@ import Interpreter from '@formio/js-interpreter';
3
3
4
4
const baseEvaluator = ( FormioUtils . Evaluator as any ) . evaluator ;
5
5
const baseEvaluate = ( FormioUtils . Evaluator as any ) . evaluate ;
6
+ const DefaultEvaluator = ( FormioUtils as any ) . DefaultEvaluator ;
6
7
7
8
export interface IEvaluator {
8
9
noeval ?: boolean ;
@@ -13,19 +14,21 @@ export interface IEvaluator {
13
14
14
15
const excludedVariables = [ 'instance' , 'self' , 'options' ] ;
15
16
16
- const Evaluator : IEvaluator = {
17
- noeval : true ,
18
- protectedEval : true ,
19
- evaluator : ( func : string | any , ...params : any [ ] ) : ( ) => any => {
20
- if ( ! Evaluator . protectedEval ) {
17
+ export class Evaluator extends DefaultEvaluator {
18
+ noeval = true ;
19
+ protectedEval = true ;
20
+
21
+ evaluator ( func : string | any , ...params : any [ ] ) : ( ) => any {
22
+ if ( ! this . protectedEval ) {
21
23
return baseEvaluator ( func , ...params ) ;
22
24
}
23
25
24
26
console . warn ( 'No evaluations allowed for safe eval.' ) ;
25
27
return ( ) => undefined ;
26
- } ,
27
- evaluate : ( func : string | any , args : any , ...rest : any [ ] ) : any => {
28
- if ( ! Evaluator . protectedEval || typeof func !== 'string' ) {
28
+ } ;
29
+
30
+ evaluate ( func : string | any , args : any , ...rest : any [ ] ) : any {
31
+ if ( ! this . protectedEval || typeof func !== 'string' ) {
29
32
return baseEvaluate ( func , args , ...rest ) ;
30
33
}
31
34
@@ -48,7 +51,7 @@ const Evaluator: IEvaluator = {
48
51
interpreter . run ( ) ;
49
52
const result = interpreter . getProperty ( interpreter . globalObject , 'result' ) ;
50
53
return interpreter . pseudoToNative ( result ) ;
51
- } ,
54
+ } ;
52
55
} ;
53
56
54
- export default Evaluator ;
57
+ export default new Evaluator ( ) ;
0 commit comments