109 lines
2.7 KiB
JavaScript

import { parse } from './core.js'
const linesFull = [
`title Example`,
`options`,
` parameter1 30`,
` parameter2 Enim eu id anim minim reprehenderit nostrud eu amet deserunt ea ut do cupidatat ea.`,
`options`,
` parameter1 0`,
` parameter2 Esse incididunt et est adipisicing eiusmod aliqua enim ea aliqua id enim.`,
` deep Enim fugiat do in est commodo culpa dolore.`,
`subsection`,
` position 1`,
` Ea dolore in aliquip fugiat anim adipisicing amet aute tempor et deserunt est duis sint.`,
`subsection 2`,
` position 2`,
` `,
` Aute deserunt incididunt ad in sint adipisicing est officia velit pariatur ipsum deserunt quis nulla.`,
` Ea dolore in aliquip fugiat anim adipisicing amet aute tempor et deserunt est duis sint.`,
`list`,
` - item 1`,
` - item 2`,
`collection`,
` section`,
` lorem ipsum 1`,
` section`,
` lorem ipsum 2`,
`collection2`,
` section`,
` position 3`,
` Laborum aute anim occaecat occaecat pariatur tempor proident magna sit magna non non.`,
` list`,
` 1`,
` 2`
]
const linesSchema = [
`name @terrace/core`,
`version 0.0.1`,
`randomthing test`,
`license MIT`,
`license GPL`,
`exports`,
` .`,
` import ./dist/index.js`,
` require ./dist/index.cjs`,
` ./parser`,
` import ./dist/parser.js`,
` require ./dist/parser.cjs`,
``,
` ./document`,
` import ./dist/document.js`,
` require ./dist/document.cjs`,
``,
` ./readers/node-readline`,
` import ./dist/readers/node-readline.js`,
` require ./dist/readers/node-readline.cjs`,
``,
` ./readers/js-string`,
` import ./dist/readers/js-string.js`,
` require ./dist/readers/js-string.cjs`,
`scripts`,
` test vitest ./src`,
` build vite build`,
`devDependencies`,
` vite ^3.2.3`,
` vitest ^0.24.5`,
``,
`author`,
` name Joshua Bemenderfer`,
` email josh@thederf.com`,
` `,
` Further comments below. As I will now demonstrate, there is no simple`,
` way of dealing with this problem.`,
]
const schema = {
"name": {count: 1},
"version": {count: 1},
"license": {count: 1},
"exports": {count: 1, children: {
"?": {count: -1, children: {
"import": {count: 1},
"require": {count: 1}
}}
}},
"scripts": {count: 1, children: {
"?": { count: -1 }
}},
"devDependencies": {count: 1, children: {
"?": { count: -1 }
}},
"author": { count: 1, children: {
"name": { count: 1 },
"email": { count: 1 },
"? literal": { count: -1 }
}}
}
async function main() {
const resultFull = await parse(linesFull)
// console.dir(resultFull, { depth: null })
const resultSchema = await parse(linesSchema, schema)
console.dir(resultSchema, { depth: null })
}
main()