UNPKG

react-classnaming

Version:

Tools to establish CSS classes as an explicit abstraction layer and to handle it as an interface between React and CSSStyleDeclaration

35 lines (34 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.classNamesMap = void 0; var core_1 = require("./core"); var $keys = Object.keys; /** * Set up mapping classnames function * @example * ```typescript * const mapping = classNamesMap(classnames) * ``` */ function classNamesMap(classnames) { var mapper = function (target, map) { return mapping(classnames, target, map); }; return mapper; } exports.classNamesMap = classNamesMap; function mapping(source, _, map) { // TODO #33 change to for-in https://jsbench.me/prkm3gn4ji var keys = $keys(map) // TODO = {...keys} + reassign or delete? , classnames = {}; for (var i = keys.length; i--;) { var key = keys[i], val = map[key]; if (val === undefined) continue; classnames[key] = typeof val === "function" ? "" + val : core_1.resolver(source, //@ts-expect-error #27 TS doesn't understand that ClassNaming is first of all function val).join(" "); } return classnames; }