@quarkly/atomize
Version:
Library for creating atomic react components
48 lines (35 loc) • 1.24 kB
JavaScript
;
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;