Skip to content

Commit 9b8c90d

Browse files
authored
fix(vite-plugin-angular): cache MarkedSetupService creation (#1584)
1 parent 02ea46d commit 9b8c90d

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

packages/vite-plugin-angular/src/lib/authoring/markdown-transform.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,26 @@
11
import { FRONTMATTER_REGEX } from './constants.js';
22
import { type VFile } from 'vfile';
3+
import { type MarkedSetupService } from './marked-setup.service.js';
34

45
export type MarkdownTemplateTransform = (
56
content: string,
67
fileName: string
78
) => string | Promise<string> | Promise<VFile>;
89

10+
let markedSetupServicePromise: undefined | Promise<MarkedSetupService>;
11+
912
export const defaultMarkdownTemplateTransform: MarkdownTemplateTransform =
1013
async (content: string) => {
11-
const { MarkedSetupService } = await import('./marked-setup.service.js');
12-
14+
if (!markedSetupServicePromise) {
15+
// set immediately to prevent other calls from seeing markedSetupServicePromise as
16+
// undefined - can't use await here
17+
markedSetupServicePromise = import('./marked-setup.service.js').then(
18+
({ MarkedSetupService }) => new MarkedSetupService()
19+
);
20+
}
1321
// read template sections, parse markdown
14-
const markedSetupService = new MarkedSetupService();
22+
const markedSetupService = await markedSetupServicePromise;
23+
1524
const mdContent = markedSetupService
1625
.getMarkedInstance()
1726
.parse(

0 commit comments

Comments
 (0)