summaryrefslogtreecommitdiff
path: root/packages/markdown/remark/src/load-plugins.ts
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2022-09-28 23:13:33 +0800
committerGravatar GitHub <noreply@github.com> 2022-09-28 23:13:33 +0800
commit812658ad2ab3732a99e35c4fd903e302e723db46 (patch)
tree37dc457bcfa8558e546d064eb315a74149010da1 /packages/markdown/remark/src/load-plugins.ts
parentf4bca41a2d85968a2c9f2379f99954c7bcb06df1 (diff)
downloadastro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.gz
astro-812658ad2ab3732a99e35c4fd903e302e723db46.tar.zst
astro-812658ad2ab3732a99e35c4fd903e302e723db46.zip
Remove shamefully-hoist (#4842)
Diffstat (limited to 'packages/markdown/remark/src/load-plugins.ts')
-rw-r--r--packages/markdown/remark/src/load-plugins.ts15
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/markdown/remark/src/load-plugins.ts b/packages/markdown/remark/src/load-plugins.ts
index c64d13543..37798db14 100644
--- a/packages/markdown/remark/src/load-plugins.ts
+++ b/packages/markdown/remark/src/load-plugins.ts
@@ -1,8 +1,21 @@
+import path from 'path';
+import { pathToFileURL } from 'url';
import * as unified from 'unified';
+import { resolve as importMetaResolve } from 'import-meta-resolve';
+
+const cwdUrlStr = pathToFileURL(path.join(process.cwd(), 'package.json')).toString();
async function importPlugin(p: string | unified.Plugin): Promise<unified.Plugin> {
if (typeof p === 'string') {
- const importResult = await import(p);
+ // Try import from this package first
+ try {
+ const importResult = await import(p);
+ return importResult.default;
+ } catch {}
+
+ // Try import from user project
+ const resolved = await importMetaResolve(p, cwdUrlStr);
+ const importResult = await import(resolved);
return importResult.default;
}