{"_id":"@a2workspace/arrestor-gear","_rev":"13-af71dd53c9103bf2a43ae9e15e6c3fb0","name":"@a2workspace/arrestor-gear","dist-tags":{"latest":"2.0.5"},"versions":{"1.0.0":{"name":"@a2workspace/arrestor-gear","version":"1.0.0","keywords":["ajax","promise","node"],"author":{"name":"Shishamou"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.0.0","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"6800c8e66afb692d5dc3311ddf54931dd2a1dba1","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.0.0.tgz","fileCount":27,"integrity":"sha512-KhPCby0LQnMNs3GPZw6oyqZcKXRJrCh+3hHhGUVb5iF8TwjcWLEAZ110Y3i0HxSXJIIDPW+pDlYFOjWaglkS6w==","signatures":[{"sig":"MEUCIE9VRpJnjlluw6hynng4CKeuUIpi5Q2dd1vXDtV3I1T8AiEAycMNo0sO7k24IVaIDcDSERO7sJCUh9zlE4x8FHasuAM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEp/7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFuQ//XeNxH+l55fV30QHVlAZJV7nWPsLwNy5hr/GtQK4/W8As+rv+\r\nhfTDqQTYFfb4pXKl/TBRfYkisRzEwbrqgrJ+CQA9yWDWxlLUlLt7G5R0pqIL\r\nErwJRrzUwLzspKwDZ2ZDqw9FyChRzjdctd6ObCjzHpog8Annk/UBbpBYt7No\r\nhE7sAQNTG6KLStQ8y0vPfEGEY2kKdNx/XUJ+KjEE7snyftwffzeqGSZvE/JR\r\np1OmxTUhBLx+JZtbKeK8L+iECsc9hP2m+e/lzNtgsCmB9sSfziDFy6fCI8/h\r\na2Y+uMtUHJmozEHMFQCwXJk9CzispjYrAfwB0edJQHB6cQ14897hTNH0gSi9\r\n0DxXe8M37vvbOpqNOm1bT2Jy6bWU1yULsWHzpof5G47db0++hB1znM+fXTxI\r\nPxWhvUM17M55+pzqCcUhYC3VOqlWBZpspbZ4DfyeDqI+QapeL8Id6o9rr9Im\r\nm//2uOJQ51itnEPWiD1maizDDRyzSdmtaLx9LTeIzvz/C2YN5yBeeXr3Qr/M\r\nllQ7lEU9LlEhaPIEBMQBkXlJEEBxfIZmhhB5HirZi3+yrXQ37jYZ1idv5eb6\r\nKhkLMvYsGBGPPjofX2cDqtKh35vZdoanv2fkKYa+CF0TChZddxi+U2fb9W7j\r\nrm5RcylcJGvj5jZPCJMZZTFRFz+dWGYMlok=\r\n=vBC0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js"},"./core":{"require":"./dist/core.js"}},"gitHead":"895123481ab291c495d9c43cec5afdb146668261","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.4.0","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.0.0_1662164987157_0.21250893419854688","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@a2workspace/arrestor-gear","version":"1.0.1","keywords":["ajax","promise","node"],"author":{"name":"Shishamou"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.0.1","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"0823f764b7e21bbb7cea6ea9245ac5294d161f29","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.0.1.tgz","fileCount":29,"integrity":"sha512-TZvdAvkDTuYBf7p3GCdTlv1+6TG/dvOTxNTFMt5xKW01yKijFzhgixyZcv6eOVF6SHLPXwscM/GPC386scjBAg==","signatures":[{"sig":"MEQCIHB2OpV5UH1cUqEFxZk6Hos1CkRR0by+Nb6p3cLxp8p8AiAm6qTxuQddRBJxFjdpdbq4iLBf+OvaJfllm45jdI9OoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjE9p0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2vA//UFF9wfHIVjQekn0UGcjSYpSSGx4NMFbXs5AYIIPwzl6/xku/\r\nufcNLTOfwMhto9Ac35eB/14TLp4zfkgFEVeNT8PctNod4oTPC8m2FRpXZrBC\r\nEZN4KZ0jF0yww3ozTn+C1ZzUaQttfHPpfEh/NoezmhYNVOY0c588m7vcKIet\r\nnn0J6x/elfx2vgJVW4Xtrb1/QqzOZHymkziHfrNmS/fM/0Jx3G4KVkm15s5F\r\nPw3pGjFTO0DoWIeGs8iuvXw8k9Ve9cKmz8p8gNh4Rn0fal72yvhE0cQc8/N4\r\nNgovabPPYQHJxnVLQtCAF0nzbUImn6ApveSZZof1xdhIB+LpgSt0THF03anq\r\nT2TJLd1giUcFH7bGpfl3SHfgLwCxlhX3YcQ4+7bFtgQvWLsMgG4XkKmssJ4/\r\ny2LxPyElgxuIgNiv5aazq12iRjX/cQ52BWQXosHidW6QXFyB3nGWzrXd6Vv7\r\nKcILHub93ZTMPm6uibLu5/t+rrWiRjbVY9wTB5hMgW9XCknV/G6YhnO9FEo6\r\niYRL14CEzfg+ecpmiXZIso21S+Gj3P0plWFTsBhXWKBgpFiJTixMgpHXJyEP\r\navEnkbYi69XdOe7mKJtJ7ge2YaMHA/wtr0tjJfLY7xoON71IX9rRS8Cmx505\r\nYqQBf/W1g9UqF0MDWfmVUTBEel8y3XZbxiI=\r\n=7ih1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js"},"./core":{"require":"./dist/core.js"}},"gitHead":"39705c6703fb57cd6af1ff5ba63d681c9ce2747c","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.4.0","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.0.1_1662245492475_0.8804777276261571","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@a2workspace/arrestor-gear","version":"1.1.0","keywords":["ajax","promise","node"],"author":{"name":"Shishamou"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.1.0","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"2681f4ff0913297f653b4111b3bfca42f463a03b","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.1.0.tgz","fileCount":30,"integrity":"sha512-Ya4sg1vRuF2+x6YFzxUCAohkBEcexDmeB812XwTI7pAGuA6c5FZUQIKZGpMIMke3XhdBP+Owbx7V6KIpY3+IxQ==","signatures":[{"sig":"MEUCIQCsb1mZxGv3kBpv2M9FwbQcrKAa8tTr9mIcFNGxdruckAIgafGB8GjuX2EL/tpk4sgHba+e/B7YZyUu8aAGreNXv6g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjL8VUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQuA//ZJX+KHjicd9MCRD5M9aWl5QWZnsB7Ai/hiBGbuu1a2Etfdm+\r\nlSaeH8LRpA/SArZBavdbeyEPB/a8SWeqcBtUVqKk4Z+XYWeUJijpCUcolz2/\r\nVDXRWlF3y85cQsxqsaLtvDnkDa2YNorcg76+3hS9J+86AP71CFbrzTI8NCAM\r\niCpI82RCtDR65xjS5+RBCAlMuHAkrEWWXoQuTRFS8NtkHqx9/3GKnsCgk/xu\r\nUdktp6GYW/inpMtGkT1y6tG9g0sER2WiS8FR8AtaRQwwdmZ9Ia7aZC3Ot4aP\r\n9769+dL0q5eo9oQT0UL/9XnEUeT2ezZXQxSmiNsVfz2D7lBNAFpaJwl1m+MH\r\nqH6wxVW7kOSv27bLYwy8ANRuj8on2DkCKB3BcS4uMC5oMg3bDWg6+x+A82Wh\r\n76EvqJOJWO++JEiCx+182OmU34LA4P7wAGi+1v3cT0MPI+GbUgh6TFkoIykS\r\njQIoMgLz3ZCK2IooxkDkqCQ0fiKHinRck8gR94twdigoT2sjKAlmZ0ZHLt70\r\njnj06uNPUXZfhFzw3AKG0kk9J2Zp6H7tQ8QWRgiE9pDlzbbxPai/qvycw7SD\r\nvKl6lUw6uhKrJ1+zJY4FW63EPXrgKIEl0olLB76izqLdzsD+hyqJ8maJv+xb\r\n4dAgHWGnxX1gmYIlPv2agwIyHG/ZSoBa2Yk=\r\n=8qp4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js"},"./core":{"require":"./dist/core.js"}},"gitHead":"b8be9dd6982c932f2e57e28f6d9c420461a7d3cc","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.4.0","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.1.0_1664075091658_0.25832830267006845","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@a2workspace/arrestor-gear","version":"1.1.1","keywords":["ajax","promise","node"],"author":{"name":"Shishamou"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.1.1","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"9bae543584637657adcb3cc97119b34a3d654499","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.1.1.tgz","fileCount":30,"integrity":"sha512-C3uDy1KMRWlCbVkuwzKkYSyHSw9cfJJ1uCcxUJtU2OzH7UIcW+F2V1adO38HfZa/Y41gkA9kmrKktf0qdWYSKg==","signatures":[{"sig":"MEYCIQDp6F+3pa46D05URfs8NnjcS4yo0X1+zwa0ozCDyf/UMgIhAKAMTpR//xboj1oQwNyA+p2WrkZG1RjlrzWzzuTmpcWy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdP/yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzcA/8C3i2C5lWEqFf4ENjzQ/31Sjw0Hhq3BXipEOYK4WsDrEyNz02\r\nPgRZNfnj5pUPY6zLynES6aoIw9pacLSLS6RSDo7eQK63TwaKRlEHTcwLJXeE\r\nEnVNxDH18sjhgjPPxitLZwLNXwDxZRlSWjMxne+INLs3QsN+4lyrcsji3vgz\r\nMOuyI0YHgEEOxunp3EBXHjW/1lUeeNwLS8NCeoM/cUl0B+Z3/aX+dYnr6iY5\r\nB8mXJ83mIGxrIawhcPDfT5voETHmTynY8OtJxzYY9SFVlGw2DU0dwdF97Cho\r\nyVJvv8ba61fRZQMp8QZcKNMG/F5KCBKTUGZjeurWQqjlnkdEzme1iM9Vd8vU\r\n7FIesebl4fJq3W91apRmHodf0OPfunfVbC+vgXG5r4dx197icdK8o4z46/7J\r\nOa1k8+kIk0tq5V59FuijKcidynucTPZZkG5Sxz2DhCeSB6Nss8L4A82GpObA\r\nN0FsTT8HA0eKfpKCbCFNe1Q/CTZthbBnTxBWb9UEc8zK1mCUcrRVh65rI7Fg\r\nXYtXSP7E5nWreqm3OsobLxhnmLWKpeR59y1rWS4Qu1dga3IlUTX5TwD6eA47\r\n1zehISMHIhPsuOqkJQOJhgoV56hUMLf/1VmJQb5eqmuCPYO3BQ63XkeXGnLA\r\nkqqQO+gQxRvLUeTLmM64cXwCkxJiCYmsZxQ=\r\n=IvKa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./core":{"require":"./dist/core.js"}},"gitHead":"603b95d68342a2a19a72afd8d51f0390246f4783","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.4.0","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.1.1_1668612082291_0.5917513569770572","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@a2workspace/arrestor-gear","version":"1.1.3","keywords":["ajax","promise","node"],"author":{"name":"Shishamou"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.1.3","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"719e312ad7e9976196e730acf8f001811c77d18c","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.1.3.tgz","fileCount":10,"integrity":"sha512-8mqD+vHJeo6Egd+DRHV35dxtffYp/+ECUZjcME/wtysuPff9D3Bbnn8zF4rOUdr/H7LUzE523Y3/wsbjgBZPQQ==","signatures":[{"sig":"MEUCIQCua5L/xA+cyEFitwo08cCVObCWRf4b1ZBIoGNbdsK6JgIgfMubCwtTk5QrFPNUh9BQN3Mx+/Lee7UsAJejYKFafCM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjg17oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpW9xAAmvufTzB02zAaswUW47281rtrdLZjTyBipBgAoVEM/a/xFw6d\r\nGxbIzI6rtQhlV/VtVD42pPW3e515OPtR2MMEGNjZxyWIWBK7e6Je7+ZWyYc6\r\n128i43sT/NeDHwK4u4hz1bv029lp22TU5xDyZdHx7ErXgIcizSeNmWa7il3B\r\nZmup+9hnXRKA0y0RkTqilyO1vg61wJyXysqPjGTy+fezJr6qNDdyeZe93T7l\r\ngmrgWxzf0lieKJubayfSZx+LH6yURi9qJ32sAULMVTsndRmzphyyjR6spBY9\r\neoS7zzmGEbXgH7IbkwLtlJn5tK14+JAWQlD1xd58HrTdl2aXI8b0gCNy2qNr\r\nFc7bC/fU7l+G8DrrHVPOrRqSqCMpQA2PcpuD6NDh9a19EidGKFsMfAOQFxIH\r\nuUB5hIspjDDalIgwZaNjQRzN8Q1ofPg060d4CAstXm6Jbt8pOJ53oMmkbguM\r\nJA40RrE7gBMxt/ER2K+3YylrmOHzMHatcizd2Mjs8264//BssYiUbrCnhrrj\r\nUXLpfNkNNF488jhwGO5rlC4VxI3TMsqVALoqsVL2YIszFX4HSc5mduOuIL96\r\niYpmnAO0+Bq0OGVO3RqHFnHjDKCSodotegFgWhcc2d5Mm8TEZHtvS6wV27kF\r\nySglCt7Zv/iBs5eLX1k7J88A3uxrMDgzHhQ=\r\n=R1KJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./core":{"import":"./dist/core.esm.js","require":"./dist/core.js"}},"gitHead":"d53fd962d3839a797ca56bffcbf12c8c9c641e06","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.4.0","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.1.3_1669553896136_0.33168234319015166","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@a2workspace/arrestor-gear","version":"1.2.0","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@1.2.0","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"32deae089e523fa3297bd3fc803a28c73fdabf0d","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-1.2.0.tgz","fileCount":6,"integrity":"sha512-CefktmqQl8Wj/mm9OFfA55cDL+shIkDYzaWyfbNAmrDF7AKxuDHdihUzk1v7GsVTMk0m1cLVrgI0A3PJkNFj/A==","signatures":[{"sig":"MEUCIGnDN9WxY1Fo7I6VVLgD7blhN906YjwIoURR4iZik+ISAiEAlHOepAU1E8AegQHZJ7b9i72wD5suxJdAgDm2PzmMSdk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31245},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"d6d81ffae01a6a0b1032c28e1514fbf090ddb337","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.4","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_1.2.0_1717534042950_0.9336039442862432","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@a2workspace/arrestor-gear","version":"2.0.0","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@2.0.0","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"02cb74ee10fa5c6109ac2b78b45c97ebb9849aaf","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.0.tgz","fileCount":6,"integrity":"sha512-2v1Ks08EYW0jtTNSVpfmSrpkuQezBnqE9ULJmMQyIGCAcfjAFb61g4H7w9XTfV/HYalny/Mx34fK8qlOuogfmQ==","signatures":[{"sig":"MEUCIQCC2OyVncUpbk8K1wXVn71N271EMRCBZrQZnzqf2OXCaAIgB2Y6avKPbH5RH0A0kK4cD99L+wExh5ohqWJTMoh+yUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41370},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"8273f96edad7bfff9a93cc57f067f7f3646f21b2","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.2","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_2.0.0_1732266946261_0.896211416292811","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@a2workspace/arrestor-gear","version":"2.0.1","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@2.0.1","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"64e5fe995a8aeeaf4c7a2655a3ced1ffec732fba","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.1.tgz","fileCount":6,"integrity":"sha512-05K2aKBtaDuMj98hoe/uTbYZQ9XW3B0mGPRySoNUsrtiinmkcV516EWA9Bn7Any90kq+g1dJWlVgiKYzmFtz1Q==","signatures":[{"sig":"MEUCICbe3MH7WOaIVE1uqlHCpd+lsioeNWeO9F7BA48tWCFmAiEAux20HrrBnGxILyFPNsfa5QVf1D2SQZFtACbBmEiVDMY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36492},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"967c995ff1062de63dc070485f9ecbeea292d7e0","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.2","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_2.0.1_1732267642302_0.8680483428658128","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"@a2workspace/arrestor-gear","version":"2.0.2","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@2.0.2","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"577d72769be8f86681481cf9adae74a779502521","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.2.tgz","fileCount":6,"integrity":"sha512-GciU/F/4ubg8CpHU8BOjGHBvtCrOSAD+rCqp/TeCBr9yS2lkTIJSiTIxUQUzq76einOUXAEcPzevvW6cj08fxA==","signatures":[{"sig":"MEQCIEQ3fwepgy0AfZnzXp2YffGZnKJttuG29J/WuRt8ZE0wAiBC6is6RlelbmTFaNlCiDjLl3HUsycpe8pSaYMS0Tpctg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36523},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"99bbaaa1c42849726f579514efe8fbeb8770bd41","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.2","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_2.0.2_1732280167833_0.6269561606092335","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"@a2workspace/arrestor-gear","version":"2.0.3","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@2.0.3","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"e266fe836ec6999e87496b8bffee1508750f330d","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.3.tgz","fileCount":6,"integrity":"sha512-5snRKmi0yQ84Yvd+UDNFjyPbcn4P3Ojdkbi0cw4oFlukteKRseAyRKcE7QuwyaKf4cYXVFnffIDegyALd+ItcQ==","signatures":[{"sig":"MEYCIQC0Op0Hv8ZW8fn9eNeZMmqE9igpTRlgC5FMvLtpIGQ3bwIhAKp1m/Vvzt3eZnZsGUSTrqYGNPewIC4ceYydIHb/3JeW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36523},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"2edf97907ea988b618591098d258367cc111a454","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.2","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_2.0.3_1732524457226_0.4387057247132591","host":"s3://npm-registry-packages"}},"2.0.4":{"name":"@a2workspace/arrestor-gear","version":"2.0.4","keywords":["ajax","promise","node"],"author":{"name":"A2Workspace"},"license":"MIT","_id":"@a2workspace/arrestor-gear@2.0.4","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"dist":{"shasum":"4c445211bcda4a86274df7517c9500be7a7b49ec","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.4.tgz","fileCount":6,"integrity":"sha512-44cLeT6iw0nZZk6MUUqWnpqchkC/tmgmOoiwKljYg3Omj03xlflLJ5gB7U2Li/L4S34RfajukOieN1FonBRJfA==","signatures":[{"sig":"MEYCIQDesdvHhxiwWw6Vrcn9A7VhMFN/Vz0xkf9aoDCeiqpSLAIhALjJ+Y8+47C9d5/vpvOoauN8nT3XVVitKbRD00oOMEbt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36523},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.js"}},"gitHead":"938dd635d0a47c4b6a83bd9af9bb01815840a1ff","require":"./dist/index.js","scripts":{"test":"jest","build":"siroc build","test-coverage":"jest --coverage"},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"repository":{"url":"git+https://github.com/A2Workspace/arrestor-gear.git","type":"git"},"_npmVersion":"8.19.2","description":"An elegant Promise error handler.","directories":{},"_nodeVersion":"16.17.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","axios":"^0.27.2","siroc":"^0.16.0","ts-jest":"^28.0.7","@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios-mock-adapter":"^1.21.2"},"_npmOperationalInternal":{"tmp":"tmp/arrestor-gear_2.0.4_1733205315779_0.8140274560812226","host":"s3://npm-registry-packages"}},"2.0.5":{"name":"@a2workspace/arrestor-gear","version":"2.0.5","description":"An elegant Promise error handler.","keywords":["ajax","promise","node"],"repository":{"type":"git","url":"git+https://github.com/A2Workspace/arrestor-gear.git"},"license":"MIT","author":{"name":"A2Workspace"},"exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.es.js"}},"main":"./dist/index.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","scripts":{"build":"siroc build","test":"jest","test-coverage":"jest --coverage"},"devDependencies":{"@types/jest":"^28.1.6","@types/mocha":"^9.1.1","axios":"^0.27.2","axios-mock-adapter":"^1.21.2","jest":"^28.1.3","siroc":"^0.16.0","ts-jest":"^28.0.7"},"require":"./dist/index.js","gitHead":"63985310d9c3e9fbdf12423ad6eb852203b11496","bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"homepage":"https://github.com/A2Workspace/arrestor-gear#readme","_id":"@a2workspace/arrestor-gear@2.0.5","_nodeVersion":"16.17.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-uca59QBX9sjkPSCUKbr69alCXqbG5BsHSlcmPx9/FkIrD8VIdw/JAmpv8d+7ScdSVPHKroJZa9gZw8lM/Bv0MA==","shasum":"3f057b710fad02f0db51f1de8c30b2f6f2b0ce52","tarball":"https://registry.npmjs.org/@a2workspace/arrestor-gear/-/arrestor-gear-2.0.5.tgz","fileCount":6,"unpackedSize":36639,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7MQs7+bY41BXTMLOj6XopduYHP6fSweZI/cc5GjLSXgIgdXM3dOvR2PkpNU9ISNB6x1wf9vb/xhQvKi49ZKkPpC4="}]},"_npmUser":{"name":"shishatw","email":"shishatw225@gmail.com"},"directories":{},"maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arrestor-gear_2.0.5_1733205572298_0.09763628921048606"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-03T00:29:47.078Z","modified":"2024-12-03T05:59:32.737Z","1.0.0":"2022-09-03T00:29:47.343Z","1.0.1":"2022-09-03T22:51:32.646Z","1.1.0":"2022-09-25T03:04:52.192Z","1.1.1":"2022-11-16T15:21:22.526Z","1.1.2":"2022-11-27T12:34:50.331Z","1.1.3":"2022-11-27T12:58:16.299Z","1.2.0":"2024-06-04T20:47:23.120Z","2.0.0":"2024-11-22T09:15:46.423Z","2.0.1":"2024-11-22T09:27:22.549Z","2.0.2":"2024-11-22T12:56:08.043Z","2.0.3":"2024-11-25T08:47:37.367Z","2.0.4":"2024-12-03T05:55:16.001Z","2.0.5":"2024-12-03T05:59:32.531Z"},"bugs":{"url":"https://github.com/A2Workspace/arrestor-gear/issues"},"author":{"name":"A2Workspace"},"license":"MIT","homepage":"https://github.com/A2Workspace/arrestor-gear#readme","keywords":["ajax","promise","node"],"repository":{"type":"git","url":"git+https://github.com/A2Workspace/arrestor-gear.git"},"description":"An elegant Promise error handler.","maintainers":[{"name":"shishatw","email":"shishatw225@gmail.com"}],"readme":"<h1 align=\"center\">🛬 Arrestor Gear</h1>\n<p align=\"center\">\n<a href=\"https://github.com/A2Workspace/arrestor-gear\">\n    <img alt=\"\" src=\"https://github.com/A2Workspace/arrestor-gear/actions/workflows/coverage.yml/badge.svg\">\n</a>\n<a href=\"https://codecov.io/gh/A2Workspace/arrestor-gear\">\n    <img alt=\"\" src=\"https://img.shields.io/codecov/c/github/A2Workspace/arrestor-gear.svg?style=flat-square\">\n</a>\n<a href=\"https://github.com/A2Workspace/arrestor-gear/blob/master/LICENSE\">\n    <img alt=\"\" src=\"https://img.shields.io/github/license/A2Workspace/arrestor-gear?style=flat-square\">\n</a>\n<a href=\"https://npmjs.com/package/@a2workspace/arrestor-gear\">\n    <img alt=\"\" src=\"https://img.shields.io/npm/v/@a2workspace/arrestor-gear.svg?style=flat-square\">\n</a>\n<a href=\"https://npmjs.com/package/@a2workspace/arrestor-gear\">\n    <img alt=\"\" src=\"https://img.shields.io/npm/dt/@a2workspace/arrestor-gear.svg?style=flat-square\">\n</a>\n</p>\n<p align=\"center\">Elegant handling Axios errors.</p>\n<p align=\"center\">優雅的處理 Axios 錯誤。</p>\n\n- [Installation | 安裝](#installation--安裝)\n- [Quick Start | 快速開始](#quick-start--快速開始)\n- [Flow | 工作流程](#flow--工作流程)\n- [Usage | 如何使用](#usage--如何使用)\n  - [arrestorGear()](#arrestorgear)\n  - [ArrestorGear.onFulfilled()](#arrestorgearonfulfilled)\n  - [ArrestorGear.finally()](#arrestorgearfinally)\n  - [ArrestorGear.onError()](#arrestorgearonerror)\n- [The capture* Methods](#the-capture-methods)\n  - [ArrestorGear.captureValidationError()](#arrestorgearcapturevalidationerror)\n  - [ArrestorGear.captureStatusCode()](#arrestorgearcapturestatuscode)\n  - [ArrestorGear.captureAxiosError()](#arrestorgearcaptureaxioserror)\n  - [ArrestorGear.captureAny()](#arrestorgearcaptureany)\n- [Tips | 其他小技巧](#tips--其他小技巧)\n  - [書寫順序不重要](#書寫順序不重要)\n  - [支援鏈式呼叫](#支援鏈式呼叫)\n\n## Installation | 安裝\n\nUsing npm:\n\n```bash\nnpm install -s @a2workspace/arrestor-gear\n```\n\nUsing yarn:\n\n```bash\nyarn add @a2workspace/arrestor-gear\n```\n\n## Quick Start | 快速開始\n\n```js\nimport arrestorGear from '@a2workspace/arrestor-gear';\n\n// 將須處理的 `Promise Object` 透過 `arrestorGear` 函數包裹起來\nconst ag = arrestorGear(() => {\n  return axios.post(API_URL, { formData });\n});\n\n// 註冊一回呼函數。當 `Promise` 成功完成時會執行此函數，並傳入解析的值。類似於 Promise.then((resolved) => {})。\nag.onFulfilled((resolved) => {\n  this.$message.success('Created');\n  this.$router.back(-1);\n});\n\n// 註冊一回呼函數。當執行其他回呼函數過程中發生錯誤時會執行此函數。\nag.onError((error) => {\n  console.error(error);\n});\n\n// 註冊一回呼函數。當 `Promise` 完成時，無論結果，執行此函數。類似於 Promise.finally(() => {})。\nag.finally((isFulfilled) => {\n  this.processing = false;\n});\n\n// 當 `Promise` 為被拒絕 (rejected) 時，且狀態為 422 的情形，執行此回呼函數。反之交由後續的 `capture*` 函數處理。\nag.captureValidationError((messageBag) => {\n  this.$message.error(messageBag.first());\n  this.errors = messageBag.all((messages) => messages[0]);\n});\n\n// 當 `Promise` 為被拒絕 (rejected) 時，且符合給定條件的狀態碼的情形，執行此回呼函數。反之交由後續的 `capture*` 函數處理。\nag.captureStatusCode([401, 403], (axiosError) => {\n  this.$message.error('Forbidden');\n});\n\n// `ag.captureStatusCode` 的另一種寫法，支援字串符搜尋比對。\nag.captureStatusCode('5XX', (axiosError) => {\n  this.$message.error('Server Error');\n});\n\n// 當 `Promise` 為被拒絕 (rejected) 時，且為 AxiosError 的情形，執行此回呼函數。反之交由後續的 `capture*` 函數處理。\nag.captureAxiosError((axiosError) => {\n  this.$message.error(`Bad Request: ${axiosError.response.status}`);\n});\n\n// 攔截所有 rejected 結果，並執行此回呼函數。適用於放在鏈的最後，後續的攔截函數將不會處理。\nag.captureAny((error) => {\n  this.$message.error('Something wrong here');\n  console.error(error);\n});\n```\n\n## Flow | 工作流程\n\n<p align=\"center\"><img src=\"/.github/ag-flow.png\" alt=\"\"></p>\n\n## Usage | 如何使用\n\n### arrestorGear()\n\n支援以下寫法:\n\n```js\n// 直接包裹住 `Promise` 物件\nconst ag = arrestorGear(axios.post(API_URL, { formData }));\n\n// 傳統函數\nconst ag = arrestorGear(function () {\n  return axios.post(API_URL, { formData });\n});\n\n// 箭頭函數\nconst ag = arrestorGear(() => axios.post(API_URL, { formData }));\n\n// 推薦寫法\nconst ag = arrestorGear(() => {\n  return axios.post(API_URL, { formData });\n});\n```\n\n### ArrestorGear.onFulfilled()\n\n類似於 Promise.then((resolved) => {})。\n\n當 `Promise` 成功完成時會呼叫回呼函數，並傳入解析的值。\n\n不同的是，你可以註冊多個回呼函數，他們會被依序呼叫**且彼此不會相互影響**，即便拋出錯誤也會被內部攔截。\n\n```js\nag.onFulfilled((resolved) => {\n  this.$message.success('Updated.');\n});\n\nag.onFulfilled((resolved) => {\n  this.$fetch();\n});\n```\n\n更多的使用情境是在組件間共享請求執行結果:\n\n```js\n// src/utils/ProductService.js\nconst ProductService = {\n  update(formData) {\n    this.loading = true;\n\n    const ag = arrestorGear(axios.put(this.api, formData));\n\n    // 這裡會被執行，當成功時刷新資料\n    ag.onFulfilled((res) => {\n      this.$fetch();\n    });\n\n    ag.finally(() => {\n      this.loading = false;\n    });\n\n    return ag;\n  },\n};\n\n// src/pages/ProductPage.vue\nfunction updateProduct(formData) {\n  const ag = ProductService.update(formData);\n\n  // 這裡也會被執行，當成功時顯示頁面的提示訊息\n  ag.onFulfilled((res) => {\n    this.$message.success(res);\n    this.$router.push(-1);\n  });\n\n  ag.captureValidationError((messageBag) => {\n    this.errors = messageBag.all((messages) => messages[0]);\n  });\n}\n```\n\n### ArrestorGear.finally()\n\n類似於 Promise.finally(() => {})。\n\n無論結果為何都會執行。\n\n且**回傳 Promise 物件**，設計可用來嫁接 `Async/Await`。\n\n```js\nasync function handleSubmit() {\n  const ag = arrestorGear(() => axios.post(API_URL, { formData }));\n\n  ag.captureValidationError((messageBag) => {\n    this.errors = messageBag.all((messages) => messages[0]);\n  });\n\n  await ag.finally();\n}\n```\n\n### ArrestorGear.onError()\n\n當調用其他 `callback` 過程中發生錯誤時，會呼叫此方法註冊的函數。\n\n```js\nag.onFulfilled((resolved) => {\n  throw 'thrown at onFulfilled';\n});\n\nag.finally((resolved) => {\n  throw 'thrown at finally';\n});\n\nag.captureAny((resolved) => {\n  throw 'thrown at captureAny';\n});\n\nag.onError((error) => {\n  console.error(error);\n});\n```\n支援多個 `onError` 註冊，運行時會逐一呼叫:\n```js\nag.onFulfilled((resolved) => {\n  throw 'thrown at onFulfilled';\n});\n\nag.onError((error) => {\n  // 1\n});\n\nag.onError((error) => {\n  // 2\n});\n```\n\n## The capture* Methods\n\n這個套件的關鍵核心---攔截器函數。\n\n目前提供以下:\n\n- `ArrestorGear.captureValidationError()`\n- `ArrestorGear.captureStatusCode()`\n- `ArrestorGear.captureAxiosError()`\n- `ArrestorGear.captureAny()`\n\n### ArrestorGear.captureValidationError()\n\n捕獲 Http Status 422 並傳入 `ValidationMessageBag`。\n\n```js\nconst ag = arrestorGear(() => axios.post(API_URL, { formData }));\n\nag.captureValidationError((messageBag) => {\n  this.$message.error(messageBag.first());\n\n  this.errors = messageBag.all((messages) => messages[0]);\n});\n```\n\n#### ValidationMessageBag\n\n- `ValidationMessageBag.response`\n- `ValidationMessageBag.message`\n- `ValidationMessageBag.errors`\n- `ValidationMessageBag.has(key: string)`\n- `ValidationMessageBag.get(key: string)`\n- `ValidationMessageBag.first(key?: string)`\n- `ValidationMessageBag.all((messages) => any)`\n\n### ArrestorGear.captureStatusCode()\n\n捕獲給訂條件 Http Status 。支援以下寫法:\n\n```js\n// 一般情形\nag.captureStatusCode(401, (axiosError) => {\n  this.$message.info('未登入');\n});\n\n// 支援多個狀態碼\nag.captureStatusCode([403, 404], (axiosError) => {\n  this.$message.error('找不到資源');\n});\n\n// 支援字符匹配\nag.captureStatusCode('5XX', (axiosError) => {\n  this.$message.error('伺服器錯誤');\n});\n\n// 我全都要\nag.captureStatusCode([400, '5XX'], (axiosError) => {\n  this.$message.info('了解');\n});\n```\n\n### ArrestorGear.captureAxiosError()\n\n捕獲任何 `AxiosError`。\n\n**注意，後續的 `captureStatusCode()` 即便條件符合也不會執行。**\n\n```js\nconst ag = arrestorGear(() => axios.post(API_URL, { formData }));\n\nag.captureAxiosError((axiosError) => {\n  this.$message.error('停在這裡');\n});\n\nag.captureStatusCode('5XX', (axiosError) => {\n  this.$message.info('永遠輪不到我');\n});\n```\n\n捕獲所有錯誤類型。\n\n通常使用情境是放在鏈的最後，作為通用的錯誤處理。\n\n**注意，僅處理一開始建構 Promise rejected 的內容，執行期其他函數拋出的錯誤不會呼叫此函數**\n\n```js\nconst ag = arrestorGear(() => axios.post(API_URL, { formData }));\n\nag.captureAxiosError((axiosError) => {\n  this.$message.error('伺服器錯誤');\n});\n\nag.captureAny((error) => {\n  console.error(error);\n});\n```\n\n### ArrestorGear.captureAny()\n\n## Tips | 其他小技巧\n\n### 書寫順序不重要\n\n除了 `Capture Methods` 受執行時的順序影響，其他的函數可任意擺放。\n\n```js\n// 將須處理的 `Promise Object` 透過 `arrestorGear` 函數包裹起來\nconst ag = arrestorGear(() => Promise.resolve(true)));\n\n// 放這\nag.onFulfilled((resolved) => {\n  console.log('A');\n});\n\nag.captureAny((error) => {\n  console.log('B');\n});\n\n// 放這\nag.onFulfilled((resolved) => {\n  console.log('C');\n});\n\nag.finally((isFulfilled) => {\n  console.log('D');\n});\n\n// 或放這\nag.onFulfilled((resolved) => {\n  console.log('E');\n});\n\n// 執行結果為:\n// => A\n// => C\n// => E\n// => D\n```\n\n### 支援鏈式呼叫\n\n支援鏈式呼叫，但不推薦此作法。\n\n鏈式呼叫加上回呼函數的寫法不僅對排版不友好，也影響整齊與美觀。\n\n```js\narrestorGear(() => {\n  //\n  // ...\n  //\n  return Promise.resolve(true);\n}))\n  .onFulfilled((resolved) => {\n    //\n    // ...\n    //\n  })\n  .captureStatusCode((resolved) => {\n    //\n    // ...\n    //\n  })\n  .captureAny((resolved) => {\n    //\n    // ...\n    //\n  })\n  .finally((resolved) => {\n    //\n    // ...\n    //\n  })\n```\n\n## About | 開發者碎碎念\n\n此套件的最初目的，是為解決 `Axios` 採用 `Promise` 的諸多限制，尤其是肥大的 `then/catch` 區塊加上鏈式寫法，每每佔去檔案的大半空間。為了讓使用率高的 `Axios` 函數也能用起來優雅，我們在經過內部專案五六次疊代後開發出了這個套件。\n\n### 這會不會又是一個過度設計?\n\n也許有點。但在我近期的兩個專案中使用的結果來看。不僅美化了程式碼區塊、減少了行數，~~也讓程式碼複製起來更為方便~~ 也讓程式碼重用起來更為方便。\n\n### 為甚麼不用 Async/Await 或 try-catch 處理就好\n\n首先這兩者搭在一起的寫法本身就不美觀。\n","readmeFilename":"README.md"}