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