UNPKG

json-strict

Version:

Json Specification & Validation & Document Generation

41 lines (36 loc) 809 B
require 'coffee-mate/global' {instance} = require '../typeclass' {show} = require '../typespec' #`function Enum(ls){ # return { # constructor: Enum, # enum: ls # } #}` class Enum constructor: (ls) -> if not (all((x) -> x?) ls) throw Error "Bad Enum Type Definition: Array Of Non-Null Values Expected, Bot Got #{ls}" return { constructor: Enum enum: ls } instance('TypeSpec')(Enum).where shape: (t) -> t match: ({enum: vs}) -> (v) -> v in vs constraints: (t) -> {enum: vs} = t (v) -> [ { label: -> "#{show t} Expected, But Got #{json v}" flag: -> v in vs } ] show: ({enum: vs}) -> "Enum(#{json vs})" samples: ({enum: vs}) -> concat repeat vs htmlInline: ({enum: vs}) -> "<span class='type-maker unwrapped'>Enum #{json vs}</span>" module.exports = {Enum}