import { createLineData, parseLine, useDocument } from '@terrace/js' import { createStdinReader } from '@terrace/js/readers/node-readline' const testName = process.argv[2] const tests = { 'linedata:basic': async () => { const lineData = createLineData('') const next = createStdinReader() while ((lineData.line = await next()) != null) { parseLine(lineData) const { level, indent, offsetHead, offsetTail, line } = lineData console.log(`| level ${level} | indent ${indent} | offsetHead ${offsetHead} | offsetTail ${offsetTail} | line ${line} |`) } }, 'linedata:tabs': async () => { const lineData = createLineData('', '\t') const next = createStdinReader() while ((lineData.line = await next()) != null) { parseLine(lineData) const { level, indent, offsetHead, offsetTail, line } = lineData console.log(`| level ${level} | indent ${indent} | offsetHead ${offsetHead} | offsetTail ${offsetTail} | line ${line} |`) } }, 'linedata:head-tail': async () => { const lineData = createLineData('') const next = createStdinReader() while ((lineData.line = await next()) != null) { parseLine(lineData) const { level, indent, offsetHead, offsetTail, line } = lineData const head = line.slice(offsetHead, offsetTail) const tail = line.slice(offsetTail + 1) console.log(`| head ${head} | tail ${tail} |`) } } } const test = tests[testName] await test()