UNPKG

typescript-docs-verifier

Version:

Verifies that typescript examples in markdown files actually compile.

31 lines 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeBlockExtractor = void 0; const promises_1 = require("fs/promises"); const TYPESCRIPT_CODE_PATTERN = /(?<!(?:<!--\s*ts-docs-verifier:ignore\s*-->[\r?\n]*))(?:```(?:(?:typescript)|(tsx?))\r?\n)((?:\r?\n|.)*?)(?:(?=```))/gi; exports.CodeBlockExtractor = { extract: async (markdownFilePath) => { try { const contents = await exports.CodeBlockExtractor.readFile(markdownFilePath); return exports.CodeBlockExtractor.extractCodeBlocksFromMarkdown(contents); } catch (error) { throw new Error(`Error extracting code blocks from ${markdownFilePath}: ${error instanceof Error ? error.message : error}`, { cause: error }); } }, readFile: async (path) => { return await (0, promises_1.readFile)(path, "utf-8"); }, extractCodeBlocksFromMarkdown: (markdown) => { const codeBlocks = []; markdown.replace(TYPESCRIPT_CODE_PATTERN, (_, type, code) => { codeBlocks.push({ code: code, type: type === "tsx" ? "tsx" : "ts", }); return code; }); return codeBlocks; }, }; //# sourceMappingURL=CodeBlockExtractor.js.map