{"_id":"babel-plugin-incremental-dom","_rev":"26-ce96fccf0e942d5a5b1dfbd8a57adedb","name":"babel-plugin-incremental-dom","description":"Turn jsx into incremental-dom","dist-tags":{"latest":"3.4.0"},"versions":{"1.0.0":{"name":"babel-plugin-incremental-dom","version":"1.0.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/thejameskyle/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register"},"keywords":["babel-plugin"],"babel":{"loose":true},"gitHead":"c1608da7656129d58fc9befb03b011de0c4acfae","bugs":{"url":"https://github.com/thejameskyle/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/thejameskyle/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@1.0.0","_shasum":"c2cdd057df00b79f007015f39a144213d355795c","_from":".","_npmVersion":"2.13.0","_nodeVersion":"0.12.4","_npmUser":{"name":"thejameskyle","email":"me@thejameskyle.com"},"dist":{"shasum":"c2cdd057df00b79f007015f39a144213d355795c","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-1.0.0.tgz","integrity":"sha512-zpqGcxTbezzY2oDJUO4Xr/o6YZhAguKAGU+hOYfThgjMgUflYEwvlfBe87CpFVoyRo2khrcq91nRksOdpIBWYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE+uDGKPiOaxHk0Ar+f4McCOdvDvmrGSs4zzvCa/tzM1AiA9MGs7T428SfKgzPh5vfIWQpti4UNO2FbgJc4ZwjQgPw=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"1.0.1":{"name":"babel-plugin-incremental-dom","version":"1.0.1","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/thejameskyle/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"ce4ec7b03882e17332f3da1250e62521c10752e5","bugs":{"url":"https://github.com/thejameskyle/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/thejameskyle/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@1.0.1","_shasum":"71610d48df112ffc387c48e1cf858527af95f7f4","_from":".","_npmVersion":"2.13.0","_nodeVersion":"0.12.4","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"71610d48df112ffc387c48e1cf858527af95f7f4","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-1.0.1.tgz","integrity":"sha512-H5g8k9BNW1V+3x3wF2UcQ9pmKjISPHY+992kgNKQAETgLBe2nq21y/W2Gnbzvm+Gz5bAeeXMb+cx2bdvcxUq3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKF+WpBj+MW6cLNHxGD6UZiAc65nb9xIF/nLEBHxO+BgIhAIlYQcAD+ngr2mNUzy26vWg8kOYxTTrFexDBgUPzYryj"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"1.0.2":{"name":"babel-plugin-incremental-dom","version":"1.0.2","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/thejameskyle/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"0075cbf892033c82722bda7e80b7d738ccfca65a","bugs":{"url":"https://github.com/thejameskyle/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/thejameskyle/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@1.0.2","_shasum":"f8142a549edc601ef87992630d82b26cd37a8b2d","_from":".","_npmVersion":"2.13.0","_nodeVersion":"0.12.4","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"f8142a549edc601ef87992630d82b26cd37a8b2d","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-1.0.2.tgz","integrity":"sha512-3AZsKIE/mJC4JIyYw+Z7iczCYUYLzRaX9jvWGBptLcR/wypVkxAI301Qogw6YhTeStYFf/Sapz1UfngK4JlD1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXrpwPHDsIkpg/qjlc6TKfRWLRVsDLdoHnrUhlfCaDzAIhANGiL41xlXaD1U4jk5Arn+Tl0wVDx8FHQXo5F1tt1mrS"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"1.0.3":{"name":"babel-plugin-incremental-dom","version":"1.0.3","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/thejameskyle/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"945122931d20318cfeebfee111166905aa0be4c7","bugs":{"url":"https://github.com/thejameskyle/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/thejameskyle/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@1.0.3","_shasum":"59f419189ae99546a66d9ae1ce352dd6e500541c","_from":".","_npmVersion":"2.9.0","_nodeVersion":"0.12.2","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"59f419189ae99546a66d9ae1ce352dd6e500541c","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-1.0.3.tgz","integrity":"sha512-nV+FVj1mFae/Khu/+0u6wLXGydq79nlMfuEPgw8wlg/Ke5Q56TCBEL8Vcepi/JSLYtkFzFS/rsoyc0cLtB+A1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/BeAhYtrwek+wRMBv6bgAKkR4LMX/NxFfNT2AW10v/AiEAgQI0cVQOj85aGnmQnPPRMgRFPvL4jlouFMEWDRlrVss="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"2.0.0":{"name":"babel-plugin-incremental-dom","version":"2.0.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/babel-plugins/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","babel-eslint":"^4.0.0","eslint":"^0.24.1","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register","lint":"eslint src"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"7634eabd26a881e87b267365ff1cbe1cd7062663","bugs":{"url":"https://github.com/babel-plugins/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/babel-plugins/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@2.0.0","_shasum":"5fa9c8795990f8f51d1305c72d37f230414e8c16","_from":".","_npmVersion":"2.13.0","_nodeVersion":"0.12.4","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"5fa9c8795990f8f51d1305c72d37f230414e8c16","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-2.0.0.tgz","integrity":"sha512-6Zw82yeKH3fv/OZiOwPKvCVHo1MNvI2414Yh8RnUyP4uxZrLrzO/E3z9ODRFRZpLQ5ZkZkRLy3TPs/2BivPClg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQto2lbJw1JCr1sjfmyOg+k2UkeJHiXY9IHiG7gzqFaAiAPOrcDlBlQTMIoZ4b1T/DZJFKcDf+vfePOxKWCz5niwQ=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"2.0.1":{"name":"babel-plugin-incremental-dom","version":"2.0.1","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/babel-plugins/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","babel-eslint":"^4.0.0","eslint":"^0.24.1","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register","lint":"eslint src"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"905364d46accb0c0a26cb24436b86a17d07e3448","bugs":{"url":"https://github.com/babel-plugins/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/babel-plugins/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@2.0.1","_shasum":"2d7adc2036583bdff5ed432b34178badabc7f9aa","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"2d7adc2036583bdff5ed432b34178badabc7f9aa","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-2.0.1.tgz","integrity":"sha512-zmFVe1RDrJ7dmSJoghrpS6/rosqtJ6in4WrIld3Osm2eibtJtdB7t0gXGJ7Wiyu0QYMGgWESxm5dQ9tVXWXq9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICyrJ3Qbtf6RnhembbetRqbOLrqZqVm6+7GwqIhhyrLGAiADk/A4QlQtxo9aV6jIOwEWcwGNWKD8R/cgKc4vwi5ofg=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"2.1.0":{"name":"babel-plugin-incremental-dom","version":"2.1.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/babel-plugins/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","babel-eslint":"^4.0.0","eslint":"^0.24.1","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register","lint":"eslint src"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"f5884ccf97c36b187363dc2ed9b4c7239c5d7f56","bugs":{"url":"https://github.com/babel-plugins/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/babel-plugins/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@2.1.0","_shasum":"295af3a95a2404755584c32ea94ae58d8bc7e864","_from":".","_npmVersion":"2.11.3","_nodeVersion":"0.12.7","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"295af3a95a2404755584c32ea94ae58d8bc7e864","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-2.1.0.tgz","integrity":"sha512-NnPXW/FzDDsZ5Zhbs157DNDo2lOPfkzMszTE2QI1Dd5AWdet4Ga6I8WAafKLEpE4u5AIgMNkmkssFQUhDf0tpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDydaklN66IUad/QYpYtSEw0oPVP+38yRODYezuYqYOfAIgNjsnjYlWZgkG6kFgghE3qbYjOlXwak7PjhGI57mwpTE="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"2.2.0":{"name":"babel-plugin-incremental-dom","version":"2.2.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/babel-plugins/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^5.6.0","babel-eslint":"^4.0.0","eslint":"^0.24.1","mocha":"^2.2.5"},"scripts":{"build":"babel-plugin build","push":"babel-plugin publish","test":"mocha --compilers js:babel/register","lint":"eslint src"},"keywords":["babel-plugin","incremental-dom","jsx"],"babel":{"loose":true},"gitHead":"7c9495446c0d1621f8abea02297dc114599cac1c","bugs":{"url":"https://github.com/babel-plugins/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/babel-plugins/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@2.2.0","_shasum":"493989103f45cbece4adc19c0485f5f603c92e89","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"493989103f45cbece4adc19c0485f5f603c92e89","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-2.2.0.tgz","integrity":"sha512-fjQq6nMfrPmbJj5Y6pYoJ3qfB4ftb380aFmcaOcx2q82f8uPvsrx4yRUUxkPsjItB8luUlo5eJf3FP6j68Jydg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnEgvHGPw4ZS/IHOwHqJcyNl1N/eRQiaX0yvPZQ8xJNQIgPLTaUhyG849Kb5DmhC/9Wz1HwO0SEHgzqMXQK/5b4pA="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.0.0":{"name":"babel-plugin-incremental-dom","version":"3.0.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"1881ffcbc009cc285d71d36a18f445f22f35f490","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.0.0","_shasum":"f7958aecbcf14ace606941f601177980d09466b1","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"f7958aecbcf14ace606941f601177980d09466b1","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.0.0.tgz","integrity":"sha512-4DAyhbf5CXm8rgxMMIS+E8jiBQ5WthuwjpX/Ydp6+AT+79e+yS1RmzRIHRNGifRAXk91qr9G5li9fVGzzg6QQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBKhUWHRDgElAxekDn7MIRkNRLePFQDdgFBknBdXfhqAiB+mgZ0qHwS9Pcak6gUErSvK6J50hmhGycEPZaLUMjrUw=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.0.0.tgz_1455955370306_0.06733371806330979"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.0.1":{"name":"babel-plugin-incremental-dom","version":"3.0.1","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"ba519d4d54230aceb92076e7c5e114983a69bfa0","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.0.1","_shasum":"022d082f9a5dd6a776f92433062d4fff33824bd0","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"022d082f9a5dd6a776f92433062d4fff33824bd0","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.0.1.tgz","integrity":"sha512-OWs2OIdzL1MF7KJx99NVXzukiCMzeFyLpCqQNmG0UH8tQjyVSzxjlT2BYbJd5PiEVr3qhluJ78Qa7DOhOX8r/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxrobych0ZqHW1hEqYSLVsTY8uKxDY4RMdK42ii+DwCAIgQghskd5GKw67PRZ0FXpLqUmt0sk0YVjdEJavHOAKfWk="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.0.1.tgz_1456190520690_0.9256808450445533"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.0.2":{"name":"babel-plugin-incremental-dom","version":"3.0.2","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"8bf7a2c9ff4e1e25d3986a1fcb9f60a65891106f","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.0.2","_shasum":"d58bc88be4459dc6581f1dc8e2600e5ca6edb10b","_from":".","_npmVersion":"2.14.3","_nodeVersion":"4.1.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"d58bc88be4459dc6581f1dc8e2600e5ca6edb10b","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.0.2.tgz","integrity":"sha512-5WHSPrD7USUIoAEKL5ZVnIAZFNAqQuj22/V/s+bOeIUoc4wLb71A/AM1MLI/X7jEl8TBnHsp7tSNmEdJ5js1Qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBP+lSA+beeDvxwXvBpWjOcykQNjvyROPGBXASuq89lxAiBXVhfm98hslNbyd7JI2f2MGaPIS5GsGo46ORV6NCxUfg=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.0.2.tgz_1457802365040_0.10099188098683953"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.0.3":{"name":"babel-plugin-incremental-dom","version":"3.0.3","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"9e12853bb83ca154520c751c927db1e15811831c","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.0.3","_shasum":"a10496ae79a81a0e8b3090328016124bc423259b","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"a10496ae79a81a0e8b3090328016124bc423259b","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.0.3.tgz","integrity":"sha512-5yISTQw12m8C4frznNysj5aNP6qyjN0fsLAa0NXpUFo+3ItL7IzDBq0mGXCi7WP67Lt5fNzvw138LumDisg0Xw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcn5dhWIDm8VdJM4JMzEiO7awifyhSws3qZ1U9bjUfhAiAZU7QEzHitL24YADBTLJ4jsHbpzsXZAKEuHbiZMMaHeg=="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.0.3.tgz_1459790321317_0.17077883589081466"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.1.0":{"name":"babel-plugin-incremental-dom","version":"3.1.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","dependencies":{"babel-types":"^6.0.0"},"devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"858a417da458ec63cb7838c61b7211a1d86d8380","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.1.0","_shasum":"d7920dacefca6b09592ffc02f1854e2bb9745977","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"d7920dacefca6b09592ffc02f1854e2bb9745977","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.1.0.tgz","integrity":"sha512-hJpJSLOWlqZ0AFmcjlsUHVA+WBcrqRCZAyfZw64ypFDiz9Y9uf+nzYKm7qgBFpoSNUluVlKkbbB8HRhWjQqf7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCviQMuuTccsqIg46D3qp5k/OIAEg29QMum/9pRYrKXRgIgedYB+OfvA1K++ZCmERGyxslqfL32oFEF/VqfBBiGhFU="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.1.0.tgz_1462413443754_0.11513709905557334"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.2.0":{"name":"babel-plugin-incremental-dom","version":"3.2.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","dependencies":{"babel-types":"^6.0.0"},"devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"699ef1732552c4f66471a424cbd7f88aa00510c9","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.2.0","_shasum":"d03cc4b9d92eeabd9928585870eb4ac1052edb97","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"d03cc4b9d92eeabd9928585870eb4ac1052edb97","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.2.0.tgz","integrity":"sha512-OBoX78zj+LZ0tt4Q28VcoZsMwGRJejKuz1sVDUsIHM8eN8t3bLqdNUkvO6GxRhHLVvl9edlWDRL5BV4aJnvm/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9W6psIJOxMBWkmqj869rDUIWdV5nYfpsourDZ6ruK9gIhALDkCvgqACqWWPRmTsc1yVMdNcnBxKq7/dbYtpT6UPnc"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.2.0.tgz_1463425461817_0.06560247368179262"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.2.1":{"name":"babel-plugin-incremental-dom","version":"3.2.1","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","dependencies":{"babel-types":"^6.0.0"},"devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"4e2ae13c43b2e8f0221b6f3bec2cc865783e72aa","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.2.1","_shasum":"df841b8ab4ba8e6facf4385829a25598bed236ef","_from":".","_npmVersion":"3.8.8","_nodeVersion":"5.11.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"df841b8ab4ba8e6facf4385829a25598bed236ef","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.2.1.tgz","integrity":"sha512-9xLEDg16ln07B+FXnzudY3NXGZUGvguFrKU+KchNpJG8euQ/HAmQjZYb2kyorkLRBXB5Jk7KA2Lo31doa6kIdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDa9lINezJm/sr0KM6iv1kYcUD+CRPebOLXCB29ozOnqwIhAJNIkHRCaTQsllUcYzByTojamPOlNHt1+1br8a3/vC1S"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.2.1.tgz_1463852517681_0.8422017334960401"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.3.0":{"name":"babel-plugin-incremental-dom","version":"3.3.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","dependencies":{"babel-types":"^6.0.0"},"devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"ab9909ec701882a4f23d8fad0adc6ff1d9cf7850","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.3.0","_shasum":"3e2ae949e392f714b1c2a22e20db6b9041654a15","_from":".","_npmVersion":"3.8.8","_nodeVersion":"5.11.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"3e2ae949e392f714b1c2a22e20db6b9041654a15","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.3.0.tgz","integrity":"sha512-csT5DEvd6Sj1CDoFZo83Zm3UuX5tlypcYrvdjcCc4qgjPZ1F7Xbx3MQPw5dUUnkxJkpruG0ugVkcv5bL5UIKHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaYS+qYPsnPYYrYIPCgz6q2sLmAeYwzOgs0Ghg1u8vCwIgApJ6K4R0GVFBBwsotXBx9cnK4I4Q1TSMa9ibNOVL230="}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.3.0.tgz_1464150657727_0.6626488685142249"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"},"3.4.0":{"name":"babel-plugin-incremental-dom","version":"3.4.0","description":"Turn jsx into incremental-dom","repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"license":"MIT","main":"lib/index.js","dependencies":{"babel-plugin-syntax-jsx":"^6.8.0","babel-types":"^6.0.0"},"devDependencies":{"babel":"^6.0.0","babel-cli":"^6.0.0","babel-core":"^6.0.0","babel-eslint":"^4.0.0","babel-preset-es2015":"^6.3.13","babel-register":"^6.4.3","eslint":"^1.0.0","mocha":"^2.2.5"},"scripts":{"preversion":"npm test","version":"npm run build","build":"babel src --out-dir lib --copy-files","test":"mocha --compilers js:babel-register && npm run lint","lint":"eslint src"},"keywords":["babel-plugin","transform","incremental-dom","jsx"],"gitHead":"f391a227bea5563719eee34d7e29acd64a78844b","bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","_id":"babel-plugin-incremental-dom@3.4.0","_shasum":"f08e7856afbe6f17f866d8ca6eda977237795fb1","_from":".","_npmVersion":"3.8.8","_nodeVersion":"5.11.0","_npmUser":{"name":"jridgewell","email":"justin+npm@ridgewell.name"},"dist":{"shasum":"f08e7856afbe6f17f866d8ca6eda977237795fb1","tarball":"https://registry.npmjs.org/babel-plugin-incremental-dom/-/babel-plugin-incremental-dom-3.4.0.tgz","integrity":"sha512-w7cACc6pN6fBBMZxxGkNFnsVAvZHnAa1eOxTBwh383mja4GInf1kzvNeCVgDpKmrV4cJIDD9QUAqxcFqFCfV8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpODfyX7RI5Q4mZNzlDXntVuJA/24p8+E3xQp4OqqJEgIhAJL5gTbCoiEBdzl5xXZ25ZcyEfms5Mi0tjpwqSXa3GR+"}]},"maintainers":[{"name":"thejameskyle","email":"me@thejameskyle.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/babel-plugin-incremental-dom-3.4.0.tgz_1465356206312_0.09576912084594369"},"deprecated":"Package has been renamed to babel-plugin-transform-incremental-dom"}},"readme":"# babel-plugin-incremental-dom [![Build Status](https://travis-ci.org/jridgewell/babel-plugin-incremental-dom.svg?branch=master)](https://travis-ci.org/jridgewell/babel-plugin-incremental-dom)\n\nTurn JSX into [Incremental DOM](http://google.github.io/incremental-dom/).\n\n## Example\n\n**In**\n\n```javascript\nexport default function render(data) {\n    var header = data.conditional ? <div /> : null;\n    var collection = data.items.map((item) => {\n        return <li key={item.id} class={item.className}>{item.name}</li>;\n    });\n\n    return <div id=\"container\">\n        {header}\n        <ul>{collection}</ul>\n        <p {...data.props}>Some features</p>\n    </div>;\n}\n```\n\n**Out** (default, unoptimized options)\n\n```javascript\nexport default function render(data) {\n    var header = data.conditional ? _jsxWrapper(function () {\n        return elementVoid(\"div\");\n    }) : null;\n    var collection = data.items.map(function (item) {\n        return _jsxWrapper(function (_item$id, _item$className, _item$name) {\n            elementOpen(\"li\", _item$id, [\"key\", _item$id], \"class\", _item$className);\n\n            _renderArbitrary(_item$name);\n\n            return elementClose(\"li\");\n        }, [item.id, item.className, item.name]);\n    });\n\n    elementOpen(\"div\", null, [\"id\", \"container\"]);\n\n    _renderArbitrary(header);\n\n    elementOpen(\"ul\");\n\n    _renderArbitrary(collection);\n\n    elementClose(\"ul\");\n    elementOpenStart(\"p\");\n\n    _forOwn(data.props, _attr);\n\n    elementOpenEnd(\"p\");\n    text(\"Some features\");\n    elementClose(\"p\");\n    return elementClose(\"div\");\n}\n\nvar _jsxWrapper = function _jsxWrapper(func, args) {\n    var wrapper = args ? function wrapper() {\n        return func.apply(this, args);\n    } : func;\n    wrapper.__jsxDOMWrapper = true;\n    return wrapper;\n};\n\nvar _attr = function _attr(value, name) {\n    attr(name, value);\n};\n\nvar _hasOwn = Object.prototype.hasOwnProperty;\n\nvar _forOwn = function _forOwn(object, iterator) {\n    for (var prop in object) {\n        if (_hasOwn.call(object, prop)) iterator(object[prop], prop);\n    }\n};\n\nvar _renderArbitrary = function _renderArbitrary(child) {\n    var type = typeof child;\n\n    if (type === \"number\" || type === \"string\" || child && child instanceof String) {\n        text(child);\n    } else if (type === \"function\" && child.__jsxDOMWrapper) {\n        child();\n    } else if (Array.isArray(child)) {\n        child.forEach(_renderArbitrary);\n    } else {\n        _forOwn(child, _renderArbitrary);\n    }\n};\n```\n\n## Installation\n\n```sh\n$ npm install babel-plugin-incremental-dom\n```\n\n## Usage\n\n### Via `.babelrc` (Recommended)\n\n**.babelrc**\n\n```json\n{\n  \"presets\": [\"es2015\"],\n  \"plugins\": [\"incremental-dom\"]\n}\n```\n\nAn optional [function prefix](#function-prefix), [runtime](#runtime),\nand [hoist boolean](#hoist) may be passed.\n\n### Via CLI\n\n```sh\n$ babel --plugins incremental-dom script.js\n```\n\n### Via Node API\n\n```javascript\nrequire(\"babel-core\").transform(\"code\", {\n  \"presets\": [\"es2015\"],\n  \"plugins\": [\"incremental-dom\"],\n});\n```\n\nAn optional [function prefix](#function-prefix), [runtime](#runtime),\nand [hoist boolean](#hoist) may be passed.\n\n### Options\n\n#### Hoist\n\nYou may enable the experimental `hoist` option to hoist static attribute\narrays and element wrappers to the highest available scope. This avoids\nexpensive instance allocations when running the render function multiple\ntimes.\n\n```js\n// Disabled (default)\nfunction render() {\n    return elementVoid(\"div\", \"key\", [\"id\", \"container\"]);\n}\n```\n\n```js\n// Enabled\nvar _statics = [\"id\", \"container\"];\n\nfunction render() {\n    return elementVoid(\"div\", \"key\", _statics);\n}\n```\n\nTo do this, simply add the `hoist` option to the Incremental DOM plugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"hoist\": true\n    }\n  ]]\n}\n```\n\n#### Force Statics Key\n\nIncremental DOM [recommends](http://google.github.io/incremental-dom/#rendering-dom/statics-array)\nonly using static attribute arrays when a `key` is specified. For that\nreason this plugin will deoptimize static attributes into dynamic unless\nthere is a key.\n\nAnother option is to generate a cryptographically secure v4 UUID `key`,\nsince the chance of collisions is so infinitesimal.\n\n```js\n// Disabled (default)\nfunction render(condition) {\n  elementVoid(\"a\", \"key\", [\"href\", \"http://key/specified\"]);\n  if (condition)\n    elementVoid(\"a\", null, null, \"href\", \"http://example.com\");\n  } else {\n    elementVoid(\"a\", null, null, \"href\", \"http://other.com\");\n  }\n}\n```\n\n```js\n// Enabled\nfunction render() {\n  elementVoid(\"a\", \"key\", [\"href\", \"http://key/specified\"]);\n  if (condition)\n    elementVoid(\"a\", \"8ad02822-f391-48fb-a277-8065f7f92a99\", [\"href\", \"http://example.com\"]);\n  } else {\n    elementVoid(\"a\", \"adbe4414-e6ad-41c0-aae2-1ca578653119\", [\"href\", \"http://other.com\"]);\n  }\n}\n```\n\nTo do this, simply add the `forceStatics` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"forceStatics\": true\n    }\n  ]]\n}\n```\n\n#### Namspaced Attributes\n\nIncremental DOM supports a few Attribute Namespaces, but those are\nforeign to JSX. You can enabled them with the `namespaceAttributes`\noption. Note that this does not enable Namespaced Elements.\n\n```js\n// Enabled\nfunction render() {\n    return elementVoid(\"a\", null, [\"xml:static\", true], \"xlink:href\", \"https\");\n}\n```\n\nTo do this, simply add the `namespaceAttributes` option to the\nIncremental DOM plugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"namespaceAttributes\": true\n    }\n  ]]\n}\n```\n\n#### Inline JSX Expressions\n\nYou may enable the experimental `inlineExpressions` option to attempt to\ninline any variables declared outside the root JSX element. This can\nsave you from allocating needless closure wrappers around elements that\nare only referenced inside the root element.\n\n\n```js\n// Disabled (default)\nfunction render() {\n  var header = _jsxWrapper(function () {\n    return elementVoid(\"header\");\n  });\n  elementOpen(\"body\");\n\n  _renderArbitrary(header);\n\n  return elementClose(\"body\");\n}\n```\n\n```js\n// Enabled\nfunction render() {\n  elementOpen(\"body\");\n  elementVoid(\"header\");\n  return elementClose(\"body\");\n}\n```\n\nTo do this, simply add the `inlineExpressions` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"inlineExpressions\": true\n    }\n  ]]\n}\n```\n\n#### Fast Root\n\nYou may enable the experimental `fastRoot` option so that JSX tags\ninside the root element are never wrapped inside a closure. For code\nwith array maps, this should significantly decrease memory usage and\nincrease speed.\n\n\n```js\n// Disabled (default)\nfunction render() {\n  elementOpen(\"ul\");\n\n  _renderArbitrary(items.map(function (item) {\n    return _jsxWrapper(function (_item$name) {\n      elementOpen(\"li\");\n\n      _renderArbitrary(_item$name);\n\n      return elementClose(\"li\");\n    }, [item.name]);\n  }));\n\n  return elementClose(\"ul\");\n}\n```\n\n```js\n// Enabled\nfunction render() {\n  elementOpen(\"ul\");\n\n  items.map(function (item) {\n    elementOpen(\"li\");\n\n    _renderArbitrary(item.name);\n\n    return elementClose(\"li\");\n  });\n\n  return elementClose(\"ul\");\n}\n```\n\nTo do this, simply add the `fastRoot` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"fastRoot\": true\n    }\n  ]]\n}\n```\n\n\nAlternatively, you may enable and disable this with inline comments:\n\n```jsx\nfunction render() {\n    /**\n     * Enable for this tree\n     * @incremental-dom enable-fastRoot\n     */\n    return <div>{\n      items.map(function(item) {\n        return <li>{item.name}</li>;\n      })\n    }</div>;\n}\n\n/**\n * Enable for everything under this function\n * @incremental-dom enable-fastRoot\n */\nfunction render() {\n    /**\n     * Disable fastroot for this tree\n     * @incremental-dom disable-fastRoot\n     */\n    return <div>{\n      items.map(function(item) {\n        return <li>{item.name}</li>;\n      })\n    }</div>;\n}\n```\n\n#### Components\n\nYou may enable the experimental `components` option so that JSX tags\nthat start with an upper case letter are passed as a reference to\nincremental DOM calls, instead of as a string. This can be useful when\nyour code implements components through these kind of calls, though\nthat's not done by incremental DOM automatically. Note that this will\nbreak unless you have code to handle it.\n\n\n```js\n// Disabled (default)\nfunction render() {\n  elementVoid(\"MyComponent\");\n}\n```\n\n```js\n// Enabled\nfunction render() {\n  elementVoid(MyComponent);\n}\n```\n\nTo do this, simply add the `components` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"components\": true\n    }\n  ]]\n}\n```\n\n#### Function Prefix\n\nBy deafult, `babel-plugin-incremental-dom` directly calls Incremental\nDOM functions:\n\n```js\n// Disabled (default)\nfunction render() {\n  elementOpen(\"div\");\n  elementClose(\"div\");\n}\n```\n\nIf you are instead including Incremental DOM via a browser script, it\nmay be easier to reference the functions from the `IncrementalDOM`\nobject:\n\n```js\n// Enabled with `IncrementalDOM`\nfunction render() {\n  IncrementalDOM.elementOpen(\"div\");\n  IncrementalDOM.elementClose(\"div\");\n}\n```\n\nTo do this, simply add the `prefix` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"prefix\": \"IncrementalDOM\"\n    }\n  ]]\n}\n```\n\n#### Runtime\n\nBy deafult, `babel-plugin-incremental-dom` injects several helpers into\neach file as needed. When transforming multiple files with JSX, you can\navoid this helper duplication by specifying a runtime library to use\ninstead.\n\nThe runtime's required functions are:\n\n- `attr`\n\n  Not to be confused with IncrementalDOM's own `#attr` function, the\n  runtime's `attr` must take in a `value` and `attrName` and call\n  IncrementalDOM's `#attr`. Basically, it flip flops its parameters so\n  that `IncrementalDOM#attr` can be used in a `Array#forEach` like\n  method signature.\n\n  ```js\n  runtime.attr = function(value, attrName) {\n    IncrementalDOM.attr(attrName, value);\n  };\n  ```\n\n- `forOwn`\n\n  No surprises here, this iterates over every enumerable-own property of\n  `object`, calling `iterator` with the property's value and name.\n\n  ```js\n  runtime.forOwn = function(object, iterator) {\n    var hasOwn = Object.prototype.hasOwnProperty;\n    for (var prop in object) {\n      if (hasOwn.call(object, prop)) {\n        iterator(object[prop], prop);\n      }\n    }\n  };\n  ```\n\n- `jsxWrapper`\n\n  To prevent iDOM's incremental nature from screwing up our beautiful\n  JSX syntax, certain elements must be wrapped in a function closure\n  that will be later evaluated. That closure will be passed into\n  `jsxWrapper`, along with an array of any (if any) arguments\n  needed to render the contained JSX element.\n\n  Note it is not `jsxWrapper`'s responsibility to create the JSX\n  closure, merely to help identify the passed in closure later. Here, we\n  set the `__jsxDOMWrapper` property of the returned closure.\n\n  ```js\n  runtime.jsxWrapper = function(elementClosure, args) {\n    var wrapper = args ? function() {\n      return elementClosure.apply(this, args);\n    } : jsxClosure;\n    wrapper.__jsxDOMWrapper = true;\n    return wrapper;\n  }\n  ```\n\n- `renderArbitrary`\n\n  To render child elements correctly, we'll need to be able to identify\n  them. `renderArbitrary` receives a `child`, and must call the\n  appropriate action. For string and numbers, that's to call\n  `IncrementalDOM#text`. For wrapped JSX Closures, that's to invoke the\n  closure. For arrays, that's to render every element. And for objects,\n  that's to render every property.\n\n  Note that we identify JSX Closures by the `__jsxDOMWrapper` property\n  we set inside the `jsxWrapper` runtime function.\n\n  ```js\n  runtime.renderArbitrary = function _renderArbitrary(child) {\n    var type = typeof child;\n    if (type === \"number\" || (type === string || type === 'object' && child instanceof String)) {\n      text(child);\n    } else if (type === \"function\" && child.__jsxDOMWrapper) {\n      child();\n    } else if (Array.isArray(child)) {\n      child.forEach(_renderArbitrary);\n    } else if (type === 'object' && String(child) === '[object Object]') {\n      runtime.forOwn(child, _renderArbitrary);\n    }\n  }\n  ```\n\nTo do this, simply add the `runtime` option to the Incremental DOM\nplugin:\n\n```json\n{\n  \"plugins\": [[\n    \"incremental-dom\", {\n      \"runtime\": \"iDOMHelpers\"\n    }\n  ]]\n}\n```\n","maintainers":[{"email":"justin+npm@ridgewell.name","name":"jridgewell"},{"email":"me@thejameskyle.com","name":"thejameskyle"}],"time":{"modified":"2022-06-13T04:01:41.353Z","created":"2015-07-24T19:33:48.216Z","1.0.0":"2015-07-24T19:33:48.216Z","1.0.1":"2015-07-24T21:04:33.401Z","1.0.2":"2015-07-24T22:29:35.381Z","1.0.3":"2015-07-25T01:27:59.622Z","2.0.0":"2015-09-14T18:28:16.732Z","2.0.1":"2015-09-23T17:46:24.013Z","2.1.0":"2015-09-29T01:43:53.218Z","2.2.0":"2015-10-21T22:33:58.196Z","2.3.0":"2016-02-15T10:05:06.334Z","3.0.0":"2016-02-20T08:02:53.373Z","3.0.1":"2016-02-23T01:22:05.810Z","3.0.2":"2016-03-12T17:06:07.285Z","3.0.3":"2016-04-04T17:18:43.724Z","3.1.0":"2016-05-05T01:57:26.096Z","3.2.0":"2016-05-16T19:04:23.852Z","3.2.1":"2016-05-21T17:42:00.034Z","3.3.0":"2016-05-25T04:30:59.045Z","3.4.0":"2016-06-08T03:23:28.272Z"},"homepage":"https://github.com/jridgewell/babel-plugin-incremental-dom#readme","keywords":["babel-plugin","transform","incremental-dom","jsx"],"repository":{"type":"git","url":"git+https://github.com/jridgewell/babel-plugin-incremental-dom.git"},"bugs":{"url":"https://github.com/jridgewell/babel-plugin-incremental-dom/issues"},"license":"MIT","readmeFilename":"README.md","users":{"moimikey":true,"standy":true}}