UNPKG

@quarkly/atomize

Version:

Library for creating atomic react components

48 lines (35 loc) 1.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.configure = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _dict = require("../constants/dict"); var _errors = require("./errors"); var configuration = { useValidate: process.env === 'development' }; var configure = function configure(override) { configuration = (0, _extends2["default"])((0, _extends2["default"])({}, configuration), override); }; exports.configure = configure; var validateNodes = function validateNodes(nodes) { return nodes.reduce(function (acc, _ref) { var key = _ref[0], nodeInfo = _ref[1]; validateNode(acc, nodeInfo, key); acc[key] = nodeInfo; return acc; }, {}); }; var validateNode = function validateNode(tree, node, key) { if (!configuration.useValidate) { return; } if (_dict.hashPropsWithAliases[key]) { throw new _errors.PropInfoCollisionError("key " + key + " in propInfo must be unque, found in style name"); } }; var _default = function _default(propInfo) { return validateNodes(Object.entries(propInfo)); }; exports["default"] = _default;