workarond for estree-walker related typings conflict

pull/2838/head
Bogdan Savluk 6 years ago
parent 24abeb1d28
commit a996718236

@ -1,4 +1,5 @@
import MagicString, { Bundle } from 'magic-string'; import MagicString, { Bundle } from 'magic-string';
// @ts-ignore
import { walk, childKeys } from 'estree-walker'; import { walk, childKeys } from 'estree-walker';
import { getLocator } from 'locate-character'; import { getLocator } from 'locate-character';
import Stats from '../Stats'; import Stats from '../Stats';
@ -21,6 +22,7 @@ import { remove_indentation, add_indentation } from '../utils/indentation';
import get_object from './utils/get_object'; import get_object from './utils/get_object';
import unwrap_parens from './utils/unwrap_parens'; import unwrap_parens from './utils/unwrap_parens';
import Slot from './nodes/Slot'; import Slot from './nodes/Slot';
import { Node as ESTreeNode } from 'estree';
type ComponentOptions = { type ComponentOptions = {
namespace?: string; namespace?: string;
@ -758,7 +760,7 @@ export default class Component {
}); });
} }
if (is_reference(node, parent)) { if (is_reference(node as ESTreeNode, parent as ESTreeNode)) {
const object = get_object(node); const object = get_object(node);
const { name } = object; const { name } = object;
@ -1022,7 +1024,7 @@ export default class Component {
scope = map.get(node); scope = map.get(node);
} }
if (is_reference(node, parent)) { if (is_reference(node as ESTreeNode, parent as ESTreeNode)) {
const { name } = flatten_reference(node); const { name } = flatten_reference(node);
const owner = scope.find_owner(name); const owner = scope.find_owner(name);
@ -1113,7 +1115,7 @@ export default class Component {
} else if (node.type === 'UpdateExpression') { } else if (node.type === 'UpdateExpression') {
const identifier = get_object(node.argument); const identifier = get_object(node.argument);
assignees.add(identifier.name); assignees.add(identifier.name);
} else if (is_reference(node, parent)) { } else if (is_reference(node as ESTreeNode, parent as ESTreeNode)) {
const identifier = get_object(node); const identifier = get_object(node);
if (!assignee_nodes.has(identifier)) { if (!assignee_nodes.has(identifier)) {
const { name } = identifier; const { name } = identifier;

@ -1,6 +1,7 @@
import { walk } from 'estree-walker'; import { walk } from 'estree-walker';
import is_reference from 'is-reference'; import is_reference from 'is-reference';
import { Node } from '../../interfaces'; import { Node } from '../../interfaces';
import { Node as ESTreeNode } from 'estree';
export function create_scopes(expression: Node) { export function create_scopes(expression: Node) {
const map = new WeakMap(); const map = new WeakMap();
@ -38,7 +39,7 @@ export function create_scopes(expression: Node) {
map.set(node, scope); map.set(node, scope);
} else if (/(Class|Variable)Declaration/.test(node.type)) { } else if (/(Class|Variable)Declaration/.test(node.type)) {
scope.add_declaration(node); scope.add_declaration(node);
} else if (node.type === 'Identifier' && is_reference(node, parent)) { } else if (node.type === 'Identifier' && is_reference(node as ESTreeNode, parent as ESTreeNode)) {
if (!scope.has(node.name) && !globals.has(node.name)) { if (!scope.has(node.name) && !globals.has(node.name)) {
globals.set(node.name, node); globals.set(node.name, node);
} }

Loading…
Cancel
Save