summaryrefslogtreecommitdiff
path: root/packages/astro
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--packages/astro/src/runtime.ts10
-rw-r--r--packages/astro/test/builtins-polyfillnode.test.js19
-rw-r--r--packages/astro/test/fixtures/builtins-polyfillnode/package.json7
-rw-r--r--packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json6
-rw-r--r--packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro12
5 files changed, 50 insertions, 4 deletions
diff --git a/packages/astro/src/runtime.ts b/packages/astro/src/runtime.ts
index 53a5fa8bb..a12f5d4fe 100644
--- a/packages/astro/src/runtime.ts
+++ b/packages/astro/src/runtime.ts
@@ -418,12 +418,14 @@ async function createSnowpack(astroConfig: AstroConfig, options: CreateSnowpackO
packageOptions: {
knownEntrypoints,
external,
- },
- alias: {
- ...Object.fromEntries(nodeBuiltinsMap),
- },
+ }
});
+ const polyfillNode = (snowpackConfig.packageOptions as any).polyfillNode as boolean;
+ if(!polyfillNode) {
+ snowpackConfig.alias = Object.fromEntries(nodeBuiltinsMap);
+ }
+
snowpack = await startSnowpackServer(
{
config: snowpackConfig,
diff --git a/packages/astro/test/builtins-polyfillnode.test.js b/packages/astro/test/builtins-polyfillnode.test.js
new file mode 100644
index 000000000..8fef5e8e9
--- /dev/null
+++ b/packages/astro/test/builtins-polyfillnode.test.js
@@ -0,0 +1,19 @@
+import { suite } from 'uvu';
+import * as assert from 'uvu/assert';
+import { doc } from './test-utils.js';
+import { setup } from './helpers.js';
+
+const Builtins = suite('Node builtins with polyfillNode option');
+
+setup(Builtins, './fixtures/builtins-polyfillnode');
+
+Builtins('Doesnt alias to node: prefix', async ({ runtime }) => {
+ const result = await runtime.load('/');
+ if (result.error) throw new Error(result.error);
+
+ const $ = doc(result.contents);
+
+ assert.match($('#url').text(), new RegExp('unicorn.jpg'));
+});
+
+Builtins.run();
diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/package.json b/packages/astro/test/fixtures/builtins-polyfillnode/package.json
new file mode 100644
index 000000000..1c1382619
--- /dev/null
+++ b/packages/astro/test/fixtures/builtins-polyfillnode/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "@astrojs/astro-test-builtins-polyfillnode",
+ "version": "1.2.0",
+ "dependencies": {
+ "file-url": "4.0.0"
+ }
+} \ No newline at end of file
diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json b/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json
new file mode 100644
index 000000000..3c503c831
--- /dev/null
+++ b/packages/astro/test/fixtures/builtins-polyfillnode/snowpack.config.json
@@ -0,0 +1,6 @@
+{
+ "workspaceRoot": "../../../../../",
+ "packageOptions": {
+ "polyfillNode": false
+ }
+}
diff --git a/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro b/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro
new file mode 100644
index 000000000..8286f1ed1
--- /dev/null
+++ b/packages/astro/test/fixtures/builtins-polyfillnode/src/pages/index.astro
@@ -0,0 +1,12 @@
+---
+import fileUrl from 'file-url';
+
+const r = fileUrl('unicorn.jpg');
+---
+
+<html>
+<head><title>Testing</title></head>
+<body>
+ <div id="url">{r}</div>
+</body>
+</html> \ No newline at end of file