69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
![]() |
gulp-json-transform
|
||
|
===================
|
||
|
[](https://www.npmjs.com/package/gulp-json-transform)
|
||
|
[](https://travis-ci.org/thaggie/gulp-json-transform)
|
||
|
[](https://david-dm.org/thaggie/gulp-json-transform)
|
||
|
|
||
|
|
||
|
A [gulp](https://github.com/gulpjs/gulp) plugin to transform JSON files, pipe JSON files through it and transform them to other JSON files or other text based formats.
|
||
|
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
|
||
|
First install `gulp-json-transform` as a development dependency:
|
||
|
|
||
|
```shell
|
||
|
npm install gulp-json-transform --save-dev
|
||
|
```
|
||
|
|
||
|
Then, add it to your gulpfile.js:
|
||
|
|
||
|
```javascript
|
||
|
var jsonTransform = require('gulp-json-transform');
|
||
|
```
|
||
|
|
||
|
Then create a task that uses it:
|
||
|
|
||
|
```javascript
|
||
|
gulp.task('do-something', function() {
|
||
|
gulp.src('./app/**/*.json')
|
||
|
.pipe(jsonTransform(function(data, file) {
|
||
|
return {
|
||
|
foobar: data.foo + file.relative
|
||
|
};
|
||
|
}))
|
||
|
.pipe(gulp.dest('./dist/out/'));
|
||
|
});
|
||
|
```
|
||
|
|
||
|
## API
|
||
|
|
||
|
### jsonTransform(transformFn [, whiteSpace])
|
||
|
|
||
|
#### transformFn
|
||
|
Type: `function`
|
||
|
|
||
|
A function that takes the JSON object and a file object (parameters path, base and relative are exposed) as the input parameters and should return either a string which is written raw to the file, a JSON object which is stringified or a Promise which resolves to a string or a JSON object.
|
||
|
|
||
|
Example structure of the file object:
|
||
|
```
|
||
|
{
|
||
|
path: 'test/fixtures/input.json',
|
||
|
relative: 'input.json',
|
||
|
base: 'test/fixtures'
|
||
|
}
|
||
|
```
|
||
|
|
||
|
#### whiteSpace
|
||
|
|
||
|
Type: `String` or `Number`
|
||
|
Default: `undefined`
|
||
|
|
||
|
JSON.stringify's whitespace attribute for pretty-printing the resulting JSON.
|
||
|
See [MDN docs on JSON.stringify()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) for more information.
|
||
|
|
||
|
## License
|
||
|
|
||
|
[MIT License](http://en.wikipedia.org/wiki/MIT_License)
|