Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ndragun92/file-sys-cache
Efficient system files-based caching for Node.js applications.
https://github.com/ndragun92/file-sys-cache
cache caching file-cache filesystem node npm optimization package performance storage system
Last synced: 27 days ago
JSON representation
Efficient system files-based caching for Node.js applications.
- Host: GitHub
- URL: https://github.com/ndragun92/file-sys-cache
- Owner: ndragun92
- License: mit
- Created: 2024-03-08T17:46:06.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-14T16:25:27.000Z (10 months ago)
- Last Synced: 2024-03-15T14:12:39.251Z (10 months ago)
- Topics: cache, caching, file-cache, filesystem, node, npm, optimization, package, performance, storage, system
- Language: TypeScript
- Homepage: https://ndragun92.github.io/file-sys-cache/
- Size: 1.82 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# File-Sys-Cache
File-Sys-Cache is an npm package that provides a simple and efficient system files-based caching solution for Node.js applications.
## Features
- **Set Cache**: Store data in the cache with options to specify file name prefix, file name, payload, and time-to-live (TTL).
- **Get Cached Data**: Retrieve cached data by providing the corresponding file name or prefix.
- **Invalidate Cached Data**: Automatically invalidate cached data for items with expired TTLs.
- **Flush Cache by Regex**: Flush cache entries that match a given regular expression.
- **Flush Whole Cache**: Clear the entire cache, removing all stored entries.
- **Monitoring**: Monitor cache usage and performance statistics, including invalidated files count, logs over time, size over time, and request count.
- **TypeScript**: Full TypeScript support## Installation
Install File-Sys-Cache via npm:
```bash
npm install file-sys-cache
```## Usage
```javascript
import { FileSysCache } from 'file-sys-cache'// Create a new cache instance
const cache = new FileSysCache({
basePath: './.file-sys-cache', // Directory where cache will be stored
defaultTTL: 60, // 60 seconds expiration time
hash: 'sha256', // Hashing algorithm
debug: false, // Enabled debug mode
autoInvalidate: false, // Auto invalidate files from file-system and delete expired files automatically without need of triggering .invalidate()
enableMonitoring: false // Enabled monitoring which exposes cache.monitoring.get(), cache.monitoring.reset()
});// Set cache with a file name prefix, file name, payload, and TTL
await cache.set({ fileName: 'myFileName', key: 'myUniqueKey', payload: myPayload, ttl: 3600 })// Retrieve cached data by file name prefix and file name
const data = await cache.get({ fileName: 'myFileName', key: 'myUniqueKey' });// Retrieve current list of files inside cache
const data = await cache.files();// Flush cache by passing regex
await cache.flushByRegex('myString', 'myString2'); // Flush cache by regex match (single or multiple same matches)// Flush whole cache
await cache.flushAll();
```For more detailed usage examples and API documentation, please refer to the [Documentation](https://ndragun92.github.io/file-sys-cache) section.
## Contributing
Contributions are welcome! Please see the [Contributing Guidelines](https://github.com/ndragun92/file-sys-cache/blob/main/CONTRIBUTING.md) for more information.## License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/ndragun92/file-sys-cache/blob/main/LICENSE) file for details.