* Add ID generator to ExecState
* Change default plane IDs to be hardcoded
* Fix lint warning
* Add exposing ID generator as output of executor
* Change to use generated definition of ExecState in TS
* Fix IdGenerator to use camel case in TS
* Fix TS type errors
* Add exposing id_generator parameter
* Add using the previously generated ID generator
* wip: Add display of feature tree in debug pane
* Remove artifact graph augmentation
* Change default planes to use id generator instead of hardcoded UUIDs
* Fix to reuse previously generated IDs
* Add e2e test
* Change feature tree to be collapsed by default
* Remove debug prints
* Fix unit test to use execState
* Fix type to be more general
* Remove outdated comment
* Update derive-docs output
* Fix object display component to be more general
* Remove unused ArtifactId type
* Fix test to be less brittle
* Remove codeRef and pathToNode from display
* Fix to remove test.only
Co-authored-by: Frank Noirot <frank@zoo.dev>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Move plane conversion code to be next to type
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)"
This reverts commit 3455cc951b
.
* Rename file
* Rename components and add doc comments
* Revive the collapse button
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { useMemo } from 'react'
|
|
import { engineCommandManager } from 'lib/singletons'
|
|
import {
|
|
ArtifactGraph,
|
|
expandPlane,
|
|
PlaneArtifactRich,
|
|
} from 'lang/std/artifactGraph'
|
|
import { DebugDisplayArray, GenericObj } from './DebugDisplayObj'
|
|
|
|
export function DebugFeatureTree() {
|
|
const featureTree = useMemo(() => {
|
|
return computeTree(engineCommandManager.artifactGraph)
|
|
}, [engineCommandManager.artifactGraph])
|
|
|
|
const filterKeys: string[] = ['__meta', 'codeRef', 'pathToNode']
|
|
return (
|
|
<details data-testid="debug-feature-tree" className="relative">
|
|
<summary>Feature Tree</summary>
|
|
{featureTree.length > 0 ? (
|
|
<pre className="text-xs">
|
|
<DebugDisplayArray arr={featureTree} filterKeys={filterKeys} />
|
|
</pre>
|
|
) : (
|
|
<p>(Empty)</p>
|
|
)}
|
|
</details>
|
|
)
|
|
}
|
|
|
|
function computeTree(artifactGraph: ArtifactGraph): GenericObj[] {
|
|
let items: GenericObj[] = []
|
|
|
|
const planes: PlaneArtifactRich[] = []
|
|
for (const artifact of artifactGraph.values()) {
|
|
if (artifact.type === 'plane') {
|
|
planes.push(expandPlane(artifact, artifactGraph))
|
|
}
|
|
}
|
|
const extraRichPlanes: GenericObj[] = planes.map((plane) => {
|
|
return plane as any as GenericObj
|
|
})
|
|
items = items.concat(extraRichPlanes)
|
|
|
|
return items
|
|
}
|