UNPKG

babel-plugin-ember-template-compilation

Version:
21 lines 2.93 kB
export function astNodeHasBinding(target, name) { let cursor = target; while (cursor) { let parentNode = cursor.parent?.node; if (parentNode?.type === 'ElementNode' && parentNode.blockParams.includes(name) && // an ElementNode's block params are valid only within its children parentNode.children.includes(cursor.node)) { return true; } if (parentNode?.type === 'Block' && parentNode.blockParams.includes(name) && // a Block's blockParams are valid only within its body parentNode.body.includes(cursor.node)) { return true; } cursor = cursor.parent; } return false; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJzLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hicy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBOEIsRUFBRSxJQUFZO0lBQzVFLElBQUksTUFBTSxHQUFrQyxNQUFNLENBQUM7SUFDbkQsT0FBTyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ3JDLElBQ0UsVUFBVSxFQUFFLElBQUksS0FBSyxhQUFhO1lBQ2xDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNyQyxtRUFBbUU7WUFDbkUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQXVCLENBQUMsRUFDNUQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQ0UsVUFBVSxFQUFFLElBQUksS0FBSyxPQUFPO1lBQzVCLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNyQyx1REFBdUQ7WUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQXVCLENBQUMsRUFDeEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVHYxLCBXYWxrZXJQYXRoIH0gZnJvbSAnQGdsaW1tZXIvc3ludGF4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzdE5vZGVIYXNCaW5kaW5nKHRhcmdldDogV2Fsa2VyUGF0aDxBU1R2MS5Ob2RlPiwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCBjdXJzb3I6IFdhbGtlclBhdGg8QVNUdjEuTm9kZT4gfCBudWxsID0gdGFyZ2V0O1xuICB3aGlsZSAoY3Vyc29yKSB7XG4gICAgbGV0IHBhcmVudE5vZGUgPSBjdXJzb3IucGFyZW50Py5ub2RlO1xuICAgIGlmIChcbiAgICAgIHBhcmVudE5vZGU/LnR5cGUgPT09ICdFbGVtZW50Tm9kZScgJiZcbiAgICAgIHBhcmVudE5vZGUuYmxvY2tQYXJhbXMuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgIC8vIGFuIEVsZW1lbnROb2RlJ3MgYmxvY2sgcGFyYW1zIGFyZSB2YWxpZCBvbmx5IHdpdGhpbiBpdHMgY2hpbGRyZW5cbiAgICAgIHBhcmVudE5vZGUuY2hpbGRyZW4uaW5jbHVkZXMoY3Vyc29yLm5vZGUgYXMgQVNUdjEuU3RhdGVtZW50KVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcGFyZW50Tm9kZT8udHlwZSA9PT0gJ0Jsb2NrJyAmJlxuICAgICAgcGFyZW50Tm9kZS5ibG9ja1BhcmFtcy5pbmNsdWRlcyhuYW1lKSAmJlxuICAgICAgLy8gYSBCbG9jaydzIGJsb2NrUGFyYW1zIGFyZSB2YWxpZCBvbmx5IHdpdGhpbiBpdHMgYm9keVxuICAgICAgcGFyZW50Tm9kZS5ib2R5LmluY2x1ZGVzKGN1cnNvci5ub2RlIGFzIEFTVHYxLlN0YXRlbWVudClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGN1cnNvciA9IGN1cnNvci5wYXJlbnQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19