import { BaseType, coerce } from './base';
import nativeTypeMap from './nativeTypeMap';
export default class ArrayType extends BaseType {
static isOfType(val) {
return Array.isArray(val);
}
static ofType(memberType) {
const coercedType = coerce(memberType);
return class ArrayOfType extends this {
static get type() {
return coercedType;
}
static isOfType(val) {
return super.isOfType(val) && val.every((itemVal) => {
// console.log(this.type)
return this.type.isOfType(itemVal)
});
}
};
}
}
nativeTypeMap.set(Array, ArrayType);
|