hoister

Put all function and variable declarations at the top of the scope in an AST

hoister

Put all function and variable declarations at the top of the scope in an AST

var parse = require('esprima').parse
var generate = require('escodegen').generate
var hoist = require('hoist')
 
var src = 'a = func(123); var a = "test"; function func(x){return x}'
var ast = parse(src)
hoist(ast)
 
console.log(generate(ast))

Console result:

function func(x) {
  return x;
}
var a;
= func(123);
var a = 'test';