DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
919 Bytes
/**
* @param {import('estree').Node} node
*/
export default function flatten_reference(node) {
/** @type {any[]} */
const nodes = [];
/** @type {string[]} */
const parts = [];
while (node.type === 'MemberExpression') {
nodes.unshift(node.property);
if (!node.computed) {
parts.unshift(/** @type {import('estree').Identifier} */ (node.property).name);
} else {
const computed_property = to_string(node.property);
if (computed_property) {
parts.unshift(`[${computed_property}]`);
}
}
node = node.object;
}
const name =
node.type === 'Identifier' ? node.name : node.type === 'ThisExpression' ? 'this' : null;
nodes.unshift(node);
parts.unshift(name);
return { name, nodes, parts };
}
/**
* @param {import('estree').Node} node
*/
function to_string(node) {
switch (node.type) {
case 'Literal':
return String(node.value);
case 'Identifier':
return node.name;
}
}