29 lines
755 B
JavaScript
29 lines
755 B
JavaScript
const { useDocument } = require('@terrace-lang/js/document')
|
|
const { createFileReader } = require('@terrace-lang/js/readers/node-readline')
|
|
const fs = require('fs/promises')
|
|
const path = require('path')
|
|
const knownNodes = require('./index.js')
|
|
|
|
module.exports = async function (originalDoc, rootLevel, ...args) {
|
|
const includedDoc = useDocument(createFileReader(originalDoc.tail()))
|
|
const { next, head, tail, level } = includedDoc
|
|
|
|
const node = {
|
|
type: originalDoc.head(),
|
|
class: '',
|
|
children: []
|
|
}
|
|
|
|
while (await next()) {
|
|
if (!head()) continue
|
|
const block = head()
|
|
|
|
if (!knownNodes[block]) continue
|
|
node.children.push(await knownNodes[block](includedDoc, level(), ...args))
|
|
}
|
|
|
|
console.dir(node)
|
|
|
|
return node
|
|
}
|