Fix flow types in traverse/path/family and enable flow (#9870)
This commit is contained in:
parent
4198d91b89
commit
bf17871b82
@ -1,3 +1,4 @@
|
||||
// @flow
|
||||
// This file contains methods responsible for dealing with/retrieving children or siblings.
|
||||
|
||||
import type TraversalContext from "../index";
|
||||
@ -17,7 +18,7 @@ function addCompletionRecords(path, paths) {
|
||||
return paths;
|
||||
}
|
||||
|
||||
export function getCompletionRecords(): Array {
|
||||
export function getCompletionRecords(): NodePath[] {
|
||||
let paths = [];
|
||||
|
||||
if (this.isIfStatement()) {
|
||||
@ -42,7 +43,7 @@ export function getCompletionRecords(): Array {
|
||||
return paths;
|
||||
}
|
||||
|
||||
export function getSibling(key): NodePath {
|
||||
export function getSibling(key: string): NodePath {
|
||||
return NodePath.get({
|
||||
parentPath: this.parentPath,
|
||||
parent: this.parent,
|
||||
@ -60,10 +61,10 @@ export function getNextSibling(): NodePath {
|
||||
return this.getSibling(this.key + 1);
|
||||
}
|
||||
|
||||
export function getAllNextSiblings(): Array<NodePath> {
|
||||
export function getAllNextSiblings(): NodePath[] {
|
||||
let _key = this.key;
|
||||
let sibling: NodePath = this.getSibling(++_key);
|
||||
const siblings: Array<NodePath> = [];
|
||||
let sibling = this.getSibling(++_key);
|
||||
const siblings = [];
|
||||
while (sibling.node) {
|
||||
siblings.push(sibling);
|
||||
sibling = this.getSibling(++_key);
|
||||
@ -71,10 +72,10 @@ export function getAllNextSiblings(): Array<NodePath> {
|
||||
return siblings;
|
||||
}
|
||||
|
||||
export function getAllPrevSiblings(): Array<NodePath> {
|
||||
export function getAllPrevSiblings(): NodePath[] {
|
||||
let _key = this.key;
|
||||
let sibling: NodePath = this.getSibling(--_key);
|
||||
const siblings: Array<NodePath> = [];
|
||||
let sibling = this.getSibling(--_key);
|
||||
const siblings = [];
|
||||
while (sibling.node) {
|
||||
siblings.push(sibling);
|
||||
sibling = this.getSibling(--_key);
|
||||
@ -85,7 +86,7 @@ export function getAllPrevSiblings(): Array<NodePath> {
|
||||
export function get(
|
||||
key: string,
|
||||
context?: boolean | TraversalContext,
|
||||
): NodePath {
|
||||
): NodePath | NodePath[] {
|
||||
if (context === true) context = this.context;
|
||||
const parts = key.split(".");
|
||||
if (parts.length === 1) {
|
||||
@ -97,7 +98,10 @@ export function get(
|
||||
}
|
||||
}
|
||||
|
||||
export function _getKey(key, context?) {
|
||||
export function _getKey(
|
||||
key: string,
|
||||
context?: TraversalContext,
|
||||
): NodePath | NodePath[] {
|
||||
const node = this.node;
|
||||
const container = node[key];
|
||||
|
||||
@ -122,9 +126,12 @@ export function _getKey(key, context?) {
|
||||
}
|
||||
}
|
||||
|
||||
export function _getPattern(parts, context) {
|
||||
export function _getPattern(
|
||||
parts: string[],
|
||||
context?: TraversalContext,
|
||||
): NodePath | NodePath[] {
|
||||
let path = this;
|
||||
for (const part of (parts: Array)) {
|
||||
for (const part of parts) {
|
||||
if (part === ".") {
|
||||
path = path.parentPath;
|
||||
} else {
|
||||
@ -138,11 +145,11 @@ export function _getPattern(parts, context) {
|
||||
return path;
|
||||
}
|
||||
|
||||
export function getBindingIdentifiers(duplicates?): Object {
|
||||
export function getBindingIdentifiers(duplicates?: boolean): Object {
|
||||
return t.getBindingIdentifiers(this.node, duplicates);
|
||||
}
|
||||
|
||||
export function getOuterBindingIdentifiers(duplicates?): Object {
|
||||
export function getOuterBindingIdentifiers(duplicates?: boolean): Object {
|
||||
return t.getOuterBindingIdentifiers(this.node, duplicates);
|
||||
}
|
||||
|
||||
@ -150,9 +157,9 @@ export function getOuterBindingIdentifiers(duplicates?): Object {
|
||||
// path.getBindingIdentifiers returns nodes where the following re-implementation
|
||||
// returns paths
|
||||
export function getBindingIdentifierPaths(
|
||||
duplicates = false,
|
||||
outerOnly = false,
|
||||
) {
|
||||
duplicates?: boolean = false,
|
||||
outerOnly?: boolean = false,
|
||||
): { [string]: NodePath } {
|
||||
const path = this;
|
||||
let search = [].concat(path);
|
||||
const ids = Object.create(null);
|
||||
@ -203,9 +210,12 @@ export function getBindingIdentifierPaths(
|
||||
}
|
||||
}
|
||||
|
||||
// $FlowIssue Object.create() is object type
|
||||
return ids;
|
||||
}
|
||||
|
||||
export function getOuterBindingIdentifierPaths(duplicates?) {
|
||||
export function getOuterBindingIdentifierPaths(
|
||||
duplicates?: boolean,
|
||||
): { [string]: NodePath } {
|
||||
return this.getBindingIdentifierPaths(duplicates, true);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user