@@ -17,7 +17,7 @@ export const throwOnUndef = (value: unknown, def?: unknown) => {
17
17
18
18
export const type = ( value : unknown ) : string => {
19
19
if ( value === null ) return 'null' ;
20
- if ( value instanceof Array ) return 'array' ;
20
+ if ( Array . isArray ( value ) ) return 'array' ;
21
21
if ( value instanceof Uint8Array ) return 'binary' ;
22
22
return typeof value ;
23
23
} ;
@@ -61,7 +61,7 @@ export const len = (value: unknown): number => {
61
61
case 'string' :
62
62
return value . length ;
63
63
case 'object' : {
64
- if ( value instanceof Array ) return value . length ;
64
+ if ( Array . isArray ( value ) ) return value . length ;
65
65
if ( value instanceof Uint8Array ) return value . length ;
66
66
if ( ! value ) return 0 ;
67
67
return Object . keys ( value ) . length ;
@@ -80,7 +80,7 @@ export const member = (container: unknown, index: unknown): unknown => {
80
80
}
81
81
case 'object' : {
82
82
if ( ! container ) throw new Error ( 'NOT_CONTAINER' ) ;
83
- if ( container instanceof Array || container instanceof Uint8Array ) {
83
+ if ( Array . isArray ( container ) || container instanceof Uint8Array ) {
84
84
const i = int ( index ) ;
85
85
if ( i < 0 || i >= container . length ) return undefined ;
86
86
return container [ i ] ;
@@ -199,7 +199,7 @@ export const u8 = (bin: unknown, pos: unknown) => {
199
199
// ----------------------------------------------------- Array operator helpers
200
200
201
201
export const asArr = ( value : unknown ) : unknown [ ] => {
202
- if ( value instanceof Array ) return value as unknown [ ] ;
202
+ if ( Array . isArray ( value ) ) return value as unknown [ ] ;
203
203
throw new Error ( 'NOT_ARRAY' ) ;
204
204
} ;
205
205
@@ -348,18 +348,18 @@ export const objDelRaw = (obj: Record<string, unknown>, key: string): Record<str
348
348
// -------------------------------------------------------------------- Various
349
349
350
350
export const isLiteral = ( value : unknown ) : boolean => {
351
- if ( value instanceof Array ) return value . length === 1 ;
351
+ if ( Array . isArray ( value ) ) return value . length === 1 ;
352
352
else return true ;
353
353
} ;
354
354
355
355
export const asLiteral = < T > ( value : Literal < T > ) : T => {
356
- if ( value instanceof Array ) {
356
+ if ( Array . isArray ( value ) ) {
357
357
if ( value . length !== 1 ) throw new Error ( 'Invalid literal.' ) ;
358
358
return value [ 0 ] ;
359
359
} else return value ;
360
360
} ;
361
361
362
- export const literal = < T = unknown > ( value : T ) : T | [ T ] => ( value instanceof Array ? [ value ] : value ) ;
362
+ export const literal = < T = unknown > ( value : T ) : T | [ T ] => ( Array . isArray ( value ) ? [ value ] : value ) ;
363
363
364
364
export const assertFixedArity = ( operator : string , arity : number , expr : Expression ) : void => {
365
365
if ( expr . length !== arity + 1 ) throw new Error ( `"${ operator } " operator expects ${ arity } operands.` ) ;
@@ -371,7 +371,7 @@ export const assertVariadicArity = (operator: string, expr: Expression): void =>
371
371
372
372
export const assertArity = ( operator : string , arity : number | [ min : number , max : number ] , expr : Expression ) : void => {
373
373
if ( ! arity ) return ;
374
- if ( arity instanceof Array ) {
374
+ if ( Array . isArray ( arity ) ) {
375
375
const [ min , max ] = arity ;
376
376
if ( expr . length < min + 1 ) throw new Error ( `"${ operator } " operator expects at least ${ min } operands.` ) ;
377
377
if ( max !== - 1 && expr . length > max + 1 ) throw new Error ( `"${ operator } " operator expects at most ${ max } operands.` ) ;
0 commit comments