"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const immutable_1 = __importDefault(require("immutable")); const markdown_legacy_1 = __importDefault(require("@honkit/markdown-legacy")); const asciidoc_1 = __importDefault(require("@honkit/asciidoc")); const extsMarkdown_1 = __importDefault(require("./constants/extsMarkdown")); const extsAsciidoc_1 = __importDefault(require("./constants/extsAsciidoc")); const parser_1 = __importDefault(require("./models/parser")); // This list is ordered by priority of parsers to use const parsers = immutable_1.default.List([ parser_1.default.create("markdown", extsMarkdown_1.default, markdown_legacy_1.default), parser_1.default.create("asciidoc", extsAsciidoc_1.default, asciidoc_1.default) ]); /** * Return a specific parser by its name * * @param {string} name * @return {Parsers|undefined} */ function getParser(name) { return parsers.find((parser) => { return parser.getName() === name; }); } /** * Return a specific parser according to an extension * * @param {string} ext * @return {Parsers|undefined} */ function getParserByExt(ext) { return parsers.find((parser) => { return parser.matchExtension(ext); }); } /** * Return parser for a file * * @param {string} ext * @return {Parsers|undefined} */ function getParserForFile(filename) { return getParserByExt(path_1.default.extname(filename)); } // List all parsable extensions const extensions = parsers .map((parser) => { return parser.getExtensions(); }) .flatten(); exports.default = { extensions: extensions, get: getParser, getByExt: getParserByExt, getForFile: getParserForFile };