1- import { Node , Parent } from "unist"
21import { highlight } from "../highlighter"
32import { extractLinks } from "./links"
43import {
@@ -16,15 +15,16 @@ import {
1615 extractJSXAnnotations ,
1716} from "./annotations"
1817import { mergeFocus } from "../utils"
18+ import { CodeNode , SuperNode } from "./nodes"
1919
2020export async function transformCodeNodes (
21- tree : Node ,
21+ tree : SuperNode ,
2222 { theme } : { theme : any }
2323) {
2424 await visitAsync (
2525 tree ,
2626 "code" ,
27- async ( node , index , parent ) => {
27+ async ( node : CodeNode , index , parent ) => {
2828 await transformCode (
2929 { node, index, parent : parent ! } ,
3030 { theme }
@@ -33,7 +33,7 @@ export async function transformCodeNodes(
3333 )
3434}
3535
36- export function isEditorNode ( node : Node ) {
36+ export function isEditorNode ( node : SuperNode ) {
3737 return (
3838 node . type === "code" ||
3939 ( node . type === "mdxJsxFlowElement" &&
@@ -42,7 +42,7 @@ export function isEditorNode(node: Node) {
4242}
4343
4444async function transformCode (
45- nodeInfo : NodeInfo ,
45+ nodeInfo : NodeInfo < CodeNode > ,
4646 config : { theme : any }
4747) {
4848 toJSX ( nodeInfo . node , {
@@ -66,14 +66,14 @@ export async function mapAnyCodeNode(
6666) {
6767 const { node } = nodeInfo
6868 if ( node . type === "code" ) {
69- return mapCode ( nodeInfo , config )
69+ return mapCode ( nodeInfo as NodeInfo < CodeNode > , config )
7070 } else {
7171 return mapEditor ( nodeInfo , config )
7272 }
7373}
7474
7575async function mapCode (
76- nodeInfo : NodeInfo ,
76+ nodeInfo : NodeInfo < CodeNode > ,
7777 config : { theme : any }
7878) : Promise < EditorProps > {
7979 const file = await mapFile ( nodeInfo , config )
@@ -94,19 +94,23 @@ export async function mapEditor(
9494 config : { theme : any }
9595) : Promise < EditorProps > {
9696 const [ northNodes , southNodes = [ ] ] = splitChildren (
97- node as Parent ,
97+ node ,
9898 "thematicBreak"
9999 )
100100
101101 const northFiles = await Promise . all (
102102 northNodes
103103 . filter ( ( { node } ) => node . type === "code" )
104- . map ( nodeInfo => mapFile ( nodeInfo , config ) )
104+ . map ( ( nodeInfo : NodeInfo < CodeNode > ) =>
105+ mapFile ( nodeInfo , config )
106+ )
105107 )
106108 const southFiles = await Promise . all (
107109 southNodes
108110 . filter ( ( { node } ) => node . type === "code" )
109- . map ( nodeInfo => mapFile ( nodeInfo , config ) )
111+ . map ( ( nodeInfo : NodeInfo < CodeNode > ) =>
112+ mapFile ( nodeInfo , config )
113+ )
110114 )
111115 const allFiles = [ ...northFiles , ...southFiles ]
112116 const northActive =
@@ -141,7 +145,7 @@ export async function mapEditor(
141145}
142146
143147async function mapFile (
144- { node, index, parent } : NodeInfo ,
148+ { node, index, parent } : NodeInfo < CodeNode > ,
145149 config : { theme : any }
146150) : Promise < CodeStep & FileOptions & { name : string } > {
147151 const { theme } = config
0 commit comments