File: /var/www/zaklada/html/node_modules/gulp-cache/README.md
# gulp-cache
[](https://www.npmjs.com/package/gulp-cache)
[](https://travis-ci.org/jgable/gulp-cache)
[](https://coveralls.io/r/jgable/gulp-cache)
[](https://david-dm.org/jgable/gulp-cache)
[](https://david-dm.org/jgable/gulp-cache#info=devDependencies)
A temp file based caching proxy task for [gulp](http://gulpjs.com/).
## Usage
```javascript
var fs = require('fs');
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var cache = require('gulp-cache');
gulp.task('lint', function() {
gulp.src('./lib/*.js')
.pipe(cache(jshint('.jshintrc'), {
key: makeHashKey,
// What on the result indicates it was successful
success: function (jshintedFile) {
return jshintedFile.jshint.success;
},
// What to store as the result of the successful action
value: function(jshintedFile) {
// Will be extended onto the file object on a cache hit next time task is ran
return {
jshint: jshintedFile.jshint
};
}
}))
.pipe(jshint.reporter('default'));
});
var jsHintVersion = '2.4.1',
jshintOptions = fs.readFileSync('.jshintrc');
function makeHashKey(file) {
// Key off the file contents, jshint version and options
return [file.contents.toString('utf8'), jshintVersion, jshintOptions].join('');
}
```
## Clearing the cache
If you find yourself needing to clear the cache, there is a handy dandy `cache.clearAll()` method:
```js
var cache = require('gulp-cache');
gulp.task('clear', function (done) {
return cache.clearAll(done);
});
```
You can then run it with `gulp clear`.
## Options
#### `fileCache`
> [Optional] Where to store the cache objects
- Defaults to `new Cache({ cacheDirName: 'gulp-cache' })`
- Create your own with `new cache.Cache({ cacheDirName: 'custom-cache' })`
#### `name`
> [Optional] The name of the bucket which stores the cached objects
- Defaults to `default`
#### `key`
> [Optional] What to use to determine the uniqueness of an input file for this task.
- Can return a string or a promise that resolves to a string. Optionally, can accept a callback parameter for idiomatic node style asynchronous operations.
- The result of this method is converted to a unique MD5 hash automatically; no need to do this yourself.
- Defaults to `file.contents` if a Buffer, or `undefined` if a Stream.
#### `success`
> [Optional] How to determine if the resulting file was successful.
- Must return a truthy value that is used to determine whether to cache the result of the task.
- Defaults to true, so any task results will be cached.
#### `value`
> [Optional] What to store as the cached result of the task.
- Can be a function that returns an Object or a promise that resolves to an Object. Optionally, can accept a callback for idiomatic node style asynchronous operations.
- Can also be set to a string that will be picked (using `_.pick`) of the task result file.
- The result of this method is run through `JSON.stringify` and stored in a temp file for later retrieval.
- Defaults to `'contents'` which will grab the resulting file.contents and store them as a string.
## License
[The MIT License (MIT)](./LICENSE)
Copyright (c) 2014 - 2015 [Jacob Gable](http://jacobgable.com)