110 lines
2.7 KiB
JavaScript
110 lines
2.7 KiB
JavaScript
import { parse, toArrays } from './core.js'
|
|
|
|
const linesArrays = [
|
|
`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 linesParse = [
|
|
`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`,
|
|
` even if embedded`,
|
|
` 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 resultArrays = await toArrays(linesArrays)
|
|
// console.dir(resultArrays, { depth: null })
|
|
|
|
const resultParse = await parse(linesParse)
|
|
console.dir(resultParse, { depth: null })
|
|
}
|
|
|
|
main()
|