12345678910111213141516171819202122232425262728293031 |
- /**
- * escallmatch:
- * ECMAScript CallExpression matcher made from function/method signature
- *
- * https://github.com/twada/escallmatch
- *
- * Copyright (c) 2014-2016 Takuto Wada
- * Licensed under the MIT license.
- * https://github.com/twada/escallmatch/blob/master/LICENSE
- */
- 'use strict';
- /* jshint -W024 */
- var esprima = require('esprima');
- var CallMatcher = require('call-matcher');
- var notCallExprMessage = 'Argument should be in the form of CallExpression';
- function createMatcher (signatureStr, options) {
- var ast = extractExpressionFrom(esprima.parse(signatureStr));
- return new CallMatcher(ast, options || {});
- }
- function extractExpressionFrom (tree) {
- var statement = tree.body[0];
- if (statement.type !== 'ExpressionStatement') {
- throw new Error(notCallExprMessage);
- }
- return statement.expression;
- }
- module.exports = createMatcher;
|