simple-adonis-cache
Advanced tools
Comparing version 0.1.0 to 0.3.0
{ | ||
"name": "simple-adonis-cache", | ||
"version": "0.1.0", | ||
"version": "0.3.0", | ||
"description": "A simple cache mechanism for AdonisJs", | ||
"main": "index.js", | ||
"scripts": { | ||
@@ -13,3 +12,5 @@ "lint": "standard", | ||
"adonisjs", | ||
"adonis-framework" | ||
"adonis-framework", | ||
"cache", | ||
"caching" | ||
], | ||
@@ -16,0 +17,0 @@ "author": "Ahmad Ganjtabesh", |
164
README.md
# Simple Adonis Cache | ||
[![npm (scoped)](https://img.shields.io/badge/npm-v0.2.0-blue.svg)](https://www.npmjs.com/package/@agtabesh/keyword-extractor) | ||
A simple cache mechanism for AdonisJs. | ||
More details will be added soon. | ||
- [Installation](#installation) | ||
- [Configuration](#configuration) | ||
- [API Reference](#api-reference) | ||
- [remember](#remember) | ||
- [forever](#forever) | ||
- [forget](#forget) | ||
- [To Do](#to-do) | ||
- [Release History](#release-history) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
## Installation | ||
<a name="installation"></a> | ||
```js | ||
adonis install simple-adonis-cache | ||
``` | ||
After installation, you need to register the providers inside `start/app.js` file. | ||
```javascript | ||
// start/app.js | ||
const providers = [ | ||
..., | ||
'adonis-cache/providers/CacheProvider' | ||
] | ||
``` | ||
## Configuration | ||
<a name="configuration"></a> | ||
The cache configuration is located at `config/cache.js`. | ||
```javascript | ||
// config/cache.js | ||
module.exports = { | ||
// Indicates cache must be enabled or not | ||
enabled: true, | ||
// Indicates where objects should reside on | ||
driver: 'memory', | ||
// Indicates prefix for keys | ||
prefix: 'cache:' | ||
} | ||
``` | ||
## API Reference | ||
<a name="api-reference"></a> | ||
Cache.<b>remember</b>(<i>key</i>, <i>expire</i>, <i>value</i>) | ||
<a name="remember"></a> | ||
This function store `value` in `key` for `expire` seconds and return `value`. | ||
- `key`: must be `String` indicating the `key` | ||
- `expire`: must be `Number` indicating expiration time | ||
- `value`: can be anything such as `Function`, `String`, `Number`, etc. | ||
Example code: | ||
```javascript | ||
const Cache = use('Cache') | ||
const User = use('App/Models/User') | ||
class UserController { | ||
async index(request, response) { | ||
// retrieve users from database and cache them for 60 seconds. | ||
const users = await Cache.rememebr('users', 60, () => { | ||
return User.all() | ||
}) | ||
// retrieve tags and cache them for 1 hour. | ||
const tags = await Cache.rememebr('users', 60 * 60, () => { | ||
return ['goods', 'services'] | ||
}) | ||
// retrieve url and cache it for 1 day. | ||
const url = await Cache.rememebr('users', 24 * 60 * 60, () => { | ||
return 'http://api.example.com' | ||
}) | ||
} | ||
} | ||
``` | ||
Cache.<b>forever</b>(<i>key</i>, <i>value</i>) | ||
<a name="forever"></a> | ||
This function store `value` in `key` forever and return `value`. | ||
- `key`: must be `String` indicating the `key` | ||
- `value`: can be anything such as `Function`, `String`, `Number`, etc. | ||
Example code: | ||
```javascript | ||
const Cache = use('Cache') | ||
const User = use('App/Models/User') | ||
class UserController { | ||
async index(request, response) { | ||
// retrieve users from database and cache them forever. | ||
const users = await Cache.forever('users', () => { | ||
return User.all() | ||
}) | ||
// retrieve tags and cache them forever. | ||
const tags = await Cache.forever('users', () => { | ||
return ['goods', 'services'] | ||
}) | ||
// retrieve url and cache it forever. | ||
const url = await Cache.forever('users', () => { | ||
return 'http://api.example.com' | ||
}) | ||
} | ||
} | ||
``` | ||
Cache.<b>forget</b>(<i>key</i>) | ||
<a name="forget"></a> | ||
This function remove specified `key`. | ||
- `key`: must be `String` indicating the `key` | ||
Example code: | ||
```javascript | ||
const Cache = use('Cache') | ||
const User = use('App/Models/User') | ||
class UserController { | ||
async index(request, response) { | ||
// forget a specific key | ||
await Cache.forget('users') | ||
} | ||
} | ||
``` | ||
## To Do | ||
<a name="to-do"></a> | ||
- [x] Add basic functionality | ||
- [x] Add memory driver | ||
- [ ] Add redis driver | ||
- [ ] Add a method to flush all cached values | ||
- [ ] Add a command to flush all cached values | ||
- [ ] Support for different environments | ||
## Release History | ||
<a name="release-history"></a> | ||
- 0.1.0 - First draft. | ||
- 0.2.0 - Initial release and basic functionality and supports for memory storage. | ||
## Contributing | ||
<a name="contributing"></a> | ||
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. | ||
Please make sure to update tests as appropriate. | ||
## License | ||
<a name="license"></a> | ||
[MIT](https://choosealicense.com/licenses/mit/) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
15513
11
416
168