{"_id":"obj-str","_rev":"8-fcdbd96fc2f69fd6ea9ad5523ea84c8c","name":"obj-str","description":"A tiny library for serializing Object values to Strings.","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"obj-str","version":"1.0.0","repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"description":"A tiny library for serializing Object values to Strings.","module":"dist/obj-str.es.js","main":"dist/obj-str.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=4"},"scripts":{"build":"rollup -c","test":"xo && tape test/*.js | tap-spec"},"files":["dist"],"keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"devDependencies":{"rollup":"^0.41.6","tap-spec":"^4.1.1","tape":"^4.6.3","xo":"^0.17.0"},"xo":{"esnext":true,"rules":{"no-unused-expressions":0,"no-self-compare":0}},"gitHead":"328b947c68082de1b1b33bb6b5630ed9fe33bc9c","bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"homepage":"https://github.com/lukeed/obj-str#readme","_id":"obj-str@1.0.0","_shasum":"6c27a2121524aa89390755b1e61c115f873d0d87","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.3","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"shasum":"6c27a2121524aa89390755b1e61c115f873d0d87","tarball":"https://registry.npmjs.org/obj-str/-/obj-str-1.0.0.tgz","integrity":"sha512-3xpd1+UGpo2wCaM6CBa0H/0HNMV/l35wPMHhACGNg9H5hI/S+uB6OcI3h/vfIu/onTPWWbg7Bjh9+6pWVVvtCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHPfytDl5p/P7xXwwC84NQb9mcptLw4VB+rFeLQtt7muAiEAoOQksJEzx6kvWBdNTEqgWhstRjCuPUXu7mVdHaCyQrU="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/obj-str-1.0.0.tgz_1491698499459_0.7316880729049444"},"directories":{}},"1.0.1":{"name":"obj-str","version":"1.0.1","repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"description":"A tiny library for serializing Object values to Strings.","module":"dist/obj-str.es.js","main":"dist/obj-str.js","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=4"},"scripts":{"build":"rollup -c","test":"xo && tape test/*.js | tap-spec"},"files":["dist"],"keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"devDependencies":{"rollup":"^0.41.6","tap-spec":"^4.1.1","tape":"^4.6.3","xo":"^0.17.0"},"xo":{"esnext":true,"rules":{"no-unused-expressions":0,"no-self-compare":0}},"gitHead":"23f9203c956ca167c84795a7c402df21d339f864","bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"homepage":"https://github.com/lukeed/obj-str#readme","_id":"obj-str@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-99Gg3gYY6I8oDflloLbdb5dSrG6nJVRiwSYLroCzJYgtx5UlGRHehR96hYOe2HsybUgk3x56ZPnYOl3McJMRxg==","shasum":"0ffd9ac3513d20a77ba76de5d6a44d26b2d6549d","tarball":"https://registry.npmjs.org/obj-str/-/obj-str-1.0.1.tgz","fileCount":6,"unpackedSize":4674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhD4yCRA9TVsSAnZWagAA9NIP/Rn3XOV95AuDrOPkjLPs\nYWbeXTjjkmJi6mBDruHwbz14+TlS3ZAcarWd3Wux7vpuu8Y2xAa8Y2Qf4Gns\n2bXtHLlo7XgtNG+FErXULKHlSP/YS87ljQCSGL1da///vK4prkJUPSBnOprW\n3ZujGr+Ue80lgds9Syc1zuLVtE5Wpuz/qjKvSKKLomNtet2Jtndm/4FGf6nX\nLdwfT628KFS4Q8ZeZJBciVnKS8BwvDIfYYoH58Tm8A6UEDBlfegqIPoghn1d\n3Azl3IIs6O9b/uh4WC3rZHyikbKqlAu2mWxfYIwiztopaVb/OZgJXn27+8mK\nmwLdezBxz4tgP2vxboXLs2bUGe0XkQqekY5M1meXvMAAWqpLoeBAPceAKnol\n9tNTZu2KkjsFlQ/nshwd9rbz+03kcp3lNcEqZ8hoOJol/X83ANX1fvGsh4kK\nrPh2SVq4LO+Npm8bQFAds7EGebpgO2S1ScFcU8wuTfU87iFnu78PkiP8Mtkk\nomy/LHo0qaK2/EW81R5ec8MpUQnBg5iVyC2KRFsXTqqawq7AQAeT8U0dqyUO\nmyZ5XvZ5Gz4woSCn1S1Y0ZLxsUzm5rH3cGxP9U4dJzVoDupBFG0WD2xFf/z2\nf69WQMwcHHO7e4uy5jX1G6zJW4Y6Ny50BhGam5soQgIMFWlH9kxwfCf7j2+o\npxmN\r\n=c7wf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxf3ibMx0G5zq1+oq9TQzmQ6U4RSDSrlWQC21xE3UOEQIgYqstSokViH6CxZTZweUHeoisPl2TCuIw0h2SPKcuy5U="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/obj-str_1.0.1_1535393330031_0.41361490973259674"},"_hasShrinkwrap":false},"1.0.2":{"name":"obj-str","version":"1.0.2","repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"description":"A tiny library for serializing Object values to Strings.","unpkg":"dist/obj-str.min.js","module":"dist/obj-str.mjs","main":"dist/obj-str.js","umd:name":"objstr","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=4"},"scripts":{"build":"node builder","pretest":"node builder","test":"tape test/*.js | tap-spec"},"keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"devDependencies":{"gzip-size":"^5.0.0","mk-dirs":"^1.0.0","pretty-bytes":"^5.1.0","tap-spec":"^4.1.1","tape":"^4.6.3","terser":"^3.13.1"},"gitHead":"9590517de16b6ddc59ce5080297b4efcc2c4ad72","bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"homepage":"https://github.com/lukeed/obj-str#readme","_id":"obj-str@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-9qZlZkJYI7VHzwlM9iur240UfPyOr4tw0SRItnbKI5PJUJiWo0tMS7pgcVtoyhhkayxd+HRHGYtx34Ls7w/58Q==","shasum":"d95a77efcea00cef9175bf76a1a6b3adf44a685d","tarball":"https://registry.npmjs.org/obj-str/-/obj-str-1.0.2.tgz","fileCount":6,"unpackedSize":4999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcIfT5CRA9TVsSAnZWagAA2gsQAJBB846qTBMo9x+9h0eg\npYRg2MMJeiKef+vTJSxupFkoNI4IX4rP/8dMP8oitZZm91gz8ST+RfI8TjF4\nmk4nlF9cSizFYr7UmT2t9QRLtsmFsIZ1dw+DIEY6hduOmWj7MCxo28Ymtby7\nUoQj8H8yVY3kKl7F0+M+HRAwH6qO2QmHbZA3Zt74f+4Pn3gxie4WClKEN4wM\nS50HjPyFEAA6VdGsN/HDgeRkVR6mvVmzivMHgrMIi2RaONdrUNYkCHfsgVFg\nJnxK0vCzhhBG81a+AtiGcAr0vLe+1qH5Kc90LGS+081Fs5g/On9gkhg3lGku\n8cDgCXAnYSwucN7HtwHgzAp/5bZqMLzbnoyXiwX/eD7xDn1wy182dRpcFFwm\nCw8rdk8rPk5WJodob0sfDM9Czx2CJuqyMUxJOIanLa5BSh6Y2fhem8kQLF4K\nvdPkTwvBW5s9s+OqLZwQZWaolWCVI17j09ZsXnnyU8OqO/J0LS/H5LxVclUN\nAYkrnmUbUXasDt+hWg+O32PMRQD9TsaC9lUu3mHoMoxTIoCiDwraKScewpWH\nchnkGOwfIgpGA9YsR+yWvfwDRUP/ndGiaTVkfTYXjkFu1bv624M/Hm2T30Vj\nl6j9bqw4tNk2ga/75FvfLQGu6VWEcScytwxadODyCWT/pviE9c+K2+bqasKd\nDZon\r\n=D+hh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkA7d2mT29dxDwykFf+dTxpK8CIOT47yGkv0Pyzkv1qgIgTGrBSemzzC8FnpKZVJYrjVmq/RtXHAJ9B+qbVIBAUEg="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/obj-str_1.0.2_1545729272372_0.2788288410795221"},"_hasShrinkwrap":false},"1.0.3":{"name":"obj-str","version":"1.0.3","repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"description":"A tiny library for serializing Object values to Strings.","unpkg":"dist/obj-str.min.js","module":"dist/obj-str.mjs","main":"dist/obj-str.js","umd:name":"objstr","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"lukeed.com"},"engines":{"node":">=4"},"scripts":{"build":"bundt","pretest":"npm run build","test":"tape test/*.js | tap-spec"},"keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"devDependencies":{"bundt":"^0.1.1","tap-spec":"^4.1.1","tape":"^4.6.3"},"gitHead":"4392a3dcd98c4f01b6a0f28b3cd1bbe44328ceda","bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"homepage":"https://github.com/lukeed/obj-str#readme","_id":"obj-str@1.0.3","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"dist":{"integrity":"sha512-H2iS63dYEH2I/XPkBDsT2ywkZKqJl6xc7XqKLqjJVrSqSjT4AJy7N9yy7/Z3pNUD5iLwHmZCareOhoegC28N9w==","shasum":"5a583dfd41b2fab71e5ba0363fa43c62146bcb5a","tarball":"https://registry.npmjs.org/obj-str/-/obj-str-1.0.3.tgz","fileCount":6,"unpackedSize":5023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcOGJdCRA9TVsSAnZWagAAK2wQAJsPAmZc66zOEvawDvQa\nOs0CYrMaykjRZff0JB22+5nUa0MRYuTnJix1USiYnbBw5mUJ9lzV5+OyimIJ\nogG7A2hXA5UQ95OjqFuoEBtQOj2hISi1Oc/BPRnziMqkl2LYjCDPfHspe3ks\nHClIsWlPk4egCYSeoXlPdHNJAPxqTWpIWpLDkaHSBma7FKKUpYCqFf6zyauN\nmDr1+mLXGKtuHYBH2A20JJmLhNBYvPI7yYmPVLbVGSrYNG93Ofxb/IvEFS01\ncQyUOVh70kXIBtvGXj05zuaDNdGQckQCeM2/98Edspq/0mbebpMsEqYBO+QF\nAiImiwBjgdj5wVu8GuIS1E8PzPBJOq9GHcjp2F+1R8qlh2AMxXo2s6PUMcRY\nu+MmSAbP/vrxMZvPd7DVshXSseeR8JhOey38oqQ0CeJh1QSUp5sgdziNOUx6\nJPRQ7e+cOtmwRh8PGysdY/2SiOo1j6X938UBTFIN922XWcjdEqf5ZpVdKv2d\nYi3fkYk2EdJD4kZvnttG2XN1qKs0Kq9vTXpB9s2/5ZCA7oizGUsE350AUxYC\nVfpy1wLJOpMyHSkU0eLdcPJJWu5V3vQgRlfWZ/VnkZVQxtswzmDTkLjpIFur\nbFAuGFDXmcByaZxqvg4yHw8O9xAJBs+zMBSjmG0rP7Dfk2r0O0gq66h9zWQ8\naadd\r\n=iULH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDnTk2ZowndPqCLd+mtNpyL6TZk5NqZ6zHT1tchVPQuaAiEAun+atsalAe9hp5NY4w/qvKdmc3EnuMlu/HRwJw7bS8M="}]},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/obj-str_1.0.3_1547199068637_0.6331500070831044"},"_hasShrinkwrap":false},"1.1.0":{"name":"obj-str","version":"1.1.0","repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"description":"A tiny library for serializing Object values to Strings.","unpkg":"dist/obj-str.min.js","module":"dist/obj-str.mjs","main":"dist/obj-str.js","types":"index.d.ts","umd:name":"objstr","license":"MIT","author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"engines":{"node":">=4"},"scripts":{"build":"bundt","test":"uvu -r esm -i fixtures test"},"keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"devDependencies":{"@babel/core":"7.12.17","bundt":"1.1.2","esm":"3.2.25","uvu":"0.5.1"},"gitHead":"0b3e06087f5807eea4fbeef5d39332c74b860eab","bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"homepage":"https://github.com/lukeed/obj-str#readme","_id":"obj-str@1.1.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-iQNCv4NPzzVSnG4nVmkBsBwSq3+Z5/X/Yi4omFpzALC4ZbLXd4QByOFqWd+Khh2nQnbzhsklRxbDwhYKHotrYA==","shasum":"9df09178a4889ad7693ff1d25c872d67f2688d07","tarball":"https://registry.npmjs.org/obj-str/-/obj-str-1.1.0.tgz","fileCount":7,"unpackedSize":5365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgX5/bCRA9TVsSAnZWagAAB6EP/RAYb8uDIRk0Wd8qgPd+\nygocSQcf4u+/aZGKQdaCeSmYY8M9yIk/Ka6jiZ+UjA0qCmbomSz4V7XTxPNX\nz4pqDtAO1TAdnQfJRkfVFnqcM+xQVKKzHvcli1RL7BJzlzFiBgiG7IyGiaXJ\nFzOo1kCddra6Bhr1JlERuWIWi6lPUPpHzYkTDOgy//1xrwCzLVeUtwcpQhOA\nNuU7+B+FVShFGeYzjDGEcJqI5r5smF8+w123mRuF2Rdpf/zXbFpZMNGCXzMz\nJWFUzAB9vzbok8EUHdUIjTGkcln1x0qJOiO6rVdEN9GMmGF5RcgjDuYiNzfX\nZwE0ffCRybQSgm9j/adgeB4AZc9LPuztrzIx8XJOsJ3qHsnA+6eEDWu9eqRo\nPaVkHORf1Tmdm4VBM9NqYsHZZBaIE2QQdDQyQcnf+F53uiuLPzqRR9lxjoUo\ntgnW7ooL1yTJLvNedxRQsOqcMWMXfHalm8r2kHpSe04IRA4DoSwlCxVhR/Xg\nuWsvQIEsRD2rg6AOA7NZos8hxTtvcll3P+E0ZTFpMHeuCRWMomKyZwqDDUqR\nKX+PVgyg662M6g4rKancwbFlxOds0FSeJ6bgXRM59T8VDq4aHYCjCSqDG52m\nwrjPzFnUo0RFbneeaInlOAkQ6YH3C5CCTSu9Np9M4ogo6vV/1mbuPmSPL/lY\n1VAh\r\n=CBSR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVIaAPYvbZ+wFcdZwitO7rjmC3tcZTB0BUSqlFWL66RAiA7hWkfOqvTSjn0xgT/wEuYgUkTKRMYOOAGMO5oM/7GzA=="}]},"_npmUser":{"name":"lukeed","email":"luke@lukeed.com"},"directories":{},"maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/obj-str_1.1.0_1616879578671_0.8664011367773559"},"_hasShrinkwrap":false}},"readme":"# obj-str [![CI](https://github.com/lukeed/obj-str/workflows/CI/badge.svg)](https://github.com/lukeed/obj-str/actions) [![codecov](https://badgen.net/codecov/c/github/lukeed/obj-str)](https://codecov.io/gh/lukeed/obj-str)\n\n> A tiny (96B) library for serializing Object values to Strings.\n\nThis module's intended use is for converting an Object with CSS class names (as keys) to a space-delimited `className` string. Other modules have similar goals (like [`classnames`](https://npm.im/classnames)), but `obj-str` only does one thing. This is why it's only 100 bytes gzipped!\n\n_PS: I made this because [Preact 8.0 removed this built-in behavior](https://github.com/developit/preact/commit/b2c85e3f7fa89ebbf242b00f4cab7619641e3a52) and I wanted a quick, drop-in replacement._\n\n## Install\n\n```\n$ npm install --save obj-str\n```\n\n\n## Usage\n\n```js\nimport objstr from 'obj-str';\n\nobjstr({ foo:true, bar:false, baz:isTrue() });\n//=> 'foo baz'\n```\n\n### React\n\nWith React (or any of the React-like libraries!), you can take advantage of any `props` or `state` values in order to express conditional classes as an object.\n\n```js\nimport React from 'react';\nimport objstr from 'obj-str';\n\nconst TodoItem = ({ text, isDone, disabled }) => (\n  <li className={ objstr({ item:true, completed:isDone, disabled }) }>\n    <input type=\"checkbox\" disabled={ disabled } checked={ isDone } />\n    <label>{ text }</label>\n  </li>\n);\n```\n\n### Preact\n\nFor simple use, the [React](#react) example will work for Preact too. However, you may also define a custom vNode \"polyfill\" to automatically handle Objects when used inside `className`.\n\n> **Note:** For users of Preact 7.1 and below, _you do not need this module_! Your version includes this behavior out of the box!\n\n```js\nimport objstr from 'obj-str';\nimport { options } from 'preact';\n\nconst old = options.vnode;\n\noptions.vnode = vnode => {\n  const props = vnode.attributes;\n  if (props != null) {\n    const k = 'class' in props ? 'class' : 'className';\n    if (props[k] && typeof props[k]=='object') {\n      props[k] = objstr(props[k]);\n    }\n  }\n  old && old(vnode);\n}\n```\n\n\n## API\n\n### objstr(input)\n\n#### input\n\nType: `Object`\n\nA hashmap of keys & their truthy/falsey values. Booleans are preferred when speed is critically important.\n\n\n## Related\n\n- [babel-plugin-optimize-obj-str](./babel-plugin-optimize-obj-str) - Babel plugin to transform `obj-str` calls into optimized expressions.\n\n- [clsx](https://github.com/lukeed/clsx) - Drop-in replacement for `obj-str` and `classnames` – handles all (and multiple) input types.\n\n\n## License\n\nMIT © [Luke Edwards](http://lukeed.com)\n","maintainers":[{"name":"lukeed","email":"luke@lukeed.com"}],"time":{"modified":"2022-06-22T16:12:39.102Z","created":"2017-04-09T00:41:40.202Z","1.0.0":"2017-04-09T00:41:40.202Z","1.0.1":"2018-08-27T18:08:50.152Z","1.0.2":"2018-12-25T09:14:32.514Z","1.0.3":"2019-01-11T09:31:08.788Z","1.1.0":"2021-03-27T21:12:58.859Z"},"homepage":"https://github.com/lukeed/obj-str#readme","keywords":["react","preact","classes","classname","classnames","object","object-keys","object-string","object-values","serialize"],"repository":{"type":"git","url":"git+https://github.com/lukeed/obj-str.git"},"author":{"name":"Luke Edwards","email":"luke.edwards05@gmail.com","url":"https://lukeed.com"},"bugs":{"url":"https://github.com/lukeed/obj-str/issues"},"license":"MIT","readmeFilename":"readme.md","users":{"petershev":true}}