Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var falafel = require('falafel');
- function safeReference(ex) {
- var nodes = {
- members: [],
- objects: [],
- declarator: ""
- };
- falafel(ex, function(node) {
- if (node.type == "VariableDeclaration") {
- nodes.declarator = node.source()
- }
- if (node.type === "MemberExpression") {
- nodes.objects.push(node.object.source());
- nodes.members.push("(" + node.source() + ")")
- }
- });
- nodes.members.unshift(nodes.objects[0]);
- var splitedDeclarator = nodes.declarator.split(' = ');
- splitedDeclarator[1] = nodes.members.join(' && ');
- nodes.declarator = splitedDeclarator.join(' = ') + ';';
- return nodes.declarator;
- }
- var src = 'var x = a.b.c.d;';
- console.log(safeReference(src));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement