{"_id":"@dongskyler/helpers.js","_rev":"7-e64e0df019fa0cf4ad840d331fd0dd0a","name":"@dongskyler/helpers.js","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"@dongskyler/helpers.js","version":"0.1.0","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"jest","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"devDependencies":{"@types/jest":"^26.0.9","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","jest":"^26.3.0","lint-staged":"^10.2.11","nodemon":"^2.0.4","npm-run-all":"^4.1.5","prettier":"^2.0.5","ts-jest":"^26.2.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.1.0","dist":{"shasum":"c0c4ac048bd337cbe75d4d2f069f97362504eac1","integrity":"sha512-AXY6YHqpUm/PC9BXTmTNa2eqTvoEv9yZ0EOOs9pk5LJcLuaeRe4FMthaLqZreBl9AOZcRWsac/Zc6/+7NsSNsw==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.1.0.tgz","fileCount":21,"unpackedSize":27787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM8E1CRA9TVsSAnZWagAAWhQP/RPivQqP79iWCD2gMkfY\npeLwagRc1o3HWA/mc2K/hHgzwq0qkTqS+zaIWQRFhuduIRp2BQGYf7/fj4KE\nezeazIqKjh7ZoXNl7mtBqVng9YSxnIjSDf1SdywxMLDOs36W7mFfPgne4TIP\nPgb+tHBx8hnNdpe2RQ3LNRq2xm+L1UGspCx1ot6/kTcO9pBQYB2B1tlY0IpK\nAhi5ZVCx1fxX61xLGlgiK6keZh8njglRqsCCoEIOkQOFcn9KxiKbMu3obB0L\nDQHkdJHG7BSXQTuR2XvZNbhNrDN9QTzT5hvIiPi2kn4t/IgeBH0rrGuMFpBX\nzJ+vSVFWlxWNvQjNHhPiDlnKOyo7cgHb++KpNcW3UKjCznLfkZ03283E8DG6\nu7/0VzKX/sqLmebU61AeY7EVv1cYZqUTPMhzE45CM+Oc9VwRxjdaRChdwJOa\nxxdraCqLcWFoqWSBVRSNPn2UhUABuJcHpctS1eoeLR0YZzoWAef6udD1j+0g\nfdiha5rOhMcrLpqFjBFaJJ5iDpvDEXm03EBdoVfso/txZprBUgOsdi/e0kKy\ni3ShqfKqYgTWq5fkaFRixBxStY4ar8l1SnZwfjHrcH/UvoXAybOmyHtEFTDA\nDCZwDagiHMQNmYh9THKs5v7AG/YfL8dqBkoI4jBkZtHMIhFNUIyAq2uvOnvq\ncFoC\r\n=VIEB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvxR+46V+y5+t7W+jCoB0jVTtZ+NNawdB38F3eqMEkDgIhAP73V9EZ+WunH9IQK+5JbLg9z1IdGuOI85ECzKHTmMWT"}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.1.0_1597227317278_0.21153443429808605"},"_hasShrinkwrap":false},"0.2.0":{"name":"@dongskyler/helpers.js","version":"0.2.0","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"jest","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"devDependencies":{"@types/jest":"^26.0.9","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","jest":"^26.3.0","lint-staged":"^10.2.11","nodemon":"^2.0.4","npm-run-all":"^4.1.5","prettier":"^2.0.5","ts-jest":"^26.2.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.2.0","dist":{"shasum":"5f99bb78f3a830607a3185c1d166b044926d3825","integrity":"sha512-77CVab/PdQUVgcTPexN+1cd4Kly9tjdclalTjpnGi3MhSmfd5CphKDwqWNS1fXyFzuNp3YiwPjosLqT+Gvzk9g==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.2.0.tgz","fileCount":22,"unpackedSize":28829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPdBWCRA9TVsSAnZWagAA/1cP/i/appDljB9SruJ7gJBb\nGkjZ5Y06wuVkMFyew99r4J1MtjoLEn2EoJDF6nXSuZ7dJxHnQXXLUC5qwQ1y\nFHqLnQJCFb2lkfcZfOMBiiuz1Anlmohqs7e2zHISO4Rrm4dOK/e49AnFXa9j\nbUVsK1UclJkQ2/aUHg5wY4oEEQEM9rEvRo0LkmgymXyI1LuPh4hB7CzocSCV\nUWLFacMQvDMSj51WQjJOmpQkQxJJCRS0s2fiXnNCGhdGsoxl3d3OpiyRPbtI\nDSLWdxNurq3oVLgq+GOZ//lBnoLOwprWaidniBXH7t4zoqfPfzOl2/5Sx8Sq\n2Ni9gFt+hGkKs9CIZ2LypLyn9oVwGDfrpX5GVm5B6KSWsrmZJ1rOHJqDJAMq\nJnPYRpR61B2CMRQhDFi2Vhpa7ruuDWxeFDmIa6BJFxNpLWlFDl+AYyzF32yV\nRufsdgYsowLQaZv3HCZvAnrhi5Cq+duohaYP3Di3Ue7vQDSJGzrlti8Dioz5\nBeum/uuKxKbUupSt4F3Akl9JGFB5KrVapJ/xgZFdY5AsL6AX/doTFkydovDQ\nIE+UpMk/r0/fWYtWfhECoVynNKtSs0zzXPlUUWPzOFf+wBgIdC/9KLsHhD5i\nTSas7Rp2jLhWFK+mZ2JO1M9v3i/xNFZNVAAJqrkTUvA4WtB0T3T8B5D3CaV7\nC7l4\r\n=eOmt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWnU365qJUtrRxCPDZTf7pgEUHZN4ZXJU0maMKcFzFiQIgAig9OIT9cjrDZFmm+4sM7mUej/f9xPRz9cYJxaY+1RE="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.2.0_1597886549462_0.15101665711631607"},"_hasShrinkwrap":false},"0.2.1":{"name":"@dongskyler/helpers.js","version":"0.2.1","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"jest","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"devDependencies":{"@types/jest":"^26.0.9","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","jest":"^26.3.0","lint-staged":"^10.2.11","nodemon":"^2.0.4","npm-run-all":"^4.1.5","prettier":"^2.0.5","ts-jest":"^26.2.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.2.1","dist":{"shasum":"fdff5dab8773655d0661b6a4ee734d14edf75f7b","integrity":"sha512-SDHcT1KseZZ6RXMhIm6H4vvVJZbqhLIL7/CWFiLKbMMzeKzqTa0W25sMXlUODxBBaz5mPGS/gejVfrQJBP16vw==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.2.1.tgz","fileCount":22,"unpackedSize":34642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPfLfCRA9TVsSAnZWagAAuCMP/jJm7bIXiPGwwZLEktji\n5C+vQwiaJTcqPLppJZXjj2t0SedRRvLD7p7IDxbAepCaTY38rpdLs5GftY4v\nXefsuR8wo16FMpMUhmb4q1aTm8ZHjIAwXaNC1SYCLMRYLZByIYjOMS55mJ5X\n4j4VD8lMvzBBqS2X9OGojAUA2F+0XCpSj7l9H/RCSXYfNZLST86RuN9oW6up\nTZvwkFvPIFd9uHy4DHpp9qSXC9nWTw/ibQh/DM1ceRIZiPQoAu8JAazsGJxr\nlkDIi4gphC1wMRw7wFDxS5qFqiBe+l3PWfdjouCF2F12xITCZ9wIhcc2H+bP\nRyukRf3RSfiqVSSKvCW8sWFLFTJdjCCzwrLRnHGkiW4qZaW4WVnIYy6SVltb\nl7Cvtp03vTfB0ZDTsf1E0oJebL0QCy38T5gu10qIJxMtFFvdh8zXpxSMFqDx\nf/dY4+FMkH2d4EA1yfBdwirJa4UaEqkM8DHxWRLWMZs8XZWALXtMcBUog4h2\nBSVk6ihq70SOmN01gX8Awz8C04g9zNnYDWAPGEmDc2AIuTgWyhUeJl1a1nVi\np/xOTvcNbocu4IhO6nAtH4l13usSeIaxBZwssrzbOIRfc2ZyiPhj9PYGWGUI\nDQGKg6AG6RcEmYh3c4zRajS5Uyh6MMS2VSEQL5l2vYSKXRUFxPEMjjwxkb39\ncpSk\r\n=tu0z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQatMCZ+5LaNWUSfuw05UyWX9W2kEa0LyDjT+Cr2F/PAiEAs2+yjkMwfREsvyg5IipCj7CeLQxcXJf1FmRznMwrF1M="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.2.1_1597895390706_0.5642993728462886"},"_hasShrinkwrap":false},"0.3.0":{"name":"@dongskyler/helpers.js","version":"0.3.0","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"jest","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"devDependencies":{"@types/jest":"^26.0.9","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","jest":"^26.3.0","lint-staged":"^10.2.11","nodemon":"^2.0.4","npm-run-all":"^4.1.5","prettier":"^2.0.5","ts-jest":"^26.2.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.3.0","dist":{"shasum":"d0e61f98c0e4f70dcd332d555bf29a03c6f77af7","integrity":"sha512-QUNTME2gNPW7rWe29uHf4rnZeX5Li77pSaQBwUPhll9T5T70TFS+i2zfJGo+GwN8e5KyZL4dcIsD8BVH+4XNNg==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.3.0.tgz","fileCount":26,"unpackedSize":44335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP2diCRA9TVsSAnZWagAA2rcP/3MnhKhOi0tdNAwkS6DW\n/fSb87abarIykEsNVQmOZqY1IOOVKWVSKy6ws2nODubq9d+jKDhLmDDGTTCb\nAO/wmxjmWFtEsKKgrYeXNvDpL6wzlsYBjO7E6qHRn0s1a0dKeHH+RJdnCYGn\nGQMxVLkXtyj/fqODoNaujoNaMxLFK/W5n3ff2MudDY0+fPsV4omUzwK5eFiS\n+M6ocR8znFQZ1Ige79wc6baRmLLHR8XSZ+GDBglikTKCkaklAxHHLbHQcOaN\nKROVquTjasVq6ADMJMnJSY+C86aSoB1pZ8Xz9JTLkrMocssv1Wn0QvSIRRUT\nan27xalPbwcSUUAInlsIPMHAXHpHcVEk4AelF3ypLQIjhmN2Ss37k9n+sXPY\nhreQd0yueAQ7VSDRkMk5lYBM/BRAbff+QJbFU20x9OnEEJbDn4v3BqDmhNS6\nHLqsJwp0lMIfVHjID67u6uGt+vPgdOHi4yA/NC+lMC1irQm29TklMSxCQg0y\nUbK5WEurulB0m6p4zNrewvP62ptjHEEGTXaX6favWcD5ahuDX8ijam6DLDZw\nvcOZ1Pxi2ePmp5cpr1smPNO8FloJFywjAy/Ov/PScIpJqJf7wOtaz1kZXtG3\nveweSraJB/iUWICAN/r6BTCBU483eUG9K2jEX7OFTmgDxKS1p6noNnlXDTp0\nm3So\r\n=Olv+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSeVat/pxmTo+HPp+l9pjnU5AZHvTLbPsOuosTPZ7kXQIgThThOmyE9Qzjzb5YBUlkIL8syoWDxASLyAwooFEgzP0="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.3.0_1597990754508_0.22174661776870597"},"_hasShrinkwrap":false},"0.3.1":{"name":"@dongskyler/helpers.js","version":"0.3.1","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"jest","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"devDependencies":{"@types/jest":"^26.0.9","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","jest":"^26.3.0","lint-staged":"^10.2.11","nodemon":"^2.0.4","npm-run-all":"^4.1.5","prettier":"^2.0.5","ts-jest":"^26.2.0","ts-node":"^8.10.2","typescript":"^3.9.7"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.3.1","dist":{"shasum":"927f23de6ad50e2e8189139ca6c4af0c6cdb7e91","integrity":"sha512-7AiuFx53cdSnXaRGXw4y6Pd6zATgkhbnm7IltuBuPgb5i13V7S2Uj47yS3DxN+s7nrfOr5ZIDrz2bhJdDYFrdg==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.3.1.tgz","fileCount":26,"unpackedSize":44377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP2f4CRA9TVsSAnZWagAALh4P+gLljgfrsuXVpbX6v6w2\ndwlcz1RG1nvvVvsvY5tOCy66oZQE60I83gHBHhnpVyfjOty5rRGDlBsE0DB2\nCYXo8x+4BEqRzB7T+U3BNlMwknEMUwoCuCUUL8WMVDotHmnB30/iZB5zp4FQ\nqdrmLRUeW7hazAV2zcvR4FSXPbP66B5J6ACy0xZLkq4OvBrVAZA998jZBK3k\nvNLFGFJZ2xd/P3s/rPeubXBCBVT3tnIkZRzLp4NnEeOYwvevMwH7bX4KHab4\nnfdBdsTUPKfYy1EXxjqX8KafI+JyUsCCkvdpKr7HooEHIJdTzdXD8TZC2ZJ4\nz+tq7Jrg7rDk+bBKwKEGaHi+UoFPGkysnFLbXNNVESCHcJoeWe41n1eRhwd8\n97OFcLzokGB0rw+z+DIHp5HWKFmYD/BH14BukSifzYmoX5GZjoiW6JF8H/3G\nmJtRPbhOmwyQ4B+H0Tk4iu38GrQvlqYQ6WbJAGlsA5otPxWpicpGZxvCGPSs\nuLCWaPXvFFbCxRAyYS1LJMVhXcI75KJy4MXM/QDxYGx2INk5bhksrhVRu9+w\naGlkwtSJuMzuVzl3dpH39PUJ4IXeuwWonYBA1VdPwcn56m+nzOW/g9sZ2HIo\nDwE6ihGCkIc9ZYnNXamDslNRkPHz8EweYLNka6f0XMq62CP0eI55D+dWjudF\n7hhA\r\n=MdhL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5nxKBpYVEKaW+PtKvA+YchPxFqlRdQXB0X0zeSPXKkAiASfMPg9h+fs3cF0G73Ze4ll+9egoXUTsqtsyTMQIzCWA=="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.3.1_1597990903538_0.8956384402590796"},"_hasShrinkwrap":false},"0.3.2":{"name":"@dongskyler/helpers.js","version":"0.3.2","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"mocha --config .mocharc.js -r ts-node/register src/test/**/*.{spec,test}.{js,ts}","coverage":"nyc yarn test","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"dependencies":{},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^1.0.1","@types/chai":"^4.2.12","@types/jest":"^26.0.9","@types/mocha":"^8.0.3","@types/node":"^14.0.27","@typescript-eslint/eslint-plugin":"^3.10.0","@typescript-eslint/parser":"^3.10.0","chai":"^4.2.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.1.1","nodemon":"^2.0.4","npm-run-all":"^4.1.5","nyc":"^15.1.0","prettier":"^2.1.0","source-map-support":"^0.5.19","ts-node":"^9.0.0","typescript":"^4.0.2"},"licenseText":"MIT License\n\nCopyright (c) 2020 Skyler Dong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@dongskyler/helpers.js@0.3.2","dist":{"shasum":"7c0327b149a68101f95269035138f35e300205fe","integrity":"sha512-WLfGBQ/SF7Zh2LkHvolh1pLzoIjZS5q5kuhRstMHNxUQf7wLmXXOIZ+DL6QzBa5Q6BBlda7yabqMhQols2ryTA==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.3.2.tgz","fileCount":26,"unpackedSize":44675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRkSsCRA9TVsSAnZWagAAwcIP/jfBIn1rKj5krpn6v5E2\nAisIV700DssAjzQlfDO38wT3knr3ZwUopgQrBv2W2KRpm/mw1+6o4avxFnHX\n8MSoq1s4vxRKCk1vEj61Gb2DgYJhnyZ12vfN8eZVVWhr5L9LPGPhx50rTCnz\nTR0BDsvEkq+d+YdCFwJfmsBwqYNuKs8eblK5sHLYZE5C8C1Ml/LdYHOXIgMf\nTWnESncBR73tYCvsW+ARMKG4vf0QBfi/PeO99TqoKh9Q69waR0c9zdTLO3fV\nAxi3JsHNn6P1B+CjiO0bfygs80z++ZY+rRoBsgBhdJ9P/JbVu03SX+gVAlo8\n49D8V4GYE3tPVIoqbevihcom+cRLD4anyENN087a+hcKbPBoxvkCuLsF5WJN\nQA+PeIYw8g4CO1yrOFHjcLy+vSEFvut2a/riXo4smu8a3pPqwW5oBO8l9spx\n/rg5eoMwAs79YFg4xJzihhcl7XasehGorLlwdAnrY0g4nG05cfRcbpvW8T2Y\nCbl+WMPle/q0fklJ+pB55FdPMh3I11fVicto2xST9e2/8qeWd9Xcq4VH+Iv5\n+a2Cg0Dv9lzg9ZqpBEEs9NebHvwzW6KP5lsvn2U+mz0Me70sfF+yHUTDPbH4\ndfoQz4wg0aHu0ARnPvJINIU6LNmMEdCmYqfhlwPsUXiz4PCwpPsc4lbdXwYw\nP53B\r\n=lDkU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8szRPtqEzbKKwGqDtswlq0dhhHh4oW41a7BcCfRi59AiEA+X/URLQO/bKRLBIuLhcNMU9O9KivpZmpXqvdrIaak4s="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.3.2_1598440619664_0.8383585557626216"},"_hasShrinkwrap":false},"0.3.3":{"name":"@dongskyler/helpers.js","version":"0.3.3","description":"A collection of helper functions in JavaScript and TypeScript","author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"homepage":"https://github.com/dongskyler/helpers.js","bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"main":"dist/index.js","keywords":["JavaScript","TypeScript","helper-functions"],"scripts":{"ci":"yarn --frozen-lockfile","format":"prettier '**/*.{js,jsx,ts,tsx,json,md,html,css,scss}' --write","lint":"eslint '**/*.{js,jsx,ts,tsx}' --cache --fix","clean":"rm -rf dist","transpile":"tsc","build":"run-s clean transpile","test":"mocha --config .mocharc.js -r ts-node/register src/test/**/*.{spec,test}.{js,ts}","coverage":"nyc yarn test","start":"yarn build","start:dev":"nodemon","refresh":"rm -rf node_modules/ && yarn ci"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"**/*.{js,jsx,ts,tsx,json,md,html,css,scss}":"prettier --write","**/*.{js,jsx,ts,tsx}":"eslint --cache --fix"},"dependencies":{},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^1.0.1","@types/chai":"^4.2.12","@types/jest":"^26.0.12","@types/mocha":"^8.0.3","@types/node":"^14.6.2","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","chai":"^4.2.0","eslint":"^7.6.0","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.11.0","eslint-import-resolver-typescript":"^2.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-prettier":"^3.1.4","husky":"^4.2.5","lint-staged":"^10.2.11","mocha":"^8.1.3","nodemon":"^2.0.4","npm-run-all":"^4.1.5","nyc":"^15.1.0","prettier":"^2.1.0","source-map-support":"^0.5.19","ts-node":"^9.0.0","typescript":"^4.0.2"},"licenseText":"BSD 3-Clause License\n\nCopyright (c) 2020, Skyler Dong\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n   contributors may be used to endorse or promote products derived from\n   this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n","_id":"@dongskyler/helpers.js@0.3.3","dist":{"shasum":"fb69a99c78bbb248936938b350dc7bbd3622bc11","integrity":"sha512-jF6oeO3QAmdY+Vs3KFTveOVQE2L3REXKXlL/rilvbr6COTzGFf7jxz2yoXyticaJ+tVsu8EXf6kIFkQuiNaELw==","tarball":"https://registry.npmjs.org/@dongskyler/helpers.js/-/helpers.js-0.3.3.tgz","fileCount":26,"unpackedSize":46484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVcWZCRA9TVsSAnZWagAA/7kP/1y8blmGTjz1IuSX+v9W\nvlIUpNAd/0bsjJt+qxu2ifg+kMlOfsPmGQNiOhrszA9ERTUxZWEqPMyN+zXT\nucH7X8WrnthOzZSL0JPmV/5WjZGIorH1h/nQqCFW8P/UAcgNpX20wyhyQw+6\nsRf7xFM92KokuH1F4Y5DdOD4QVi5v0fRTdCSub0Voi9daYgqrO+WnmqE7yYU\n2BBLJy4NfsbnPmGu5pGO9Q/etYsRrL/2lOC9fi+QJMUkZ+qVMZbdh4oME0jJ\ne9Hk1ptpBtlTpVcarkYr4VtdGopclAWGLLO3Xog3vjJtMo7XKBVoy5fIOjtW\nSq/H+ME6QN6WUclR98R36jWXKvUnT1V2AbtpWGCBmRaI9ooud3W9O3eLgedW\nno9KwJ2i4vBxHcUe4JbIgR1PpaS9GZkg9UyPHnCduBJur/yjnzE7o8O6dVh8\nXXSqlnHFk3OYtYyYOcYIP7cLeDWwmD03cXlJmKwHIfkTQA0wEuANSowEevv1\nHkQSPVF9dGfcN6khn3J6tGPQAlS4MQUxwDZ5h/nFjEY+UAhgeYXAxZB5whmT\nO7AYiwzcyV5j/D1k8/tYGF7Yj5RWp2s2pBA8pUX/V24FWM43ibUHM4GWcGLy\n5l+T8GsSHQStx2TvtOpzaiYcnnQD7VprFP/w20n2oRXbDQbcASUUPbmXQsnj\nZPAS\r\n=W3BM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtCeJmR47n2z6fXyzUSowOHyKeHDA24lBrrilv4aoQswIgITWd0hOsdT2O0OhdVmi+RxuDQsAXxpo0LUsvBndG0jM="}]},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"_npmUser":{"name":"dongskyler","email":"dongskyler@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/helpers.js_0.3.3_1599456664832_0.4915755426812143"},"_hasShrinkwrap":false}},"time":{"created":"2020-08-12T10:15:17.226Z","0.1.0":"2020-08-12T10:15:17.418Z","modified":"2022-04-05T05:15:20.047Z","0.2.0":"2020-08-20T01:22:29.627Z","0.2.1":"2020-08-20T03:49:50.873Z","0.3.0":"2020-08-21T06:19:14.596Z","0.3.1":"2020-08-21T06:21:43.752Z","0.3.2":"2020-08-26T11:16:59.791Z","0.3.3":"2020-09-07T05:31:04.975Z"},"maintainers":[{"name":"dongskyler","email":"dongskyler@gmail.com"}],"description":"A collection of helper functions in JavaScript and TypeScript","homepage":"https://github.com/dongskyler/helpers.js","keywords":["JavaScript","TypeScript","helper-functions"],"repository":{"type":"git","url":"git+https://github.com/dongskyler/helpers.js.git"},"author":{"name":"Skyler Dong","email":"dongskyler@gmail.com","url":"https://skylerdong.com/"},"bugs":{"url":"https://github.com/dongskyler/helpers.js/issues"},"license":"MIT","readme":"# @dongskyler/helpers.js\n\nHomepage: [https://github.com/dongskyler/helpers.js](https://github.com/dongskyler/helpers.js)\n\n[![npm version](https://badge.fury.io/js/%40dongskyler%2Fhelpers.js.svg)](https://badge.fury.io/js/%40dongskyler%2Fhelpers.js)\n![Node.js CI](https://github.com/dongskyler/helpers.js/workflows/Node.js%20CI/badge.svg)\n[![codecov](https://codecov.io/gh/dongskyler/helpers.js/branch/master/graph/badge.svg)](https://codecov.io/gh/dongskyler/helpers.js)\n[![CodeFactor](https://www.codefactor.io/repository/github/dongskyler/helpers.js/badge)](https://www.codefactor.io/repository/github/dongskyler/helpers.js)\n[![DeepScan grade](https://deepscan.io/api/teams/9441/projects/13355/branches/222136/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=9441&pid=13355&bid=222136)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[![GitHub issues](https://img.shields.io/github/issues/dongskyler/helpers.js.svg)](https://GitHub.com/dongskyler/helpers.js/issues/)\n[![GitHub issues-closed](https://img.shields.io/github/issues-closed/dongskyler/helpers.js.svg)](https://GitHub.com/dongskyler/helpers.js/issues?q=is%3Aissue+is%3Aclosed)\n[![GitHub pull-requests](https://img.shields.io/github/issues-pr/dongskyler/helpers.js.svg)](https://GitHub.com/dongskyler/helpers.js/pulls/)\n[![GitHub pull-requests closed](https://img.shields.io/github/issues-pr-closed/dongskyler/helpers.js.svg)](https://GitHub.com/dongskyler/helpers.js/pulls/)\n\n---\n\n## Table of contents\n\n- [Description](#description)\n- [Functions](#functions)\n  - [inputOutput](#inputOutput)\n    - [`listFilesInDirSync()`](<#listFilesInDirSync()>)\n    - [`loadFile()`](<#loadFile()>)\n    - [`readPipeWrite()`](<#readPipeWrite()>)\n    - [`writeToFile()`](<#writeToFile()>)\n  - [others](#others)\n    - [`runFuncsWithArgs()`](<#runFuncsWithArgs()>)\n    - [`valOfKeysAndIndices()`](<#valOfKeysAndIndices()>)\n  - [sort](#sort)\n    - [`comparatorLexic()`](<#comparatorLexic()>)\n    - [`comparatorNumeric()`](<#comparatorNumeric()>)\n    - [`bubbleSort()`](<#bubbleSort()>)\n    - [`mergeSort()`](<#mergeSort()>)\n    - [`partialSort()`](<#partialSort()>)\n\n---\n\n## Description\n\nThis is a collections of JavaScript and TypeScript helper functions.\n\n---\n\n## Functions\n\n### `inputOutput`\n\n- #### `listFilesInDirSync()`\n\n  > `listFilesInDirSync(dir`_`[, ext, removeExt]`_`)`\n\n  - Parameters\n    - **`dir`**`: string` _(Positional, required)_\n      - Path to directory.\n    - **`ext`**`: string | null` _(Positional, optional)_\n      - Filter by file extension.\n    - **`removeExt`**`: boolean` _(Positional, optional)_\n      - Remove the file extension from the filename string.\n  - Return value`: string[] | null`\n    - An array of filenames in a directory.\n\n- #### `loadFile()`\n- #### `readPipeWrite()`\n- #### `writeToFile()`\n\n### `others`\n\n- #### `runFuncsWithArgs()`\n\n  > `runFuncsWithArgs(funcs`_`[, args, spread]`_`)`\n\n  - Run an array of functions with the same set of argument(s)\n  - Parameters\n    - **`funcs`**`: ((...args: any | any[] | null) => any)[]` _(Positional, required)_\n      - An array of functions.\n    - **`args`**`: any | any[] | null = null` _(Positional, optional)_\n      - An array of arguments. Each element of the array will be presented to each function.\n    - **`spread`**`: boolean` _(Positional, optional)_\n      - If `args` is an array of arrays, you can choose to expand each sub-array with the spread operator.\n      - _Default_ is false.\n  - Return value`: any[]`\n    - An array of return values from functions\n\n- #### `valOfKeysAndIndices()`\n\n  > `valOfKeysAndIndices(obj`_`[, key0[, key1[, ...keyN]]]`_`)`\n\n  - Returns the value in an array or an object (or you call it JSON, a hash map or a dictionary) given the series of indices and/or keys pointing to the value.\n  - Parameters\n    - **`obj`**`: any` _(Positional, required)_\n      - An array, an object (or you call it JSON, a hash map or a dictionary) or a combination.\n      - The first index or key pointing to the value is required.\n    - **`keyN`**`: string | number | null` _(Positional, optional)_\n      - An arbitrary number of indices and/or keys pointing to the value.\n      - For example, if `x = {name: 'Tom'}`, to fetch value `'Tom'`, use `valOfKeysAndIndicies(x, 'name')`. If `y = { key0: [{ key1: [3.142, 6.626,] },] }`, to fetch `6.626`, use `valOfKeysAndIndicies(y, 'key0', 0, 'key', 1)`.\n  - Return value`: any`\n    - The value from the given indices/keys.\n\n### `sort`\n\n- #### `comparatorLexic()`\n\n  > `comparatorLexic(`_`[{key = [], ignoreCase = false, descending = false}`_`)`\n\n  - Compare function for comparing lexicographic order.\n  - Parameters\n    - **`ignoreCase`**`: boolean` _(Named, optional)_\n      - Ignore the case of the given string.\n      - _Default_ is `false`.\n    - **`descending`**`: boolean` _(Named, optional)_\n      - Ascending or descending order.\n      - _Default_ is `false`, that is, ascending order.\n    - **`keyN`**`: string | number | null` _(Positional, optional)_\n      - An arbitrary number of indices and/or keys pointing to the value for comparison.\n      - For example, if `x = {name: 'Tom'}`, use `comparatorLexic('name')` to fetch value `'Tom'` for comparison. If `x = { key0: [{ key1: [Earth, Mars,] },] }`, to fetch `Mars` for comparison, use `comparatorLexic('key0', 0, 'key', 1)`.\n      - See `keyN` in [`valOfKeysAndIndices`](<#valOfKeysAndIndices()>) for more details.\n      - _Default_ is `null`.\n  - Return value`: function`\n    - Function `(x: any, y: any) => number`\n      - Return value`: number`\n        - `-1` if `a` should placed before `b`.\n        - `0` if `a` and `b` are equal.\n        - `1` if `a` should be placed after `b`.\n\n- #### `comparatorNumeric()`\n\n  > `comparatorNumeric(`_`[{key = [], ignoreSign = false, descending = false}`_`)`\n\n  - Compare function for comparing numerical order.\n  - Parameters\n    - **`keyN`**`: string | number | null` _(Positional, optional)_\n      - An arbitrary number of indices and/or keys pointing to the value for comparison.\n      - If `x = { key0: [{ key1: [3.142, 6.626,] },] }`, to fetch `6.626` for comparison, use `comparatorLexic('key0', 0, 'key', 1)`.\n      - See `keyN` in [`valOfKeysAndIndices`](<#valOfKeysAndIndices()>) for more details.\n      - _Default_ is `null`.\n    - **`ignoreSign`**`: boolean` _(Named, optional)_\n      - Ignore the sign of the number, i.e. use the absolute value for comparison.\n      - _Default_ is `false`.\n    - **`descending`**`: boolean` _(Named, optional)_\n      - Ascending or descending order.\n      - _Default_ is `false`, that is, ascending order.\n  - Return value`: function`\n    - Function `(a: any, b: any) => number`\n      - Return value`: number`\n        - `-1` if `a` should placed before `b`.\n        - `0` if `a` and `b` are equal.\n        - `1` if `a` should be placed after `b`.\n\n- #### `bubbleSort()`\n\n  > `bubbleSort(arr`_`[, compareFunction, k]`_`)`\n\n  - Bubble sort algorithm. Stable.\n  - Parameters\n    - **`arr`**`: any[]` _(Positional, required)_\n      - An array to be sorted.\n    - **`compareFunction`**`: (a: any, b: any) => number` _(Positional, optional)_\n      - Compare function.\n      - _Default_ is [comparatorLexic()](<#comparatorLexic()>).\n    - **`k`**`: number` _(Positional, optional)_\n      - Partially sort the array to get the first k sorted elements\n  - Return value`: any[]`\n    - A sorted array.\n\n- #### `mergeSort()`\n\n  > `mergeSort(arr`_`[, compareFunction]`_`)`\n\n  - Merge sort algorithm. Stable.\n  - Parameters\n    - **`arr`**`: any[]` _(Positional, required)_\n      - An array to be sorted.\n    - **`compareFunction`**`: (a: any, b: any) => number` _(Positional, optional)_\n      - Compare function.\n      - _Default_ is [comparatorLexic()](<#comparatorLexic()>).\n  - Return value`: any[]`\n    - A sorted array.\n\n- #### `partialSort()`\n\n  > `partialSort(arr`_`[, compareFunction, k]`_`)`\n\n  - Partially sort the array to get the first k sorted elements, given the compare function.\n","readmeFilename":"README.md"}