eslint-plugin-nebulas
Version:
smart contract lint rules
39 lines (34 loc) • 883 B
JavaScript
/**
* @fileoverview Ensure an export is present.
* @author newraina
*/
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
module.exports = {
meta: {
docs: {
description: 'Ensure an export is present.',
},
messages: {
needExport: 'need module.exports to expose smart contract object'
}
},
create(context) {
const exportNodeList = []
return {
MemberExpression(node) {
// module.exports
if (node.object.name === 'module' && node.property.name === 'exports') {
exportNodeList.push(node)
}
},
'Program:exit'(node) {
if (!exportNodeList.length) {
context.report({ node, messageId: 'needExport' })
}
}
}
}
}