{"_id":"@cursorsdottsx/o","_rev":"3-9ff8a24eeb76034cd5c6f0dd88a80c73","name":"@cursorsdottsx/o","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@cursorsdottsx/o","version":"1.0.0","description":"Overloading was always a bit confusing (don't even get me started on TypeScript overloads), but never to fear, this library is here.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/cursorsdottsx/o.git"},"keywords":[],"author":{"name":"im-lonely","email":"cursors.dev@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/cursorsdottsx/o/issues"},"homepage":"https://github.com/cursorsdottsx/o#readme","gitHead":"210fa83dff2ef3157725ee27bb34c273a4d7e998","_id":"@cursorsdottsx/o@1.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-ZOCNUz6CHqMe0cjDvGclC6CuA6G4HAMykGoXZ9iUgto5gjc09dV7yNES5YKgfhHiCi+X4UAExpHgUUacfszXgQ==","shasum":"bdc8c6580535c0f1871c43b1834bb29c1fcd89fb","tarball":"https://registry.npmjs.org/@cursorsdottsx/o/-/o-1.0.0.tgz","fileCount":3,"unpackedSize":4397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpXzwCRA9TVsSAnZWagAAPwoP/j+5Gdi9rQGl4a4lcsVJ\nkxmY1bt2G0sRSU5fBWpC8nkKDgiNrwFRXHc5yXruYIHIDJKWxF8e7GSd4+Kl\nI188ZoGgCx6lffjEOQB7e7pIJV6CvJ2Cfq7Ri3x6gBch/NoqFBl/Zl/+8d2n\nW5ZobFdAdLxziCCfOqmbwYZWcrLq2C349fkCZNRX7d9oG/e6I0O9D0nYayIX\nVyO00yP8/iAwfBBH1wN8CBgDE7nQgJ2YsHaPKgADEmlM43mvBVIpSwlxv31z\nt3IGtF1zY9/0n3w3h3yuJv1/XeLENqpZHARTOATHyTPPcvGR3uqgmJWoO7dT\nshajYmP3S3/6rd2QdnqtonXRKIHOZks/llBO9HvjO3yr8jbNjpm+NnyfeCtq\nzLhWSqgZx/TXBoDo8Bqz1+w3k74wxBWLuLYGfMowjq97zXHspt2+yiswQGZ5\n2yJgsaVzr1C3RzvuJuMm2R4CTZxIv4qr81tR4Zl3z1yrvL7Q+HU7Li2NMkl9\n0VVEEdU273E2ky7zNY0mP10YKarrfWcjp9d8z2nYMMcF+ErYBH1hOcCJOvDi\nG1NVZlSS3Z8c1z6HVQgOt5R1bCIAqa7vzOf9hjFOLGB5znIT0AtN+rE3r69d\npm0ZcIz8nCYsuyQdIrsF0oQxCPzoC/mL+n/VLUWRhMY/tF9UOu3vXM50frob\nh1r7\r\n=mjy7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs8UaODN0cEjrAbzDeyk/td0NtIQDPsydUlHbzzaL+JwIgHfTFHlK3HB/BCpmDmUBh3D5YDHpacHwJwleGEtQsPhE="}]},"_npmUser":{"name":"cursorspkg","email":"cursors.dev@gmail.com"},"directories":{},"maintainers":[{"name":"cursorspkg","email":"cursors.dev@gmail.com"},{"name":"cursorsdev","email":"cursors.alt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/o_1.0.0_1621458159861_0.0734012484145099"},"_hasShrinkwrap":false},"1.1.0":{"name":"@cursorsdottsx/o","version":"1.1.0","description":"Overloading was always a bit confusing (don't even get me started on TypeScript overloads), but never to fear, this library is here.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/cursorsdottsx/o.git"},"keywords":[],"author":{"name":"im-lonely","email":"cursors.dev@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/cursorsdottsx/o/issues"},"homepage":"https://github.com/cursorsdottsx/o#readme","gitHead":"68cf3044c54bb328fcd337b785ff077bc057b86b","_id":"@cursorsdottsx/o@1.1.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-ntGC8oTGRxBE7nROfgiFsnQAvt2s7QCfpvsUBvpcGzZvxzebEXJwq3Yf1oj8ZRKMeL4qqPIUCG0JVTMzcdSEkA==","shasum":"10237f5a70696b7f4bcbe00875ce9b5a4bdfa406","tarball":"https://registry.npmjs.org/@cursorsdottsx/o/-/o-1.1.0.tgz","fileCount":3,"unpackedSize":4148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqWBPCRA9TVsSAnZWagAAKzUP/14MrULqj2xSQuR08Bb0\nHw4GpAiKFSw/7wsEQG68nI7NBbsekgb1nmkIjgTb4w5JLqkG33dykYS7wc72\n+GVLoPV/ido/O9HAEwUIUELBa/IC67mHiYr6difOtFG5YzHolJcXYwb162qE\nw/FilxkeR4tARoN0ZAbgzwhKQSxDiMGLcZBzIocUsTV/CEU03IKxJLCIAKBJ\nBbDuFinodCCcdOW8Hf7qinfAelQ2rjbqbunVXOag8iuRiDkIbi8kqptRtxpf\ndQyo+DB7lAIeHzZhCBl2hwdVC61qJx0ohSo+IpxdYpeHIwi05rDmYFURo0uB\nC7Rm5ZIxM3HUFv65LdcSs8MoC1GUl8WtbdCx+wh6ZSrrXxOoFduqxNYfnicG\nVom6B2obzwpjuLls/xlHCio3XQnaY4jo7QoqaYJhdSZkHQTAT4C+EJRZda81\nQczV6XpWgdZOX/4ErU6krzFVcz0eqSJcgkdu/oK9p+v+xXVppNwkVKNtHX5x\nLM2qObHjGtWhFgmV2MYjJ3gshdmn5ppXTWPATwdRfZQSyGkkChXm+LqqI119\nppt7ZNujH0tRQLeK3OSDXZrpGp1vBxSKwK8O3FqgF4kMIreuJ80HfF8cayOk\n05OrCBwhsTgT3DA5cqwlnXPUqbSraquc22X5HN/bk/qZDILFaEIQYlgsxh9z\nrwuN\r\n=mwRE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEqLNz1/gPbJQfVwEq8St5MEJy1he7PC55cVWh6Aesl/AiEA8k+K9hswFqecIStLHMNJyRfAv8pLzYEu3d/CRxw2uaU="}]},"_npmUser":{"name":"cursorspkg","email":"cursors.dev@gmail.com"},"directories":{},"maintainers":[{"name":"cursorspkg","email":"cursors.dev@gmail.com"},{"name":"cursorsdev","email":"cursors.alt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/o_1.1.0_1621712975484_0.20062723566070417"},"_hasShrinkwrap":false},"2.0.0":{"name":"@cursorsdottsx/o","version":"2.0.0","description":"Overloading was always a bit confusing (don't even get me started on TypeScript overloads), but never to fear, this library is here.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/cursorsdottsx/o.git"},"keywords":[],"author":{"name":"im-lonely","email":"cursors.dev@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/cursorsdottsx/o/issues"},"homepage":"https://github.com/cursorsdottsx/o#readme","gitHead":"5c5856d758ef367edd469982d06ecbc6e21eb662","_id":"@cursorsdottsx/o@2.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-fmUEknlprXWi0vU7kDJjU1ijSuU3cT9qa45HlylRicFT0TNc5Jbb/c+0WeMzz8fTx2umg3jmvNN5JEZctptkig==","shasum":"3c84c9dbf510d37d1c32ee93bf2b1147b3b9d368","tarball":"https://registry.npmjs.org/@cursorsdottsx/o/-/o-2.0.0.tgz","fileCount":4,"unpackedSize":5504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqWs8CRA9TVsSAnZWagAAbv8P/1xh3xNeGNtxL3Jz5kJO\nDc7bbRzs6OOosZtYI9tm9SbStbTgP81J105fVDw4Kc3WOYBV1Li5gWkX7jwK\nlGrP0d8QC1vlbbbJ3+ga+dbCHv9olmdhCHN2z1bJ5kQbCr95lWi9X/9gAXsP\n9UmyLpMPARsjYXXbj0dKg/SKtB3yzJpSF7wfJ06ImZgFfUcIl+cJ/RH2RW/D\nMMVr/zv7U5JxrXstNxso7ltY4uYMWuRrpGpjurpTPk/stPLOWEFggIC6QId+\npN+RDI2h6dT4bwZOPgziw4G31L6ZfGqIOBMZgAzQgE5bXRz73PDUeu/fw1pO\nPkoIUZsCXiQoJ5oPLCxlPrXI+5/Alot8SCgh9w/W0vBPeSRT/1+FIgK3lrbF\n98Cys9t+RVyZ4MRkGximhdqlOgOlpsvGiO2UXgi8TKl07/AlXJ6XPFk/sdGG\nNVSC0htNVL0osIoDAfSko6tqcSA7nhcOBb6ukwOf9TzRSj1gmSb9nJtYTZ3R\nxcXwlP1/ootnAm90RGSxdQBh5kwEQAz53GRw1X5nKKHm8l5ZDYLQ4TdNTD2h\ndKmmL3/SA13bqMIGmR0B2h2ESQ3Q5cD019z4GkcKFEmHlNl3yRSNs9C8+Cnq\nWQKSMCtLy+57pY94lbEJdSEncXbjh+lpLD5T6TT9JaslIzwBMVBujbhLbvsH\naczs\r\n=C1vx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE63NRpKx6+Kj/7J8Z715tpB/8BaDyVh8FED3+h7DFA+AiAU9p+kVrbdINsErg+dBfmnNAojSk3SlMNZ/WKPvEEQCA=="}]},"_npmUser":{"name":"cursorspkg","email":"cursors.dev@gmail.com"},"directories":{},"maintainers":[{"name":"cursorspkg","email":"cursors.dev@gmail.com"},{"name":"cursorsdev","email":"cursors.alt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/o_2.0.0_1621715771666_0.798377890567399"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-19T21:02:39.511Z","1.0.0":"2021-05-19T21:02:40.045Z","modified":"2022-04-05T02:20:40.545Z","1.1.0":"2021-05-22T19:49:35.630Z","2.0.0":"2021-05-22T20:36:11.813Z"},"maintainers":[{"name":"cursorspkg","email":"cursors.dev@gmail.com"},{"name":"cursorsdev","email":"cursors.alt@gmail.com"}],"description":"Overloading was always a bit confusing (don't even get me started on TypeScript overloads), but never to fear, this library is here.","homepage":"https://github.com/cursorsdottsx/o#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/cursorsdottsx/o.git"},"author":{"name":"im-lonely","email":"cursors.dev@gmail.com"},"bugs":{"url":"https://github.com/cursorsdottsx/o/issues"},"license":"MIT","readme":"| [a](https://www.npmjs.com/package/@cursorsdottsx/a)\n| [b](https://www.npmjs.com/package/@cursorsdottsx/b)\n| [c](https://www.npmjs.com/package/@cursorsdottsx/c)\n| [d](https://www.npmjs.com/package/@cursorsdottsx/d)\n| [e](https://www.npmjs.com/package/@cursorsdottsx/e)\n| [f](https://www.npmjs.com/package/@cursorsdottsx/f)\n| [g](https://www.npmjs.com/package/@cursorsdottsx/g)\n| [h](https://www.npmjs.com/package/@cursorsdottsx/h)\n| [i](https://www.npmjs.com/package/@cursorsdottsx/i)\n| [j](https://www.npmjs.com/package/@cursorsdottsx/j)\n| [k](https://www.npmjs.com/package/@cursorsdottsx/k)\n| [l](https://www.npmjs.com/package/@cursorsdottsx/l)\n| [m](https://www.npmjs.com/package/@cursorsdottsx/m)\n| [n](https://www.npmjs.com/package/@cursorsdottsx/n)\n| **o**\n| [p](https://www.npmjs.com/package/@cursorsdottsx/p)\n| [q](https://www.npmjs.com/package/@cursorsdottsx/q)\n| [r](https://www.npmjs.com/package/@cursorsdottsx/r)\n| [s](https://www.npmjs.com/package/@cursorsdottsx/s)\n| [t](https://www.npmjs.com/package/@cursorsdottsx/t)\n| [u](https://www.npmjs.com/package/@cursorsdottsx/u)\n| [v](https://www.npmjs.com/package/@cursorsdottsx/v)\n| [w](https://www.npmjs.com/package/@cursorsdottsx/w)\n| [x](https://www.npmjs.com/package/@cursorsdottsx/x)\n| [y](https://www.npmjs.com/package/@cursorsdottsx/y)\n| [z](https://www.npmjs.com/package/@cursorsdottsx/z)\n|\n\n**O is for Overload**\n\n# @cursorsdottsx/o\n\nOverloading was always a bit confusing (don't even get me started on TypeScript overloads), but never to fear, this library is here.\n\nThough this library does not really go well with TypeScript, it does in fact work extremely well in JavaScript.\nNo more headaches over what argument is what. It's just separate functions now that you can manage easily.\n\n```js\nconst overload = require(\"@cursorsdottsx/o\");\n\nconst overloaded = overload({\n    [\"string number? object\"](str, num) {\n        console.log(\"callback 1 executed\");\n    },\n    [\"string boolean number?\"](str, bool, num) {\n        console.log(\"callback 2 executed\");\n    },\n});\n\noverloaded(\"hello world\", 420, {}); // => \"callback 1 executed\"\noverloaded(\"hello world\", true, 69); // => \"callback 2 executed\"\noverloaded(\"hello world\", {}); // !! No overload matches this call.\n```\n\nOverloads follow a simple syntax, and there are currently on 4 supported types, all of which can be nullable:\n\n-   `string`\n-   `number`\n-   `boolean`\n-   `object`\n\nTo make a parameter nullable (and undefined-able), simply place a `?` after the parameter:\n\n-   `string?`\n-   `number?`\n-   `boolean?`\n-   `object?`\n","readmeFilename":"README.md"}