UNPKG

meteor-desktop

Version:

Build a Meteor's desktop client with hot code push.

33 lines (29 loc) 788 B
import rimraf from 'rimraf'; /** * Simple wrapper for rimraf with additional retries in case of failure. * It is useful when something is concurrently reading the dir you want to remove. */ function rimrafWithRetries(...args) { let retries = 0; return new Promise((resolve, reject) => { function rm(...rmArgs) { try { rimraf.sync(...rmArgs); resolve(); } catch (e) { retries += 1; if (retries < 5) { setTimeout(() => { rm(...rmArgs); }, 100); } else { reject(e); } } } rm(...args); }); } export default { rimrafWithRetries };