Constraint setup + Horizontal & Vertical implementation (#33)

* start of horizontal/vert constraint

* horz vert constraint working with variable

* quick fix

* add tests for horz constraint

* clean up
This commit is contained in:
Kurt Hutten
2023-02-21 10:50:45 +11:00
committed by GitHub
parent ea05f804cc
commit 4ec0401118
12 changed files with 1138 additions and 129 deletions

View File

@ -1493,15 +1493,28 @@ export function getNodeFromPath<T>(
}
}
type Path = (string | number)[]
export function getNodeFromPathCurry(
node: Program,
path: (string | number)[]
): <T>(
stopAt: string,
returnEarly?: boolean
) => {
node: T
path: PathToNode
} {
return <T>(stopAt: string = '', returnEarly = false) => {
return getNodeFromPath<T>(node, path, stopAt, returnEarly)
}
}
export function getNodePathFromSourceRange(
node: Program,
sourceRange: [number, number],
previousPath: Path = []
): Path {
previousPath: PathToNode = []
): PathToNode {
const [start, end] = sourceRange
let path: Path = [...previousPath, 'body']
let path: PathToNode = [...previousPath, 'body']
const _node = { ...node }
// loop over each statement in body getting the index with a for loop
for (