import { isMarkdownFile } from "./format";
import type { MarkupContext } from "./paths";

export const renderDocument = async (
	filename: string,
	contents: string,
	ctx: MarkupContext
): Promise<string | null> => {
	if (!isMarkdownFile(filename)) return null;
	const { SOURCE_LIMIT, renderMarkdown } = await import("./markdown");
	if (contents.length > SOURCE_LIMIT) return null;
	return renderMarkdown(contents, ctx);
};

// like renderDocument, but for content that is always markdown (issue and
// comment bodies) rather than a repo file with an extension to sniff
export const renderMarkup = async (
	contents: string,
	ctx: MarkupContext
): Promise<string | null> => {
	const { SOURCE_LIMIT, renderMarkdown } = await import("./markdown");
	if (contents.length > SOURCE_LIMIT) return null;
	return renderMarkdown(contents, ctx);
};
