echo-fecs
Version:
Front End Code Style Suite
44 lines (31 loc) • 940 B
JavaScript
/**
* @file Rule to check async require.
* @author chris<wfsr.foxmail.com>
*/
;
var util = require('../../util');
module.exports = {
meta: {
schema: []
},
create: function (context) {
var isArray = util.isArrayNode(context);
function validate(node) {
if (node.callee.type !== 'Identifier' || node.callee.name !== 'require') {
return;
}
var noRequire = context.getScope().through.some(function (variable) {
return variable.identifier.name === 'require';
});
if (!noRequire) {
return;
}
if (node.arguments.length !== 2 || !isArray(node.arguments[0])) {
context.report(node.arguments[0], 'Global require should be called as async.');
}
}
return {
CallExpression: validate
};
}
};