summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy/src/Engines/FrontMatter
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@11ty/eleventy/src/Engines/FrontMatter
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@11ty/eleventy/src/Engines/FrontMatter')
-rw-r--r--node_modules/@11ty/eleventy/src/Engines/FrontMatter/JavaScript.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy/src/Engines/FrontMatter/JavaScript.js b/node_modules/@11ty/eleventy/src/Engines/FrontMatter/JavaScript.js
new file mode 100644
index 0000000..b91ba36
--- /dev/null
+++ b/node_modules/@11ty/eleventy/src/Engines/FrontMatter/JavaScript.js
@@ -0,0 +1,34 @@
+import { RetrieveGlobals } from "node-retrieve-globals";
+
+// `javascript` Front Matter Type
+export default function (frontMatterCode, context = {}) {
+ let { filePath } = context;
+
+ // context.language would be nice as a guard, but was unreliable
+ if (frontMatterCode.trimStart().startsWith("{")) {
+ return context.engines.jsLegacy.parse(frontMatterCode, context);
+ }
+
+ let vm = new RetrieveGlobals(frontMatterCode, {
+ filePath,
+ // ignored if vm.Module is stable (or --experimental-vm-modules)
+ transformEsmImports: true,
+ });
+
+ // Future warning until vm.Module is stable:
+ // If the frontMatterCode uses `import` this uses the `experimentalModuleApi`
+ // option in node-retrieve-globals to workaround https://github.com/zachleat/node-retrieve-globals/issues/2
+ let data = {
+ page: {
+ // Theoretically fileSlug and filePathStem could be added here but require extensionMap
+ inputPath: filePath,
+ },
+ };
+
+ // this is async, but it’s handled in Eleventy upstream.
+ return vm.getGlobalContext(data, {
+ reuseGlobal: true,
+ dynamicImport: true,
+ // addRequire: true,
+ });
+}