UNPKG

react-schema

Version:

Use react like PropTypes for generic object validation.

39 lines (34 loc) 1.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _PropTypeAnalyzer = require('./PropTypeAnalyzer'); /** * Provides a primitive form of a schema node to use with * [Object.whitelist] and other schema-based utils. * * @param {Object} node: The PropTypes node to examine. * @return {Object}. */ var schemaToObject = function schemaToObject(node) { if (node.type === 'shape') { return node.properties.reduce(function (hash, entry) { hash[entry.name] = schemaToObject(entry); return hash; }, {}); } else if (node.type === 'arrayOf') { return [schemaToObject(node.element)]; } else if (node.type === 'literal') { return node.value !== undefined ? node.value : null; } return null; }; /** * Converts the given schema node to a simple object. * @param {Object} rootNode: The PropTypes node to examine. * @return {Object}. */ exports.default = function (rootNode) { return schemaToObject((0, _PropTypeAnalyzer.analyze)(rootNode)); }; //# sourceMappingURL=schemaToObject.js.map