decentralized-internet
Version:
An NPM library of programs to create decentralized web and distributed computing projects
1 lines • 906 B
JavaScript
;const Hoek=require("hoek"),Ref=require("./ref"),internals={any:null,date:require("./date"),string:require("./string"),number:require("./number"),boolean:require("./boolean"),alt:null,object:null};exports.schema=function(e){return internals.any=internals.any||new(require("./any")),internals.alt=internals.alt||require("./alternatives"),internals.object=internals.object||require("./object"),null!=e&&"object"==typeof e?e.isJoi?e:Array.isArray(e)?internals.alt.try(e):e instanceof RegExp?internals.string.regex(e):e instanceof Date?internals.date.valid(e):internals.object.keys(e):"string"==typeof e?internals.string.valid(e):"number"==typeof e?internals.number.valid(e):"boolean"==typeof e?internals.boolean.valid(e):Ref.isRef(e)?internals.any.valid(e):(Hoek.assert(null===e,"Invalid schema content:",e),internals.any.valid(null))},exports.ref=function(e){return Ref.isRef(e)?e:Ref.create(e)};