1 | export default function flatten ( node ) {
|
2 | let parts = [];
|
3 | while ( node.type === 'MemberExpression' ) {
|
4 | if ( node.computed ) return null;
|
5 | parts.unshift( node.property.name );
|
6 |
|
7 | node = node.object;
|
8 | }
|
9 |
|
10 | if ( node.type !== 'Identifier' ) return null;
|
11 |
|
12 | const name = node.name;
|
13 | parts.unshift( name );
|
14 |
|
15 | return { name, keypath: parts.join( '.' ) };
|
16 | }
|