An open API service indexing awesome lists of open source software.

https://github.com/vladimiry/fs-no-eperm-anymore

Reducing EPERM or other errors on win32 or other platforms using retry loop approach
https://github.com/vladimiry/fs-no-eperm-anymore

backoff backoff-strategy eperm error-handling file-system fs retry win32 windows

Last synced: about 1 year ago
JSON representation

Reducing EPERM or other errors on win32 or other platforms using retry loop approach

Awesome Lists containing this project

README

          

# fs-no-eperm-anymore

is a Node.js module that reduces EPERM or other errors on win32 or other platforms using retry loop approach.

[![GitHub Actions CI](https://github.com/vladimiry/fs-no-eperm-anymore/workflows/GitHub%20Actions%20CI/badge.svg?branch=master)](https://github.com/vladimiry/fs-no-eperm-anymore/actions)

## Notes

- Original "fs" methods are wrapped into the ES2015 Promises.
- Module exposes only the `async` functions. Retry approach is used and so it won't make much sense to `sleep` the main process just to support `sync` methods set.
- You can see some details about the `options` parameter in the [Making options more flexible](https://github.com/vladimiry/fs-no-eperm-anymore/issues/1) issue. Default `options` value:

```typescript
const options = {
items: [
{
platforms: ["win32"],
errorCodes: ["EPERM"], // https://nodejs.org/api/errors.html#errors_common_system_errors
options: {
retryIntervalMs: 100,
retryTimeoutMs: 10 * 1000,
},
},
],
};
```

## Code Example

```typescript
import {instantiate} from "fs-no-eperm-anymore";
// const fs = require("fs-no-eperm-anymore").instantiate();

// options parameter is optional
const fs = instantiate(/*options*/);

fs.rename("from.txt", "to.txt")
.then(() => console.log("Successful renaming"))
.catch((error) => console.log("Renaming failed with the error", error));
```

## Links
* https://github.com/isaacs/node-graceful-fs/pull/119 - more details about the EPERM errors.
* https://nodejs.org/api/errors.html#errors_common_system_errors - Common System Errors