1 | # gulp-espower
|
2 |
|
3 | [![NPM version][npm-image]][npm-url]
|
4 | [![Build Status][travis-image]][travis-url]
|
5 | [![Dependency Status][depstat-image]][depstat-url]
|
6 |
|
7 | > A [gulp](https://github.com/wearefractal/gulp) plugin for [power-assert](http://github.com/power-assert-js/power-assert).
|
8 |
|
9 | ## Description
|
10 |
|
11 | `gulp-espower` is a gulp plugin to instrument "Power Assert" feature into your code.
|
12 |
|
13 |
|
14 | Internally, `gulp-espower` task uses `espower` module that manipulates assertion expression (JavaScript Code) defined in [The ESTree Spec](https://github.com/estree/estree) (formerly known as [Mozilla SpiderMonkey Parser API](https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API)), to instrument power-assert feature into the code. The magic is done by using [Esprima](http://esprima.org/) and [Escodegen](https://github.com/Constellation/escodegen).
|
15 |
|
16 |
|
17 | Pull-requests, issue reports and patches are always welcomed. See [power-assert](http://github.com/power-assert-js/power-assert) project for more documentation.
|
18 |
|
19 |
|
20 | ## Usage
|
21 |
|
22 | First, install `gulp-espower` as a development dependency:
|
23 |
|
24 | ```shell
|
25 | npm install --save-dev gulp-espower
|
26 | ```
|
27 |
|
28 | Then, add it to your `gulpfile.js`:
|
29 |
|
30 | ```javascript
|
31 | var espower = require('gulp-espower');
|
32 |
|
33 | gulp.src('./test/*.js')
|
34 | .pipe(espower())
|
35 | .pipe(gulp.dest('./dist'));
|
36 | ```
|
37 |
|
38 |
|
39 | ## Source maps
|
40 |
|
41 | gulp-espower can be used with [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps) to generate source maps for the instrumented javascript code. Note that you should `init` gulp-sourcemaps prior to running the gulp-espower and `write` the source maps after. gulp-espower works well with some gulp plugins that supports [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps).
|
42 |
|
43 | ```javascript
|
44 | var espower = require('gulp-espower');
|
45 | var coffee = require('gulp-coffee');
|
46 | var concat = require('gulp-concat');
|
47 | var sourcemaps = require('gulp-sourcemaps');
|
48 |
|
49 | // compile, instrument then concatinate
|
50 | gulp.src('./test/*test.coffee')
|
51 | .pipe(sourcemaps.init())
|
52 | .pipe(coffee())
|
53 | .pipe(espower())
|
54 | .pipe(concat('all_test.js'))
|
55 | .pipe(sourcemaps.write())
|
56 | .pipe(gulp.dest('./build'));
|
57 | // will write the source maps inline in the code
|
58 | ```
|
59 |
|
60 | For more information, see [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps).
|
61 |
|
62 |
|
63 | ## API
|
64 |
|
65 | ### espower(options)
|
66 |
|
67 | #### options.patterns
|
68 |
|
69 | | type | default value |
|
70 | |:--------------------|:--------------------|
|
71 | | `Array` of `string` | objects shown below |
|
72 |
|
73 | ```javascript
|
74 | [
|
75 | 'assert(value, [message])',
|
76 | 'assert.ok(value, [message])',
|
77 | 'assert.equal(actual, expected, [message])',
|
78 | 'assert.notEqual(actual, expected, [message])',
|
79 | 'assert.strictEqual(actual, expected, [message])',
|
80 | 'assert.notStrictEqual(actual, expected, [message])',
|
81 | 'assert.deepEqual(actual, expected, [message])',
|
82 | 'assert.notDeepEqual(actual, expected, [message])',
|
83 | 'assert.deepStrictEqual(actual, expected, [message])',
|
84 | 'assert.notDeepStrictEqual(actual, expected, [message])'
|
85 | ]
|
86 | ```
|
87 |
|
88 | Target patterns for power assert feature instrumentation.
|
89 |
|
90 | If callee name (for example, `assert.equal`) matches exactly and number of arguments is satisfied, then the assertion will be modified.
|
91 | Detection is done by [escallmatch](http://github.com/twada/escallmatch). Any arguments enclosed in bracket (for example, `[message]`) means optional parameters. Without bracket means mandatory parameters.
|
92 |
|
93 |
|
94 | ## CHANGELOG
|
95 |
|
96 | See [CHANGELOG](https://github.com/power-assert-js/gulp-espower/blob/master/CHANGELOG.md)
|
97 |
|
98 |
|
99 | ## AUTHOR
|
100 |
|
101 | * [Takuto Wada](http://github.com/twada)
|
102 |
|
103 |
|
104 | ## CONTRIBUTORS
|
105 |
|
106 | * [bouzuya](http://bouzuya.net)
|
107 |
|
108 |
|
109 | ## License
|
110 |
|
111 | Licensed under the [MIT](https://github.com/power-assert-js/gulp-espower/blob/master/LICENSE-MIT) license.
|
112 |
|
113 | [npm-url]: https://npmjs.org/package/gulp-espower
|
114 | [npm-image]: https://badge.fury.io/js/gulp-espower.svg
|
115 |
|
116 | [travis-url]: http://travis-ci.org/power-assert-js/gulp-espower
|
117 | [travis-image]: https://secure.travis-ci.org/power-assert-js/gulp-espower.svg?branch=master
|
118 |
|
119 | [depstat-url]: https://gemnasium.com/power-assert-js/gulp-espower
|
120 | [depstat-image]: https://gemnasium.com/power-assert-js/gulp-espower.svg
|