UNPKG

ace-mode-move

Version:

Syntax highlighting for Libra's Move language (https://developers.libra.org/docs/move-paper), for Ace ( https://ace.c9.io/ )

28 lines (25 loc) 666 B
const recast = require('recast'); const AstTraversal = require('./astTraversal.js'); function parseRequires(code) { let requires = []; let ast = recast.parse(code); let traversal = new AstTraversal(ast); traversal.on("CallExpression", (node, stack, ast) => { if ( ('Identifier' == node.callee.type) && ('require' == node.callee.name) && (1 === node.arguments.length) && ('Literal' === node.arguments[0].type) && ('string' === typeof node.arguments[0].value) ) { requires.push(node.arguments[0].value); } }); traversal.start(); return requires; } module.exports = parseRequires;