{"_id":"@tgrajewski/rmtree","_rev":"2-7d6ae5eb8ec62cb871bfd1b566ca1023","name":"@tgrajewski/rmtree","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@tgrajewski/rmtree","version":"1.0.0","description":"Ultra-fast and fail-proof removal of big directory trees synchronously (a lot faster than async).","main":"rmtree.js","repository":{"type":"git","url":"git://github.com/tgrajewski/rmtree.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"bin":{"rmtree":"./bin.js"},"keywords":["rmtree","rmdir"],"author":{"name":"Tomasz Grajewski","email":"contact@tomaszgrajewski.com","url":"http://tomaszgrajewski.com/"},"license":"ISC","bugs":{"url":"https://github.com/tgrajewski/rmtree/issues"},"homepage":"https://github.com/tgrajewski/rmtree#readme","_id":"@tgrajewski/rmtree@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-hnhWPX+SxkgmJTxHC/IIqYuZBk4g9ogEoW0sg8KDam+juew9MxxCShKb+lGTqdNnOBBZuJKIiGrWci02prKmfw==","shasum":"fdfc9bde65e7461db5cf91373cc3baa720d0614d","tarball":"https://registry.npmjs.org/@tgrajewski/rmtree/-/rmtree-1.0.0.tgz","fileCount":8,"unpackedSize":7475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRdkJCRA9TVsSAnZWagAAgEQQAIQkeY/xmX0ji4PoMNJR\nMSdkbgvU6H0viH6OQMd0rZg8RoarDNstllLRaePEqKieR7WVhd0deptMFAl9\nx+0VyM8TWfCW4xoQs9BrAjPG12aMpmr8MTP86lgEfJqfGz3FSo4rPYn5tkad\nRauTu8aIECf32vfSXT1H6U4SJlIPIlfBv2YV7Q+iSfQqcAlgXYhMkLdk8P+3\nC243Z5Z/hBhDMJ3JSy3TeyDggeMsmJEsNC0SHJ86tyvU/9YYVLeHJK8/QZ62\nWG4rv31IZn5Q05d4TyFsOtG+0EP/47QyLU2RSvjrZVXRIshHtV4spVkdIGI1\nFue34orTlAuecdLc14tErZ16NknnAphqMoRB2pH84g5AbsITo7PbdWTLgZmd\ni5nZYKgl9dH517JD/s11jHunbBCHyOJCdxfi7ILsOJ4EcyYxv3agf2k41NsP\nQUGfWl9/Z0VerQcC0BinYDdPYuocdHV1rOc5Dv36A9WHFZQHwkR8hazF9duo\nZqiM5iv2HZ9Kvdn7ir/2Kso2CpWQoE5UIJYu2EHDnEXQ24fhBess94AC1ci0\nWFAqI0qIzMS/E4I+1fYRr5Yvm++Hd5+sT3V46E+KHIJ0ctq3qdrb5sqg+UOy\nTocoZZCsyNTXUpBrqHCoGCT6rSkL8HBbCkmJhrSbF6wvCfPe7ILdRoKSQfMS\n4Hnl\r\n=Qsvw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHBHROXDtxkjtXrKWkuug1zX/WceCceF+N6eW6DkasIfAiBI+G2S4x/PvXE9dUGxvTvkJs72gZNGo37CeABYjMmiYQ=="}]},"maintainers":[{"name":"tgrajewski","email":"contact@tomaszgrajewski.com"}],"_npmUser":{"name":"tgrajewski","email":"contact@tomaszgrajewski.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rmtree_1.0.0_1564858633297_0.27907579618703426"},"_hasShrinkwrap":false},"1.0.1":{"name":"@tgrajewski/rmtree","version":"1.0.1","description":"Ultra-fast and fail-proof removal of big directory trees synchronously (a lot faster than async).","main":"rmtree.js","repository":{"type":"git","url":"git://github.com/tgrajewski/rmtree.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"bin":{"rmtree":"./bin.js"},"keywords":["rmtree","rmdir"],"author":{"name":"Tomasz Grajewski","email":"contact@tomaszgrajewski.com","url":"http://tomaszgrajewski.com/"},"license":"ISC","bugs":{"url":"https://github.com/tgrajewski/rmtree/issues"},"homepage":"https://github.com/tgrajewski/rmtree#readme","_id":"@tgrajewski/rmtree@1.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-sbmprNcoyALNGlu/kCS55T9zBMi40OZ8eLaGGwOnEg0Pu40PqQI57yz2Cb99/Jq7PfCpLVSqg8lQoRF5NAyEmg==","shasum":"e29d350379bf270290c06f55df47110331571eb4","tarball":"https://registry.npmjs.org/@tgrajewski/rmtree/-/rmtree-1.0.1.tgz","fileCount":8,"unpackedSize":7946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRdniCRA9TVsSAnZWagAAPE4P/3um7SmCyZB/x/RZUbwb\nGca44tI2vsuNEj11Ki5rlhWXqTvOro27IPv9sIsgFZg+mtQeeyYyqntkLc5D\nk92iPa/L3kzuO1bJHxKhXoEmE5yXLH5DTRwy/VmPT5xFozV6AyZa+3mP90Uf\nAZRm8za62Rc+z7Z36oKvr9J+wtCkFrt53HpnqlRelThfXR57jrg5rBbZsGtH\ng44TSDtd5u/KhTdWkP5NerlKpSSpwm2tJ6pJwMAZ6eBhQPDliKi3xkkWkYRf\nrvVENgPqrQ+M4vYKlAF/L5gsBXTQ6AEZGNzRDg43iqMW4KzvR0LAOK8WoIPZ\nm7OCGbZ61K3o9fiSzznujYGaxk5ahI/1ZwSfkmap7+u80MZyiSWnoH53jvVM\nnd0bQw/7cfEjD8IwfT3yyAfUkN1q8rM1/LUUHrmPhPQnzWFl023lDHvXJmy/\nPBj3abyRcUcBiVZkMGAU5c3HyifsnnDXezwiDfSosVLlwHqM5wKSpYjbrxuO\niD6K3sT1huHU4wPol3gNxO0zi4qW8JnErPtmAkZU4DmioZoplMX+0O1SsxOQ\nTXdYdkdJ/qsVPajjctkWDyZQjZR/g6UewK6AahCxDxE5GmKAflW3fSOybGwp\ngQWdFTC+GIqZD2E7HMw2ggdwZaXZr4nBD5kgJnqv0joddEIBecr23gdJKOyY\nmPvE\r\n=706k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDYgwBu4Dqyp4fKDiOiXfhrd5MYJxPGqjXNd8KMBkS0kAiAKZaD2LQjqFRPG24zsCfgGkeKAcHh+unwmJcT6dZJcZQ=="}]},"maintainers":[{"name":"tgrajewski","email":"contact@tomaszgrajewski.com"}],"_npmUser":{"name":"tgrajewski","email":"contact@tomaszgrajewski.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rmtree_1.0.1_1564858850281_0.341568969969807"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-03T18:57:13.079Z","1.0.0":"2019-08-03T18:57:13.487Z","modified":"2022-04-07T05:27:41.055Z","1.0.1":"2019-08-03T19:00:50.426Z"},"maintainers":[{"name":"tgrajewski","email":"contact@tomaszgrajewski.com"}],"description":"Ultra-fast and fail-proof removal of big directory trees synchronously (a lot faster than async).","homepage":"https://github.com/tgrajewski/rmtree#readme","keywords":["rmtree","rmdir"],"repository":{"type":"git","url":"git://github.com/tgrajewski/rmtree.git"},"author":{"name":"Tomasz Grajewski","email":"contact@tomaszgrajewski.com","url":"http://tomaszgrajewski.com/"},"bugs":{"url":"https://github.com/tgrajewski/rmtree/issues"},"license":"ISC","readme":"# rmtree\n\n> 4,36 GB of data, 28 042 files, 4 217 folders on Windows removed in 15 seconds\n> vs rimraf's 60 seconds on old HDD.\n\nRemoves directory trees ultra-fast synchronously (compared async code).\nNo dependencies.\n\nInstall with `npm install @tgrajewski/rmtree`, or just drop `rmtree.js` somewhere.\n\nExample usage:\n```javascript\nconst rmtree = require('@tgrajewski/rmtree');\n\n// Removes local directory `build` and returns number of files removed\nrmtree('build');\n\n// Remove only contents of `build`, not the directory itself\nrmtree('build', false);\n```\n\n\n## API\n\n■ **`rmtree(root, removeRoot=true)`**: `Number`\n\nRemoves the directory specified by the `root` argument and all files\nand directories inside. Does that synchronously (fast).\n\nIf `removeRoot` is `false`, then starting directory will not be removed,\nonly its contents.\n\nThis function tries hard, especially on Windows, where various issues arise\nbecause files aren't removed instantaneously or permissions might be\ninsufficient or files might be locked by other processes.\n\nReturns number of files and directories removed.\n\n*Note:* In rare cases files might be still visible in Windows Explorer after\nsuccessfull call of `rmtree(...)`. These files are usually locked by other\nprocesses (e.g. code editor), when you close the program, these files will\nvanish.\n\n\n■ **`rmtree.log = null;`**\n\n■ **`rmtree.log = function(file, error) { ... };`**\n\nIn rare cases some files might be locked and calling `rmtree(...)` will log\nappropriate messages via `console.log()` calls. You can suppress these messages\nby setting `rmtree.log = null;` or provide your own callback function.\n\n\n## CLI\n\nYou can call `rmtree <path> [<path> ...]` inside your npm `scripts` field in `package.json`.\n\nYou can also install this package globally `npm install rmtree -g` and you will\nbe able to call `rmtree <path> [<path> ...]` on your command line.\n","readmeFilename":"readme.md"}