Socket
Socket
Sign inDemoInstall

babel-plugin-espower

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-espower - npm Package Compare versions

Comparing version 0.4.1 to 1.0.0

54

CHANGELOG.md

@@ -0,1 +1,10 @@

## [1.0.0](https://github.com/power-assert-js/babel-plugin-espower/releases/tag/v1.0.0) (2015-05-25)
#### Features
* use `process.cwd()` for `sourceRoot` option value ([71016432](https://github.com/power-assert-js/babel-plugin-espower/commit/71016432565568e2b7325b11cf07ae90d029c45b))
* update espower to 1.0.0 ([337cdfd2](https://github.com/power-assert-js/babel-plugin-espower/commit/337cdfd26a2868addd1aabdd7787733a79eab11a))
### [0.4.1](https://github.com/power-assert-js/babel-plugin-espower/releases/tag/v0.4.1) (2015-05-21)

@@ -22,2 +31,47 @@

#### Breaking Changes
* function returned by `babel-plugin-espower/create` takes babel instance as a first argument.
If you are customizing babel-plugin-espower using `babel-plugin-espower/create`, you may have to migrate.
To migrate, change your code from the following:
```
var babel = require('babel-core');
var createEspowerPlugin = require('babel-plugin-espower/create');
var transformed = babel.transform(jsCode, {
plugins: [
createEspowerPlugin({
patterns: [
'assert.isNull(object, [message])',
'assert.same(actual, expected, [message])',
'assert.near(actual, expected, delta, [message])'
]
})
]
});
```
To:
```
var babel = require('babel-core');
var createEspowerPlugin = require('babel-plugin-espower/create');
var transformed = babel.transform(jsCode, {
plugins: [
createEspowerPlugin(babel, {
patterns: [
'assert.isNull(object, [message])',
'assert.same(actual, expected, [message])',
'assert.near(actual, expected, delta, [message])'
]
})
]
});
```
([39eb684b](https://github.com/power-assert-js/babel-plugin-espower/commit/39eb684b733729a0b0d6752bd52a008c5b08159b))
### [0.3.1](https://github.com/power-assert-js/babel-plugin-espower/releases/tag/v0.3.1) (2015-05-18)

@@ -24,0 +78,0 @@

7

lib/babel-estree-path.js
'use strict';
var find = require('array-find');
module.exports = function (babel) {

@@ -10,7 +12,6 @@ var types = babel.types;

var parentNode = traversalPath.parent;
var candidateKeys = types.VISITOR_KEYS[parentNode.type].filter(function (key) {
var currentTraversingKey = find(types.VISITOR_KEYS[parentNode.type], function (key) {
return parentNode[key] === traversalPath.container; // searching for current key in parentNode
});
if (candidateKeys.length === 1) {
var currentTraversingKey = candidateKeys[0]; // ex. 'arguments' in CallExpression
if (currentTraversingKey) { // ex. 'arguments' in CallExpression
ancestors.push(currentTraversingKey);

@@ -17,0 +18,0 @@ }

@@ -6,7 +6,8 @@ 'use strict';

var extend = require('xtend');
var find = require('array-find');
function enterTraversalPath (traversalPath, currentNode, parentNode, scope, file, matchers, esTreePath) {
function enterTraversalPath (traversalPath, currentNode, parentNode, scope, file, matchers, esTreePath, options) {
var treePath;
var currentKey = traversalPath.key;
var assertionVisitor = traversalPath.state.data['espowerAssertionVisitor'];
var assertionVisitor = file.get('espowerAssertionVisitor');
if (assertionVisitor) {

@@ -25,13 +26,13 @@ if (assertionVisitor.toBeSkipped(currentNode, parentNode, currentKey)) {

} else if (currentNode.type === 'CallExpression') {
var candidates = matchers.filter(function (matcher) { return matcher.test(currentNode); });
if (candidates.length === 1) {
var matcher = find(matchers, function (m) { return m.test(currentNode); });
if (matcher) {
// entering assertion
var espowerOptions = {
var espowerOptions = extend(espower.defaultOptions(), {
path: file.opts.filename, // or opts.sourceFileName?
sourceMap: file.opts.inputSourceMap
};
}, options);
treePath = esTreePath(traversalPath);
assertionVisitor = new espower.AssertionVisitor(candidates[0], treePath, espowerOptions);
assertionVisitor = new espower.AssertionVisitor(matcher, treePath, espowerOptions);
assertionVisitor.enter(currentNode, parentNode);
traversalPath.state.data['espowerAssertionVisitor'] = assertionVisitor;
file.set('espowerAssertionVisitor', assertionVisitor);
}

@@ -41,7 +42,7 @@ }

function exitTraversalPath (traversalPath, currentNode, parentNode, scope, file, esTreePath) {
function exitTraversalPath (traversalPath, currentNode, parentNode, scope, file, esTreePath, options) {
var currentKey = traversalPath.key;
var resultTree = currentNode;
var isTreeModified = false;
var assertionVisitor = traversalPath.state.data['espowerAssertionVisitor'];
var assertionVisitor = file.get('espowerAssertionVisitor');
if (!assertionVisitor) {

@@ -54,3 +55,3 @@ return;

assertionVisitor.leave(currentNode, parentNode);
delete traversalPath.state.data['espowerAssertionVisitor'];
delete file.data.espowerAssertionVisitor;
return;

@@ -83,3 +84,6 @@ }

var esTreePath = require('./babel-estree-path')(babel);
var opts = extend(espower.defaultOptions(), { visitorKeys: babel.types.VISITOR_KEYS }, options);
var opts = extend(espower.defaultOptions(), {
visitorKeys: babel.types.VISITOR_KEYS,
sourceRoot: process.cwd()
}, options);
var matchers = opts.patterns.map(function (pattern) { return escallmatch(pattern, opts); });

@@ -89,6 +93,6 @@ return Object.keys(babel.types.VISITOR_KEYS).reduce(function (handlers, nodeType) {

enter: function (currentNode, parentNode, scope, file) {
enterTraversalPath(this, currentNode, parentNode, scope, file, matchers, esTreePath);
enterTraversalPath(this, currentNode, parentNode, scope, file, matchers, esTreePath, opts);
},
exit: function (currentNode, parentNode, scope, file) {
exitTraversalPath(this, currentNode, parentNode, scope, file, esTreePath);
exitTraversalPath(this, currentNode, parentNode, scope, file, esTreePath, opts);
}

@@ -95,0 +99,0 @@ };

{
"name": "babel-plugin-espower",
"description": "Babel plugin for power-assert",
"version": "0.4.1",
"version": "1.0.0",
"author": {

@@ -12,4 +12,5 @@ "name": "Takuto Wada",

"dependencies": {
"escallmatch": "^1.4.0",
"espower": "^0.11.0",
"array-find": "^1.0.0",
"escallmatch": "^1.4.1",
"espower": "^1.0.0",
"xtend": "^4.0.0"

@@ -19,3 +20,2 @@ },

"babel": "^5.2.0",
"espurify": "^1.2.0",
"mocha": "^2.2.4"

@@ -46,6 +46,3 @@ },

],
"license": {
"type": "MIT",
"url": "http://twada.mit-license.org/"
},
"license": "MIT",
"main": "index.js",

@@ -52,0 +49,0 @@ "repository": {

@@ -38,3 +38,3 @@ babel-plugin-espower

Please note that `babel-plugin-espower` is a beta version product. Pull-requests, issue reports and patches are always welcomed. See [power-assert](http://github.com/power-assert-js/power-assert) project for more documentation.
Pull-requests, issue reports and patches are always welcomed. See [power-assert](http://github.com/power-assert-js/power-assert) project for more documentation.

@@ -57,3 +57,3 @@

```
$ ./node_modules/.bin/babel --plugins babel-plugin-espower /path/to/test/some_test.js > /path/to/build/some_test.js
$ $(npm bin)/babel --plugins babel-plugin-espower /path/to/test/some_test.js > /path/to/build/some_test.js
```

@@ -64,3 +64,3 @@

```
$ ./node_modules/.bin/babel --plugins espower /path/to/test/some_test.js > /path/to/build/some_test.js
$ $(npm bin)/babel --plugins espower /path/to/test/some_test.js > /path/to/build/some_test.js
```

@@ -94,3 +94,3 @@

```
$ ./node_modules/.bin/mocha --require ./babel_hook /path/to/test/demo_test.js
$ $(npm bin)/mocha --require ./babel_hook /path/to/test/demo_test.js
```

@@ -134,3 +134,3 @@

```
$ ./node_modules/.bin/babel --plugins espower /path/to/test/demo_test.js > /path/to/build/demo_test.js
$ $(npm bin)/babel --plugins espower /path/to/test/demo_test.js > /path/to/build/demo_test.js
```

@@ -141,3 +141,3 @@

```
$ ./node_modules/.bin/mocha /path/to/build/demo_test.js
$ $(npm bin)/mocha /path/to/build/demo_test.js

@@ -207,2 +207,4 @@ ES6 demo

### var plugin = createEspowerPlugin(babel, [options])
You can customize assertion patterns via [Babel API](http://babeljs.io/docs/usage/api/),

@@ -216,3 +218,3 @@

plugins: [
createEspowerPlugin({
createEspowerPlugin(babel, {
patterns: [

@@ -236,3 +238,3 @@ 'assert.isNull(object, [message])',

plugins: [
createEspowerPlugin({
createEspowerPlugin(babel, {
patterns: [

@@ -249,3 +251,11 @@ 'assert.isNull(object, [message])',

#### options
| type | default value |
|:---------|:--------------|
| `object` | (return value of `espower.defaultOptions()` with default `visitorKeys`, `path`, `sourceRoot` and `sourceMap`) |
Configuration options for internal `espower` module. If not passed, default options will be used (return value of `espower.defaultOptions()` with default `visitorKeys`, `path`, `sourceRoot` and `sourceMap`. `visitorKeys` is value of `babel.types.VISITOR_KEYS`. `path` is filename passed to babel. `sourceRoot` is be return value of `process.cwd()`, `sourceMap` is babel's internal SourceMap object).
CHANGELOG

@@ -252,0 +262,0 @@ ---------------------------------------

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc