@@ -25,16 +25,20 @@ import * as type from './type';
25
25
* @param passed The actual arguments passed to the function.
26
26
* @throws {fbs.Error } If the arguments are invalid.
27
27
*/
28
- export function validate ( name : string , specs : ArgSpec [ ] , passed : IArguments ) {
28
+ export function validate (
29
+ name : string ,
30
+ specs : ArgSpec [ ] ,
31
+ passed : IArguments
32
+ ) : void {
29
33
let minArgs = specs . length ;
30
- let maxArgs = specs . length ;
34
+ const maxArgs = specs . length ;
31
35
for ( let i = 0 ; i < specs . length ; i ++ ) {
32
36
if ( specs [ i ] . optional ) {
33
37
minArgs = i ;
34
38
break ;
35
39
}
36
40
}
37
- let validLength = minArgs <= passed . length && passed . length <= maxArgs ;
41
+ const validLength = minArgs <= passed . length && passed . length <= maxArgs ;
38
42
if ( ! validLength ) {
39
43
throw errorsExports . invalidArgumentCount (
40
44
minArgs ,
@@ -60,49 +64,52 @@ export function validate(name: string, specs: ArgSpec[], passed: IArguments) {
60
64
* @struct
61
65
*/
62
66
export class ArgSpec {
63
- validator : ( p1 : any ) => void ;
67
+ validator : ( p1 : unknown ) => void ;
64
68
optional : boolean ;
65
69
66
- constructor ( validator : ( p1 : any ) => void , opt_optional ?: boolean ) {
67
- let self = this ;
68
- this . validator = function ( p : any ) {
70
+ constructor ( validator : ( p1 : unknown ) => void , optional ?: boolean ) {
71
+ const self = this ;
72
+ this . validator = function ( p : unknown ) {
69
73
if ( self . optional && ! type . isJustDef ( p ) ) {
70
74
return ;
71
75
}
72
76
validator ( p ) ;
73
77
} ;
74
- this . optional = ! ! opt_optional ;
78
+ this . optional = ! ! optional ;
75
79
}
76
80
}
77
81
78
- export function and_ ( v1 : ( p1 : any ) => void , v2 : Function ) : ( p1 : any ) => void {
82
+ export function and_ (
83
+ v1 : ( p1 : unknown ) => void ,
84
+ v2 : ( p1 : unknown ) => void
85
+ ) : ( p1 : unknown ) => void {
79
86
return function ( p ) {
80
87
v1 ( p ) ;
81
88
v2 ( p ) ;
82
89
} ;
83
90
}
84
91
85
92
export function stringSpec (
86
- opt_validator ?: ( p1 : any ) => void | null ,
87
- opt_optional ?: boolean
93
+ validator ?: ( p1 : unknown ) => void | null ,
94
+ optional ?: boolean
88
95
) : ArgSpec {
89
- function stringValidator ( p : any ) {
96
+ function stringValidator ( p : unknown ) : void {
90
97
if ( ! type . isString ( p ) ) {
91
98
throw 'Expected string.' ;
92
99
}
93
100
}
94
- let validator ;
95
- if ( opt_validator ) {
96
- validator = and_ ( stringValidator , opt_validator ) ;
101
+ let chainedValidator ;
102
+ if ( validator ) {
103
+ chainedValidator = and_ ( stringValidator , validator ) ;
97
104
} else {
98
- validator = stringValidator ;
105
+ chainedValidator = stringValidator ;
99
106
}
100
- return new ArgSpec ( validator , opt_optional ) ;
107
+ return new ArgSpec ( chainedValidator , optional ) ;
101
108
}
102
109
103
110
export function uploadDataSpec ( ) : ArgSpec {
104
- function validator ( p : any ) {
105
- let valid =
111
+ function validator ( p : unknown ) : void {
112
+ const valid =
106
113
p instanceof Uint8Array ||
107
114
p instanceof ArrayBuffer ||
108
115
( type . isNativeBlobDefined ( ) && p instanceof Blob ) ;
@@ -113,17 +120,17 @@ export function uploadDataSpec(): ArgSpec {
113
120
return new ArgSpec ( validator ) ;
114
121
}
115
122
116
- export function metadataSpec ( opt_optional ?: boolean ) : ArgSpec {
117
- return new ArgSpec ( MetadataUtils . metadataValidator , opt_optional ) ;
123
+ export function metadataSpec ( optional ?: boolean ) : ArgSpec {
124
+ return new ArgSpec ( MetadataUtils . metadataValidator , optional ) ;
118
125
}
119
126
120
- export function listOptionSpec ( opt_optional ?: boolean ) : ArgSpec {
121
- return new ArgSpec ( ListOptionsUtils . listOptionsValidator , opt_optional ) ;
127
+ export function listOptionSpec ( optional ?: boolean ) : ArgSpec {
128
+ return new ArgSpec ( ListOptionsUtils . listOptionsValidator , optional ) ;
122
129
}
123
130
124
131
export function nonNegativeNumberSpec ( ) : ArgSpec {
125
- function validator ( p : any ) {
126
- let valid = type . isNumber ( p ) && p >= 0 ;
132
+ function validator ( p : unknown ) : void {
133
+ const valid = type . isNumber ( p ) && p >= 0 ;
127
134
if ( ! valid ) {
128
135
throw 'Expected a number 0 or greater.' ;
129
136
}
@@ -132,27 +139,27 @@ export function nonNegativeNumberSpec(): ArgSpec {
132
139
}
133
140
134
141
export function looseObjectSpec (
135
- opt_validator ?: ( ( p1 : any ) => void ) | null ,
136
- opt_optional ?: boolean
142
+ validator ?: ( ( p1 : unknown ) => void ) | null ,
143
+ optional ?: boolean
137
144
) : ArgSpec {
138
- function validator ( p : any ) {
139
- let isLooseObject = p === null || ( type . isDef ( p ) && p instanceof Object ) ;
145
+ function isLooseObjectValidator ( p : unknown ) : void {
146
+ const isLooseObject = p === null || ( type . isDef ( p ) && p instanceof Object ) ;
140
147
if ( ! isLooseObject ) {
141
148
throw 'Expected an Object.' ;
142
149
}
143
- if ( opt_validator !== undefined && opt_validator !== null ) {
144
- opt_validator ( p ) ;
150
+ if ( validator !== undefined && validator !== null ) {
151
+ validator ( p ) ;
145
152
}
146
153
}
147
- return new ArgSpec ( validator , opt_optional ) ;
154
+ return new ArgSpec ( isLooseObjectValidator , optional ) ;
148
155
}
149
156
150
- export function nullFunctionSpec ( opt_optional ?: boolean ) : ArgSpec {
151
- function validator ( p : any ) {
152
- let valid = p === null || type . isFunction ( p ) ;
157
+ export function nullFunctionSpec ( optional ?: boolean ) : ArgSpec {
158
+ function validator ( p : unknown ) : void {
159
+ const valid = p === null || type . isFunction ( p ) ;
153
160
if ( ! valid ) {
154
161
throw 'Expected a Function.' ;
155
162
}
156
163
}
157
- return new ArgSpec ( validator , opt_optional ) ;
164
+ return new ArgSpec ( validator , optional ) ;
158
165
}
0 commit comments