UNPKG

typescript-docs-verifier

Version:

Verifies that typescript examples in markdown files actually compile.

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