1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- const primitives_js_1 = require("../primitives.cjs");
- const util_js_1 = require("../util.cjs");
- const block_parser_js_1 = require("./block-parser.cjs");
- const source_parser_js_1 = require("./source-parser.cjs");
- const spec_parser_js_1 = require("./spec-parser.cjs");
- const tag_js_1 = require("./tokenizers/tag.cjs");
- const type_js_1 = require("./tokenizers/type.cjs");
- const name_js_1 = require("./tokenizers/name.cjs");
- const description_js_1 = require("./tokenizers/description.cjs");
- function getParser({
- startLine = 0,
- fence = '```',
- spacing = 'compact',
- markers = primitives_js_1.Markers,
- tokenizers = [(0, tag_js_1.default)(), (0, type_js_1.default)(spacing), (0, name_js_1.default)(), (0, description_js_1.default)(spacing)]
- } = {}) {
- if (startLine < 0 || startLine % 1 > 0) throw new Error('Invalid startLine');
- const parseSource = (0, source_parser_js_1.default)({
- startLine,
- markers
- });
- const parseBlock = (0, block_parser_js_1.default)({
- fence
- });
- const parseSpec = (0, spec_parser_js_1.default)({
- tokenizers
- });
- const joinDescription = (0, description_js_1.getJoiner)(spacing);
- return function (source) {
- const blocks = [];
- for (const line of (0, util_js_1.splitLines)(source)) {
- const lines = parseSource(line);
- if (lines === null) continue;
- const sections = parseBlock(lines);
- const specs = sections.slice(1).map(parseSpec);
- blocks.push({
- description: joinDescription(sections[0], markers),
- tags: specs,
- source: lines,
- problems: specs.reduce((acc, spec) => acc.concat(spec.problems), [])
- });
- }
- return blocks;
- };
- }
- exports.default = getParser;
- //# sourceMappingURL=index.cjs.map
|