UNPKG

web-signature

Version:

Primitive and fast framework for rendering web interfaces

32 lines (31 loc) 831 B
export default class Prop { type; required = true; validate; constructor(type, required = true, validate) { this.type = type; this.required = required; if (validate) { this.validate = validate; } else { this.validate = () => true; } } isValid(value) { switch (this.type) { case "boolean": return typeof value === "boolean"; case "number": return typeof value === "number" && !isNaN(value); case "string": return typeof value === "string"; case "array": return Array.isArray(value); case "null": return value === null; default: return false; } } }