UNPKG

find-remove

Version:

recursively finds files and/or directories by filter options from a start directory onwards and deletes these according to plenty of options you can configure. useful if you want to clean up stuff within a directory in your node.js app.

3 lines (2 loc) 2.78 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("fs"),require("path"),require("rimraf")):"function"==typeof define&&define.amd?define(["fs","path","rimraf"],t):(e||self).findRemove=t(e.fs,e.path,e.rimraf)}(this,function(e,t,i){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r,a,o=/*#__PURE__*/n(e),f=/*#__PURE__*/n(t);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},l.apply(null,arguments)}function d(e,t){if(!r)return!1;var i=o.default.statSync(e).mtime.getTime();return r>i+1e3*t}function u(e){return void 0===e&&(e={}),void 0!==e.totalRemoved?e.totalRemoved:-2}function v(e){return void 0===e&&(e={}),u(e)>=function(e){return void 0===e&&(e={}),void 0!==e.limit?e.limit:-1}(e)}function c(e){return void 0===e&&(e={}),void 0!==e.maxLevel?e.maxLevel:-1}function s(e){var t;return void 0===e&&(e={}),e.age&&null!=(t=e.age.seconds)?t:null}var m=function(e,t,n){void 0===t&&(t={});var y={};if(v(t))return y;var x=!1,p=o.default.existsSync(e),g=function(e){try{return o.default.lstatSync(e),!0}catch(e){return!1}}(e);if(p&&!g)x=!0;else if(p){var h=c(t);void 0!==t.limit&&(t.totalRemoved=void 0!==t.totalRemoved?u(t):0),void 0===n?n=0:n++,n<1?(r=(new Date).getTime(),a=t.test):x=function(e,t,i){void 0===i&&(i={});var n=!1,r=i.dir;if(r){var a=s(i),o=f.default.basename(e);Array.isArray(r)?n=-1!==r.indexOf("*")||-1!==r.indexOf(o):(i.regex&&o.match(new RegExp(r))||o===r||"*"===r)&&(n=!0),n&&void 0!==i.limit&&(n=!v(i)),n&&void 0!==i.maxLevel&&t>0&&(n=t<=c(i)),a&&n&&(n=d(e,a))}return n}(e,n,t),(-1===h||n<h)&&o.default.readdirSync(e).forEach(function(i){var r,u,c=f.default.join(e,i),x=!1;try{u=o.default.statSync(c)}catch(e){x=!0}if(x);else if(null!=(r=u)&&r.isDirectory()){var p=m(c,t,n);y=l({},y,p),void 0!==t.totalRemoved&&(t.totalRemoved+=Object.keys(p).length)}else if(function(e,t){var i;void 0===t&&(t={});var n=!1,r=t.extensions?t.extensions:null,a=t.files?t.files:null,o=t.prefix?t.prefix:null,l=null!=(i=t.ignore)?i:null,u=f.default.basename(e);if(a&&(n=Array.isArray(a)?-1!==a.indexOf("*.*")||-1!==a.indexOf(u):!!(t.regex&&u.match(new RegExp(a))||"*.*"===a)||u===a),!n&&r){var c=f.default.extname(e);n=Array.isArray(r)?-1!==r.indexOf(c):c===r}if(!n&&o&&(n=0===u.indexOf(o)),n&&void 0!==t.limit&&(n=!v(t)),n&&l&&(n=Array.isArray(l)?!(-1!==l.indexOf(u)):!(u===l)),n){var m=s(t);m&&(n=d(e,m))}return n}(c,t)){var g;if(a)g=!0;else try{o.default.unlinkSync(c),g=!0}catch(e){}g&&(y[c]=!0,void 0!==t.totalRemoved&&t.totalRemoved++)}})}return x&&(a||i.rimrafSync(e),void 0===t.totalRemoved&&(y[e]=!0)),y};return m}); //# sourceMappingURL=find-remove.umd.js.map