{"_id":"@babakness/exhaustive-type-checking","_rev":"8-b817431b45ce88361bcbe5531376a110","name":"@babakness/exhaustive-type-checking","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.1":{"name":"@babakness/exhaustive-type-checking","version":"0.0.1","main":"lib/index.js","license":"MIT","scripts":{"test":"ts-node test/tests.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"gitHead":"15b20d9c4689c8c69e3117fcc5d686f7ab476301","description":"<img src=\"https://raw.githubusercontent.com/babakness/exhaustive-literal-type-checking/master/.github/images/literal-type-checking.gif\" />","_id":"@babakness/exhaustive-type-checking@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"dist":{"integrity":"sha512-ZPnKiSJcAJTdrJyzLTNF0yUtErOcAnXMKwekOwcmTaFKmziY0k2pTufnOGTVFgOKqUtOEF6mPdf8Oh0khFX2ew==","shasum":"4260e951f0851d2eb7af1f2e9ad113aa30846d88","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.0.1.tgz","fileCount":9,"unpackedSize":1966280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcopVlCRA9TVsSAnZWagAAlU0P/3ZQp7UnXKY4fGsF4rwQ\nmeFxLKew4uCqmzrcEiAhDONbFjV7ghp69PwqdOtedc1hKjxUG1JwxVib0KK0\nSSTB32pbUBxzvJey1UxyLSjbAeJmdnQWxRazs8ybVgmreQRqgDNEvwc5quj6\ndWR/KFfHGZbUh7xL8dZ2+q7zqBGCteqUOkb/72GQtSffzfqe8N1kLKKYEDrr\nzv6nK2O8UnFxNhjrxUkJmwOBRFyhBRgnh9ysXJ8vMcKXMRP6TCloNFJzPeFD\nNlZgjWF4K+e3v9arycmN2hkzIm4TetVoBbvzoBJywJ16pU7I5FGNFptzq5K6\nkUokrn2s4RQXZD024HeEosZjT8lOGb/wONAAbp2D7FLd/auMgcucHJ1o4WKT\ntgnJhAXI1EIdBdmKifHlVGFt6FT5iuKg9ilKeij6S4ph5FP2dd9WUTq7wqVE\ng5tR+rRTByzWB6rpf3oMj7ATjk4TFebOLcmHZ2BrsgDg44UJN8pKc4tKYbks\nO6kVEXsEbIysB1zVGx0wQmeP87WjZXyDQqv0/dBBTkcIA0zCXC/S+VrgiaVj\npZogiDoArt9mMlgeR+GdP521SBS5MNdu1xOYb/r9S0v7GYUjBi+VIdw179ZS\nhcrLtMNOX8jU/XpOMgZYVxOr/OVube9BNwtfyycRdGiXqbjtWaGyWAmAjsv+\nwrPv\r\n=AWXS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvHL4IPGKHCPRb6iCiKrB86oV5zzjHPXRC3Elh8/MXhAiEA3dP/LiEb25IR9CuqR3RcUI99W6wVzje/BeIfRLHOWrM="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.0.1_1554158948847_0.7119558971541906"},"_hasShrinkwrap":false},"0.0.2":{"name":"@babakness/exhaustive-type-checking","version":"0.0.2","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"_id":"@babakness/exhaustive-type-checking@0.0.2","dist":{"shasum":"c93892d6fe63b1c0b00e28b73adfe54fdd90a5df","integrity":"sha512-OK/cPhTso6hkm9G3mkWuB98s0DCdlHRCWM7fvs+NxldhHqfY34lvZRMgCotWqw52cZH/kiaFE75D+eDCl0xWqQ==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.0.2.tgz","fileCount":13,"unpackedSize":1964537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcopjWCRA9TVsSAnZWagAAk2wQAJWw52GH7rmE8XVIz9T1\n5ko6WW1ZlMQsAYNFtd6RUWO+2Q53bay6XUY6ek9+Is1yby4KcrCtlxprvBD5\nDpFq7gl44XAs+uZPrzuaXgRXaU5ky09wBbZjgdJSR5XKnF9Zg4bJ7v8s/Vl7\niwAcPxh2fBlCmX2U7fb39EAKk7cO4cVDwcpbXygLi343aRmwTOBMmdXWwV0U\nkwD3xGYzVvEY3fR/97XdTr10aiBnj4WU3X00GAHPXWyNZTz5396oYIMxMPMZ\n5TDn2i9vidIPNz74q4W7mBy/pRtYKZMOoku88xFBIBa1Lm7Jps8FsSQqCf/g\nA2txiO/0QKGrFLJQOX9RmhDvr5JfnNMYgs0cYU8bVl2MJYyeTvPm/TGvs1tv\njhIaBr310Yi6hGwSlgXUWs4DgdszbbY6vopj1VgOBGtWnNAk20KSI3fm7mD/\n4coSTcA8PvClxyP0ma6r1IVudN55XGA1goLNlh8seeCuLvnWXEvS1bfQ6fQs\n4b+vYD+PV/CokP0ghu/OZoaQw9ni8P46/P+VgvVCUe6SGWdprm76Ng0zgJG8\nkl+iyFC1/amCOBtUVGgkBgvzlecah8rTuq87ae5k2jVJznhTl0cTCNkYGs8k\nW2zqAueuE5nwlUQMfsZolx3bQ3m1xJKyeNzuxzwRvKs9IcjcRRlvNbqb0KHJ\nYsBx\r\n=75XU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaXw8JLcllnQMdRivcY7ViB2bfaEv5l5gbl/1g/13fCwIhAJR4Viu4XQDSIXwtT0w6JhRcE1b+wJZ3s0Q20ucMrdby"}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.0.2_1554159829282_0.9032087332794605"},"_hasShrinkwrap":false},"0.0.3":{"name":"@babakness/exhaustive-type-checking","version":"0.0.3","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"_id":"@babakness/exhaustive-type-checking@0.0.3","dist":{"shasum":"a2565bd7f5805fd522a948811ab4dd59aceceded","integrity":"sha512-5ewYHp5C0gTHqu0JxAEXjd9/hGVgX9BpYh0/SucaNY6sYkzZRKiMOUJhj/jEvlgnfmfzmYPMscM7JVRHLTIgXA==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.0.3.tgz","fileCount":13,"unpackedSize":1964869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcou28CRA9TVsSAnZWagAAAFYP/RXQAD8IuwOh1m6wTrS0\n40beO01MT5lxJRLnaW4QzPametAE7sEdA0u8+I6i/GQZTD0Nl/1VGToitPGd\nlliAkH6ckMQY+htqrh8MhF5KvMAkGb2mia7ieiblzLL4sq3lY/dPQWdLNdgi\nbOCcLz+sSLySJ4TWycMKqGRUEJq/dhF0M9b2joUefzuCwHOh+RQKtmtJKCzW\nw96uSzi2DcUvUT4of6LUsQQf0SinvbRCq82YNv+/VRf/O3CGs6aT5EftpdId\n7i1kJnwXdS42Aude/YAhQN639pAiqq8aqIEN1M3hV6JVs3Zao7vnOeY8U1V3\nmi/Z/PLByUVE8y0Z+jjjUWRy5qEufrxCC1eolqEoQTK+3VS0Xl19H5hsWF7U\nUAdiLdS/A8mzWRI7C44t3SKeR4KRpr5ITZgIx8S+iQpH2pSpCKCx4iCLjOr3\nopY8eByy7solHEeYDKBMo3awLghTsCWnH16U+LaLBXZJpkaMWLgRsFIZoeZO\nP4jUdErYRbEalvM/JooNrL4zA29jNzRhD9SqemFmThYCw9q0UGY6c1mf3VXC\nnhwQTxBQTMXXTtbSEXoKCZpeHue9aTZp2p8BYnFQJd8Mpv6tgjV4AxhvSoec\nrsn2C5iaXSXEc+LCIotfJBPrEE1dWBxsaAHcwi9AO/R2SXeeFwbhyHg3wwhu\n6fPA\r\n=6AnF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1WcXmsMW/mAxvWxo0yhFt0CT7HjjK0GmDAoPhMoXloQIhAI5Ya4A1ln/YcK0Rwfs2hmbdr/jw88bVHGCMGmPdSeGI"}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.0.3_1554181563488_0.32105577811746877"},"_hasShrinkwrap":false},"0.0.4":{"name":"@babakness/exhaustive-type-checking","version":"0.0.4","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"_id":"@babakness/exhaustive-type-checking@0.0.4","dist":{"shasum":"5fdbcbbf9c1c0bfd899b768e6c55ff0bd820bed2","integrity":"sha512-RNGH5m0th9Ll1ww/WLeuKXOrMvuTL6fRrMolCM+SZVlOhl4NzvdXuFgitRZI8+oEx2O+2KcWftXZBzUkQpyGjQ==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.0.4.tgz","fileCount":13,"unpackedSize":1964869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcovIYCRA9TVsSAnZWagAAaFEP/jSBrFEIT7dvw+7o6vkH\ny1vsEYFp9+0Yqb8/0cFVGOyVIshxhop0UV3EXpFMOIfQPlRRoJFMXe/VCTox\nwr7sIVBMbIJpjiJQh9628AbduwGORTnXhl4Gr+dWyJeiU6Um1KOZ4+ANWQdo\nzbEWz6HHRNFgrC/lO/8dC98ZJK84DbzglhZmqZ4ZubVHxeI/QP81qBJgymlF\nqUGipWGjJa8qPqJRcS65zJwir+si7j37PCM2e6avavXID5bRDb3VFXOpcXhK\njH+E3MFbRUrWQRDa8u55xlYTar5dLCZjis1ZhLHk9SI2VOAYwZmu/lwYHCR1\nkDbXooKHAaUJ5hEVGUqZ9cU5SThTrr/gZog2DkZtdQVr3ALCYs1sOW1ciBev\n8Bq6GHuYL7KTKfz+5oDxHM0neKv4KzkKD1K+hgIx2sp6MG4UCRggUjbrgCvK\nKP6/StKQxLak1x2pmQR8j+gMGw8VA07W6MOjKhx8N6QgYDuJQAkzy30WtS6P\nv9JhMte06bKWkUIolB5erjmhZ3TLPW/sm/TR/QwDs1fjPdr91B8wpof2wEbE\n7HFaDTemyLs4USdagh40/arVTEN4QrUdg+6rX/097JcNQOqQbvXBSoRxnJYE\nIieiJ/Toy4yH6/rQOtZE47afq1XwSK5Ti37wD0fyc+dA9y7mYRqjDO7tB6ji\nOOgy\r\n=8+Vu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFO+mQ7pjsrWxoetLgfcwn7lqNvIxh+pgY2iLqYP+2SgIgATxntfSFD7GBcSKfjGbf8MZfZUbmosdw4L6oMMo3BnA="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.0.4_1554182679614_0.14330481739539858"},"_hasShrinkwrap":false},"0.1.0":{"name":"@babakness/exhaustive-type-checking","version":"0.1.0","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"_id":"@babakness/exhaustive-type-checking@0.1.0","dist":{"shasum":"726df4afdcb2ef1eaee8efd69ac8e208cf303f83","integrity":"sha512-0DdMW1lisMvQ7+xiznajlJWXy5q+Rpd/ZVBLawU8OP31uXNtvAK5vhve16CrxyYCCY83BJ46i9Lht6UlEsbhJg==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.1.0.tgz","fileCount":13,"unpackedSize":1967805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqAXaCRA9TVsSAnZWagAAFLQP/1u7sb/X0DMOaq0ioxjM\naaCf3q7h91KdncLbweQiMMqZpocmGg21TvPGKrBojAstoR6g3bo1jf933f71\nka0wJa9Fzf5xjJ1J9RCeMU4I/qjznVMV0KE8xCLXmp/YGJeDAVImLLMfjlFN\nLPR+TgU3Lr/tLBV9S40ZuVtlvpIF1osvAjVJiMcJoZL/jfYTvPYprGzB7McA\n7rsl9NKEqs9x7fjMLQVjhvqCJeDU3YWcJ743ah/1Bic/Ama37YkTTN48mS/q\nq3NZgQoP2JCsaCSp2kcrF7m+UCJVlNX+Y71bxUYH08X2e7gM0i+T7gsTJ7w9\nmp5aHfAhvUAmC5bMhcA122ohcp4gP8+OIFjIIu03mhiad3+lw2ImvIcP7IaI\n7TTnGgAR8JiNP8d91VZO21ytk2eixVgQ095fUlQPz5b4papbn9vTov8xQWXo\nsVtaUU1hfcDty9uorwqVgLusVBalB59XJjdFlhgEoPfylJHy8B5JWpOGjV73\naP3pS58xM81XtpVxve536hkMHD7JW9Y9LB8NCok1Eau0Te2nL4p7tR+1GzXs\nOlfMI7fw7mGxcqAhI8Slqv0HrgSsy/uXb8PJYtxgCpQQFm/dsGnxUhe2CJgs\n5Fm7Z1Kxirqxl1DCJcX2PeGjXdZk1+tbi333xjW1vGCM5Fi8dIYX2rgBdFvP\nqGny\r\n=pOGT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYtjuPubjTjTstewh7M+LG9hEsTCJMPGjleGc8z7BopQIgU8fFOVlOmdovHar+iULfocmkE5CDSMGkRu1vUU+Imv0="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.1.0_1554515418143_0.48320252951300713"},"_hasShrinkwrap":false},"0.1.1":{"name":"@babakness/exhaustive-type-checking","version":"0.1.1","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"_id":"@babakness/exhaustive-type-checking@0.1.1","dist":{"shasum":"7cc1583784a39bd671a8e7d5e2a69cac077a5ab0","integrity":"sha512-g8oQuuTuhaYzKjfkx/qZQ3FT7bGlV/YT6hWZrFWIopcLbKfoUNEbc6Re2uDG1LXJs47txAbIhgTZtrClAu5mnA==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.1.1.tgz","fileCount":13,"unpackedSize":1968925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqAXxCRA9TVsSAnZWagAAsJkP+gILn3WSMvRuBN43ABMN\nozht9qBr/POIA4aLGKQCGK+rjDnkGp0xeUahc9ovQL0VqIuVCFymPlpZEtqP\nYVmA9lXgsABP2oMhw38TIn8e76+ea1OGo8JLhfDAtbWioXVCc8tvhwS6awSA\neohjrpzQWydB9x8Rc35HrlRqk890oHAmmuj5M/omiA9TlxA8NTwPxlFoDk/s\nHG4J4w1hK6BciqRY1a6Nc+JugC4hnwOM0mQrsb1RP4elKOzJHrULltYE1vDx\n6MBkLRmtkVC5cwrNxqVxvmVObddX50IO/aTrF0X68Ii+Y8oCy5TnPIvzu5qD\nmnR8HWGXaCQuEQJ/AL4gc5vaBrhISuGD7Y1TAm2Maxa/pYpGvfQOu8Jjxwzy\nB1gnczhFnFJF9kqndwJ3yrLyiLOh1s4HpdnLrHODG44r4QClm0L2FZE3/5WA\nZ/nJMpROzlU27WuTOfq8HvkZ51kinTBASIsV1j+BmjBCKQOcExg9GwVT8Xm6\nwcsaqDFr4iCd1Qjv2mvihfDNkGcMH7zbEZs3nTzKyRUQ0iy5lIFP1GKtsqlk\nY0pRFGHFj6cEHxMiVswx31WVvwXseZvIdlrS+CV2VkLk/MuA1CuPNa2O4ZBW\nKGEwXZz8G5iicZKCF8S3+YXEZ3tM3onwOITpDFbGqTRyU1Jq3rCfMxhFVqsi\nnD/s\r\n=Qp1a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBE56WnBJBq4SlZUDs7CfZNLfzFy+UKj+/6XzaAx+PbEAiBNbfUKvi+PY7orsRlsuqVYWwWGBRB6pH4Yhe1NK51RUA=="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.1.1_1554515440969_0.33334785062233063"},"_hasShrinkwrap":false},"0.1.2":{"name":"@babakness/exhaustive-type-checking","version":"0.1.2","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"description":"This package exposes a helper type and three helper functions. Compare the switch pattern with those offered by this package.","_id":"@babakness/exhaustive-type-checking@0.1.2","dist":{"shasum":"4a75567d8673f7296bf425542d4dc7d3c6daa75b","integrity":"sha512-OAaijk8Oy+QOVpIoeizPZtYjhaSHiPGfI3sVAvM/L++D5LbGVG/bGai/1dNan3y34DabUJhx2MXraSA+sbjwGw==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.1.2.tgz","fileCount":14,"unpackedSize":2684850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqt+LCRA9TVsSAnZWagAAXikQAI90IesT3DInYElKq9fy\naTDqCpYSyG3mU9U2S1tELNpAUrxyhZJKuPF07dpPCg3UG5Xd+D4i2H/wwuiP\nTTOdzvnXEd2WrrARZ0E6rZJi07JnMI6YhX2NHTM0sgBy474Ea3/SKQ5u8qmh\n4JPNOpot3j0Wand18xhCSZ187T/+u6nYSOJZOUWf5Yk2V9TgV+jR3IW12xOW\nbJnyJvejGENScJTF97FLtafCFeMjZ5MqmiEYRRfkguW7SwTcytKcE5FRSE+2\nu6qQQkd24R8MSu67B59+sxPQlbpfueou2Pi3tPfAFl59RrS2bym4GEKVgXJv\nPB4oZI2fxXpmU1qySbWWOFTt0r3VHquGM6j8oWabXodGFzE+E1rZcKmCkp8a\na0tCnOgr5w8azKwiq/FlDXGT8eFUgmkj57t7KRUwM8zqV8LZ7xX7Svsyg/MR\nZWBGALJI8sNbKBprs6pGgDY4kyYJAI6Jatko9haDY8ui71z0gED4P3Xi/Izl\n+S3eWJf+R7LiKvy4B+Dc4sdxNtVrQE4J5fTfI6EXGbZpA+8TolxQRyrswYXI\nz33QBh8FghmaddsKdF3qEgdlmFSjX3laSimM3Qq7vf3sWT7uvN/cUeYEaF82\nCnKazxuDkkhODHGP54bW0mpMUfP/RgOQN00SWGb+jKCTCX6kVAY8dvUDAc60\nZ/Wg\r\n=RGGS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB478FvJBL8k9jWM8AIn3jU8n/FHTNp83q66M+xt1ROsAiBbRinlRoUcX4GKvRmYteBuZbwE/uwgMyd3Eu1MYGy29A=="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.1.2_1554702218179_0.40159184894114497"},"_hasShrinkwrap":false},"0.1.3":{"name":"@babakness/exhaustive-type-checking","version":"0.1.3","main":"lib/index.js","license":"MIT","scripts":{"prepublish":"npm test && npm build","test":"ts-node src/index.test.ts","dev":"tsc -w","build":"tsc"},"devDependencies":{"@types/node":"^11.13.0","ts-node":"^8.0.3","tsc":"^1.20150623.0","typescript":"^3.3.4000"},"dependencies":{},"description":"This package exposes a helper type and three helper functions. Compare the switch pattern with those offered by this package.","_id":"@babakness/exhaustive-type-checking@0.1.3","dist":{"shasum":"2446ed1e6118d1b139af57aa09865afb0ff7f53b","integrity":"sha512-U9xGXwaWtbxNYXH9MP8tN8clUAbCyn9XRMEtZv6bBgyc7FD8kaGkElo8wwm42Awu2pHvZ6OXMphG+Hvztvi1dA==","tarball":"https://registry.npmjs.org/@babakness/exhaustive-type-checking/-/exhaustive-type-checking-0.1.3.tgz","fileCount":14,"unpackedSize":2684850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcquHbCRA9TVsSAnZWagAAeLcQAIX1cszZNhuCJUO2dVoD\nvmCcweYa36V3Zl6yQiQFGHPvrUSk2zxWMqnloDwJj9ZDaWO4NgmssfgR0PF+\n6QmOxuWXK00c+J42gIn4GxG5pvPln23hCs4KR0glDaVp65R45H5zK9pD6GWE\nmiCM0A1ji1tyGNGekn2JXbodOyFYjNCtfk/TCFjPFvuCXAGeY4v7xLESnIqr\nwlULbmhOE42C1zsr9SjQ+qhl0X+X0sRT4aqhZYU9D5YtEwizLZl3BfND63Am\n/W7dHrgWuGLzMLn1JscWLeuqailUSCjnYwLb6MZdVfbmiCeNlvyBGMRo20UG\nlrvymYgjlfUJjZSwkVt1ML6mJqP0D5J14/koKcHsU3SRkL0UFvHROlFqK+Zx\nMnxNqkr6Yg8sWDIQSgHv2UVTyF9Hmxg3ATRM4kckC+SGwsGS0eO8I9fqnERV\nyY8CRaYcvv8RtE4CM5+iRSMErV3VIm6s+XQxzCmLnrvprJNSqg3OoAuUa6kD\nVjGivSAcJ/NPRTXRZUG8Jq6mN+Sx1zAzIGf9TArSeA6GQw41yrr+jItpJwvh\nPUrRNrOs1p7sqhVLr4/UperVnAvExdSz6XTnn3BdGs7iZbTVSCpE0OhlnCCt\nIXzJU5VzbSMkBXM3h5+gbeD2hMiqrcR1HPWRUHI0NFtMN6AqZw/wkthUa/D8\nc4Db\r\n=/f5n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkxCnEHRsZjQhPLrKfEukzh7ssxJK/6t5PcbU0vfU6GQIgYJopRjjiaQ3tkDVMrmP4Ym2TJCfUUZpDOPpr3JifO7M="}]},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"_npmUser":{"name":"babakness","email":"npm@hemaka.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exhaustive-type-checking_0.1.3_1554702810829_0.08540730934950203"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-01T22:49:08.667Z","0.0.1":"2019-04-01T22:49:09.046Z","modified":"2022-04-04T17:24:49.195Z","0.0.2":"2019-04-01T23:03:49.599Z","0.0.3":"2019-04-02T05:06:03.652Z","0.0.4":"2019-04-02T05:24:39.847Z","0.1.0":"2019-04-06T01:50:18.356Z","0.1.1":"2019-04-06T01:50:41.181Z","0.1.2":"2019-04-08T05:43:38.517Z","0.1.3":"2019-04-08T05:53:31.117Z"},"maintainers":[{"name":"babakness","email":"npm@hemaka.com"}],"license":"MIT","readme":"\n<img src=\"https://raw.githubusercontent.com/babakness/exhaustive-literal-type-checking/master/.github/images/animation.gif\" />\n\nThis project was inspired by this StackOverflow question:\n\nhttps://stackoverflow.com/questions/39419170/how-do-i-check-that-a-switch-block-is-exhaustive-in-typescript\n\nI wanted that didn't rely on switch and supported currying. So I cooked this up.\n\n# Overview\n\nThis package exposes a helper type and three helper functions. Compare the switch pattern with those offered by this package.\n\n```ts\ntype Fruit = 'banana' | 'orange' | 'mango' | 'coconut'\nexport function makeDessert( fruit: Fruit ) {\n  switch( fruit ) {\n    case 'banana': return 'Banana Shake'\n    case 'orange': return 'Orange Juice'\n    case 'mango': return 'Mango Smoothie'\n    case 'coconut': return 'Coconut Ice Cream'\n  }\n  exhaustiveCheck( fruit )\n}\n```\n\n## `matchConfig`\n\nDeals with type limitations in TypeScript to partially assign generics. This is a function factory used to set the type expected by return function. Example use of the factory function:\n\n```ts\nconst matchFruit = matchConfig<Fruit>()\n```\n\nThe returned function is curried. It takes an object with lazily evaluated values and keys covering all possibilities for that type. To create the `makeDessert` function above, we would call `matchFruit` as follows:\n\n```ts\nconst makeDessert = matchFruit({\n  'banana': () => 'Banana Shake'\n  'orange': () => 'Orange Juice'\n  'mango': () => 'Mango Smoothie'\n  'coconut': () => 'Coconut Ice Cream'\n})\n```\n\nwith the same exhaustive type checking afforded by the case-switch statement above approach above.\n\n## `match`\n\nMatch is like `matchConfig` without the first function call. To make `makeDessert` we could provide the object first\n\n```ts\nconst makeDessert = match({\n  'banana': () => 'Banana Shake'\n  'orange': () => 'Orange Juice'\n  'mango': () => 'Mango Smoothie'\n  'coconut': () => 'Coconut Ice Cream'\n})\n```\n\nThen pass the variable with needed type information second\n\n```ts\nconst dessert = makeDessert<Fruit>( 'banana' )\n```\n\nOr rely on the incoming variables type\n\n```ts\nfunction example( fruit: Fruit ) {\n  const dessert = makeDessert( fruit )\n  // ...\n}\n```\n\n## `matchSwitch`\n\nDesigned to be a direct replacement for the `switch` pattern. \n\n```ts\nexport function makeDessert( fruit: Fruit ) {\n  return matchSwitch( fruit, {\n    'banana': () => 'Banana Shake',\n    'orange': () => 'Orange Juice',\n    'mango': () => 'Mango Smoothie',\n    'coconut': () => 'Coconut Ice Cream',\n  })\n}\n```\n\n# Tutorial\n\nSee the video tutorial for more details\n\n[![Tutorial on YouTube](https://raw.githubusercontent.com/babakness/exhaustive-type-checking/master/.github/images/video-image.png)](https://www.youtube.com/watch?v=SexXTM70w-M)\n\n","readmeFilename":"readme.md","description":"This package exposes a helper type and three helper functions. Compare the switch pattern with those offered by this package."}