comment-parser
Version:
Generic JSDoc-like comment parser
1 lines • 6.07 kB
Source Map (JSON)
{"version":3,"file":"util.cjs","names":["Object","defineProperty","exports","value","isSpace","hasCR","splitCR","splitSpace","splitLines","seedBlock","seedSpec","seedTokens","rewireSource","rewireSpecs","source","test","matches","match","slice","length","split","block","assign","description","tags","problems","spec","tag","name","type","optional","tokens","start","delimiter","postDelimiter","postTag","postName","postType","end","lineEnd","reduce","acc","line","set","number","Map","map","get"],"sources":["util.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSpace = isSpace;\nexports.hasCR = hasCR;\nexports.splitCR = splitCR;\nexports.splitSpace = splitSpace;\nexports.splitLines = splitLines;\nexports.seedBlock = seedBlock;\nexports.seedSpec = seedSpec;\nexports.seedTokens = seedTokens;\nexports.rewireSource = rewireSource;\nexports.rewireSpecs = rewireSpecs;\nfunction isSpace(source) {\n return /^\\s+$/.test(source);\n}\nfunction hasCR(source) {\n return /\\r$/.test(source);\n}\nfunction splitCR(source) {\n const matches = source.match(/\\r+$/);\n return matches == null\n ? ['', source]\n : [source.slice(-matches[0].length), source.slice(0, -matches[0].length)];\n}\nfunction splitSpace(source) {\n const matches = source.match(/^\\s+/);\n return matches == null\n ? ['', source]\n : [source.slice(0, matches[0].length), source.slice(matches[0].length)];\n}\nfunction splitLines(source) {\n return source.split(/\\n/);\n}\nfunction seedBlock(block = {}) {\n return Object.assign({ description: '', tags: [], source: [], problems: [] }, block);\n}\nfunction seedSpec(spec = {}) {\n return Object.assign({ tag: '', name: '', type: '', optional: false, description: '', problems: [], source: [] }, spec);\n}\nfunction seedTokens(tokens = {}) {\n return Object.assign({ start: '', delimiter: '', postDelimiter: '', tag: '', postTag: '', name: '', postName: '', type: '', postType: '', description: '', end: '', lineEnd: '' }, tokens);\n}\n/**\n * Assures Block.tags[].source contains references to the Block.source items,\n * using Block.source as a source of truth. This is a counterpart of rewireSpecs\n * @param block parsed coments block\n */\nfunction rewireSource(block) {\n const source = block.source.reduce((acc, line) => acc.set(line.number, line), new Map());\n for (const spec of block.tags) {\n spec.source = spec.source.map((line) => source.get(line.number));\n }\n return block;\n}\n/**\n * Assures Block.source contains references to the Block.tags[].source items,\n * using Block.tags[].source as a source of truth. This is a counterpart of rewireSource\n * @param block parsed coments block\n */\nfunction rewireSpecs(block) {\n const source = block.tags.reduce((acc, spec) => spec.source.reduce((acc, line) => acc.set(line.number, line), acc), new Map());\n block.source = block.source.map((line) => source.get(line.number) || line);\n return block;\n}\n"],"mappings":"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","ignoreList":[]}