UNPKG

signet-checker

Version:

Type checker for signet type system

42 lines (32 loc) 1.02 kB
var signetChecker = (function () { 'use strict'; return function (registrar) { function checkType(typeDef) { try { return typeof registrar.get(typeDef.type) === 'function'; } catch (e) { return false; } } function concat(resultList, list) { return resultList.concat(list); } function not(predicate) { return function (value) { return !predicate(value); } } function checkSignature(ast) { var failedTypes = ast.reduce(concat, []) .filter(not(checkType)); return failedTypes.length > 0 ? failedTypes : null; } return { checkSignature: checkSignature, checkType: checkType }; } })(); if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { module.exports = signetChecker; }