From ee3577933703799580d463755aab2951d20e2f82 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 19 Apr 2022 11:22:15 -0400 Subject: Netlify Edge function support (#3148) * Netlify Edge function support * Update readme with edge function information * Adds a changeset * Disable running edge function test in CI for now --- .../netlify/test/functions/test-utils.js | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 packages/integrations/netlify/test/functions/test-utils.js (limited to 'packages/integrations/netlify/test/functions/test-utils.js') diff --git a/packages/integrations/netlify/test/functions/test-utils.js b/packages/integrations/netlify/test/functions/test-utils.js new file mode 100644 index 000000000..19cd7ef66 --- /dev/null +++ b/packages/integrations/netlify/test/functions/test-utils.js @@ -0,0 +1,29 @@ +// @ts-check +import { fileURLToPath } from 'url'; + +export * from '../../../../astro/test/test-utils.js'; + +/** + * + * @returns {import('../../../../astro/dist/types/@types/astro').AstroIntegration} + */ +export function testIntegration() { + return { + name: '@astrojs/netlify/test-integration', + hooks: { + 'astro:config:setup':({ updateConfig }) => { + updateConfig({ + vite: { + resolve: { + alias: { + '@astrojs/netlify/netlify-functions.js': fileURLToPath( + new URL('../../dist/netlify-functions.js', import.meta.url) + ), + }, + }, + }, + }); + } + } + }; +} -- cgit v1.2.3 From ca74099c97730456fbb649f7bf1031548d35546c Mon Sep 17 00:00:00 2001 From: matthewp Date: Tue, 19 Apr 2022 15:23:07 +0000 Subject: [ci] format --- packages/integrations/netlify/src/index.ts | 9 +--- .../netlify/src/integration-edge-functions.ts | 49 +++++++++++----------- .../netlify/src/netlify-edge-functions.ts | 6 +-- .../netlify/test/edge-functions/edge-basic.test.ts | 4 +- .../netlify/test/functions/cookies.test.js | 2 +- .../netlify/test/functions/dynamic-route.test.js | 2 +- .../netlify/test/functions/test-utils.js | 8 ++-- 7 files changed, 38 insertions(+), 42 deletions(-) (limited to 'packages/integrations/netlify/test/functions/test-utils.js') diff --git a/packages/integrations/netlify/src/index.ts b/packages/integrations/netlify/src/index.ts index 121495652..beb3d0e0c 100644 --- a/packages/integrations/netlify/src/index.ts +++ b/packages/integrations/netlify/src/index.ts @@ -1,8 +1,3 @@ -export { - netlifyFunctions, - netlifyFunctions as default -} from './integration-functions.js'; +export { netlifyFunctions, netlifyFunctions as default } from './integration-functions.js'; -export { - netlifyEdgeFunctions -} from './integration-edge-functions.js'; +export { netlifyEdgeFunctions } from './integration-edge-functions.js'; diff --git a/packages/integrations/netlify/src/integration-edge-functions.ts b/packages/integrations/netlify/src/integration-edge-functions.ts index fcce820f4..c607a5493 100644 --- a/packages/integrations/netlify/src/integration-edge-functions.ts +++ b/packages/integrations/netlify/src/integration-edge-functions.ts @@ -23,7 +23,9 @@ interface NetlifyEdgeFunctionManifestFunctionPattern { pattern: string; } -type NetlifyEdgeFunctionManifestFunction = NetlifyEdgeFunctionManifestFunctionPath | NetlifyEdgeFunctionManifestFunctionPattern; +type NetlifyEdgeFunctionManifestFunction = + | NetlifyEdgeFunctionManifestFunctionPath + | NetlifyEdgeFunctionManifestFunctionPattern; interface NetlifyEdgeFunctionManifest { functions: NetlifyEdgeFunctionManifestFunction[]; @@ -32,28 +34,28 @@ interface NetlifyEdgeFunctionManifest { async function createEdgeManifest(routes: RouteData[], entryFile: string, dir: URL) { const functions: NetlifyEdgeFunctionManifestFunction[] = []; - for(const route of routes) { - if(route.pathname) { - functions.push({ - function: entryFile, - path: route.pathname - }); - } else { - functions.push({ - function: entryFile, - pattern: route.pattern.source - }); - } - } + for (const route of routes) { + if (route.pathname) { + functions.push({ + function: entryFile, + path: route.pathname, + }); + } else { + functions.push({ + function: entryFile, + pattern: route.pattern.source, + }); + } + } - const manifest: NetlifyEdgeFunctionManifest = { - functions, - version: 1 - }; + const manifest: NetlifyEdgeFunctionManifest = { + functions, + version: 1, + }; - const manifestURL = new URL('./manifest.json', dir); - const _manifest = JSON.stringify(manifest, null, ' '); - await fs.promises.writeFile(manifestURL, _manifest, 'utf-8'); + const manifestURL = new URL('./manifest.json', dir); + const _manifest = JSON.stringify(manifest, null, ' '); + await fs.promises.writeFile(manifestURL, _manifest, 'utf-8'); } export function netlifyEdgeFunctions({ dist }: NetlifyEdgeFunctionsOptions = {}): AstroIntegration { @@ -86,13 +88,10 @@ export function netlifyEdgeFunctions({ dist }: NetlifyEdgeFunctionsOptions = {}) } }, 'astro:build:done': async ({ routes, dir }) => { - await createEdgeManifest(routes, entryFile, new URL('./edge-functions/', dir)); }, }, }; } -export { - netlifyEdgeFunctions as default -} +export { netlifyEdgeFunctions as default }; diff --git a/packages/integrations/netlify/src/netlify-edge-functions.ts b/packages/integrations/netlify/src/netlify-edge-functions.ts index f7000442c..1bb8e2c3a 100644 --- a/packages/integrations/netlify/src/netlify-edge-functions.ts +++ b/packages/integrations/netlify/src/netlify-edge-functions.ts @@ -6,15 +6,15 @@ export function createExports(manifest: SSRManifest) { const app = new App(manifest); const handler = async (request: Request): Promise => { - if(app.match(request)) { + if (app.match(request)) { return app.render(request); } return new Response(null, { status: 404, - statusText: 'Not found' + statusText: 'Not found', }); }; - return { 'default': handler }; + return { default: handler }; } diff --git a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts index a99125980..7fc8877bd 100644 --- a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts +++ b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts @@ -8,7 +8,9 @@ Deno.test({ name: 'Edge Basics', async fn() { let close = await runBuild('./fixtures/edge-basic/'); - const { default: handler } = await import('./fixtures/edge-basic/dist/edge-functions/entry.mjs'); + const { default: handler } = await import( + './fixtures/edge-basic/dist/edge-functions/entry.mjs' + ); const response = await handler(new Request('http://example.com/')); assertEquals(response.status, 200); const html = await response.text(); diff --git a/packages/integrations/netlify/test/functions/cookies.test.js b/packages/integrations/netlify/test/functions/cookies.test.js index 93cc05229..43c55916b 100644 --- a/packages/integrations/netlify/test/functions/cookies.test.js +++ b/packages/integrations/netlify/test/functions/cookies.test.js @@ -18,7 +18,7 @@ describe('Cookies', () => { dist: new URL('./fixtures/cookies/dist/', import.meta.url), }), site: `http://example.com`, - integrations: [ testIntegration() ] + integrations: [testIntegration()], }); await fixture.build(); }); diff --git a/packages/integrations/netlify/test/functions/dynamic-route.test.js b/packages/integrations/netlify/test/functions/dynamic-route.test.js index 279982767..8c8977f7e 100644 --- a/packages/integrations/netlify/test/functions/dynamic-route.test.js +++ b/packages/integrations/netlify/test/functions/dynamic-route.test.js @@ -16,7 +16,7 @@ describe('Dynamic pages', () => { dist: new URL('./fixtures/dynamic-route/dist/', import.meta.url), }), site: `http://example.com`, - integrations: [ testIntegration() ] + integrations: [testIntegration()], }); await fixture.build(); }); diff --git a/packages/integrations/netlify/test/functions/test-utils.js b/packages/integrations/netlify/test/functions/test-utils.js index 19cd7ef66..02b5d2ad9 100644 --- a/packages/integrations/netlify/test/functions/test-utils.js +++ b/packages/integrations/netlify/test/functions/test-utils.js @@ -4,14 +4,14 @@ import { fileURLToPath } from 'url'; export * from '../../../../astro/test/test-utils.js'; /** - * + * * @returns {import('../../../../astro/dist/types/@types/astro').AstroIntegration} */ export function testIntegration() { return { name: '@astrojs/netlify/test-integration', hooks: { - 'astro:config:setup':({ updateConfig }) => { + 'astro:config:setup': ({ updateConfig }) => { updateConfig({ vite: { resolve: { @@ -23,7 +23,7 @@ export function testIntegration() { }, }, }); - } - } + }, + }, }; } -- cgit v1.2.3 From b53f5b3a055f9c741a217706305a6ad599cb508e Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Thu, 13 Jul 2023 09:21:33 +0100 Subject: feat(@astrojs/netlify): add `build.split` support (#7615) Co-authored-by: Sarah Rainsberger Co-authored-by: Bjorn Lu --- packages/integrations/netlify/README.md | 18 +++++++ packages/integrations/netlify/package.json | 5 +- .../netlify/src/integration-edge-functions.ts | 7 ++- .../netlify/src/integration-functions.ts | 39 ++++++++++++-- .../integrations/netlify/src/integration-static.ts | 9 +++- packages/integrations/netlify/src/shared.ts | 11 ++-- .../fixtures/prerender/src/pages/index.astro | 4 +- .../fixtures/split-support/src/pages/blog.astro | 8 +++ .../fixtures/split-support/src/pages/index.astro | 8 +++ .../netlify/test/functions/redirects.test.js | 1 + .../netlify/test/functions/redirects.test.js.snap | 8 +++ .../netlify/test/functions/split-support.test.js | 63 ++++++++++++++++++++++ .../netlify/test/functions/test-utils.js | 7 ++- packages/integrations/netlify/test/setup.js | 12 +++++ 14 files changed, 180 insertions(+), 20 deletions(-) create mode 100644 packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/blog.astro create mode 100644 packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/index.astro create mode 100644 packages/integrations/netlify/test/functions/redirects.test.js.snap create mode 100644 packages/integrations/netlify/test/functions/split-support.test.js create mode 100644 packages/integrations/netlify/test/setup.js (limited to 'packages/integrations/netlify/test/functions/test-utils.js') diff --git a/packages/integrations/netlify/README.md b/packages/integrations/netlify/README.md index 86fff4fd2..5e7895217 100644 --- a/packages/integrations/netlify/README.md +++ b/packages/integrations/netlify/README.md @@ -72,6 +72,24 @@ export default defineConfig({ }); ``` +### Per-page functions + +The Netlify adapter builds to a single function by default. Astro 2.7 added support for splitting your build into separate entry points per page. If you use this configuration, the Netlify adapter will generate a separate function for each page. This can help reduce the size of each function so they are only bundling code used on that page. + +```js +// astro.config.mjs +import { defineConfig } from 'astro/config'; +import netlify from '@astrojs/netlify/functions'; + +export default defineConfig({ + output: 'server', + adapter: netlify(), + build: { + split: true, + }, +}); +``` + ### Static sites For static sites you usually don't need an adapter. However, if you use `redirects` configuration (experimental) in your Astro config, the Netlify adapter can be used to translate this to the proper `_redirects` format. diff --git a/packages/integrations/netlify/package.json b/packages/integrations/netlify/package.json index d6fe379ca..fdba25b25 100644 --- a/packages/integrations/netlify/package.json +++ b/packages/integrations/netlify/package.json @@ -32,7 +32,7 @@ "build": "astro-scripts build \"src/**/*.ts\" && tsc", "build:ci": "astro-scripts build \"src/**/*.ts\"", "dev": "astro-scripts dev \"src/**/*.ts\"", - "test-fn": "mocha --exit --timeout 20000 test/functions/", + "test-fn": "mocha --exit --timeout 20000 --file \"./test/setup.js\" test/functions/", "test-edge": "deno test --allow-run --allow-read --allow-net --allow-env ./test/edge-functions/", "test": "npm run test-fn" }, @@ -54,7 +54,8 @@ "chai": "^4.3.7", "cheerio": "1.0.0-rc.12", "mocha": "^9.2.2", - "vite": "^4.3.9" + "vite": "^4.3.9", + "chai-jest-snapshot": "^2.0.0" }, "astro": { "external": true diff --git a/packages/integrations/netlify/src/integration-edge-functions.ts b/packages/integrations/netlify/src/integration-edge-functions.ts index 2f65bccda..72721bd59 100644 --- a/packages/integrations/netlify/src/integration-edge-functions.ts +++ b/packages/integrations/netlify/src/integration-edge-functions.ts @@ -166,7 +166,12 @@ export function netlifyEdgeFunctions({ dist }: NetlifyEdgeFunctionsOptions = {}) 'astro:build:done': async ({ routes, dir }) => { await bundleServerEntry(_buildConfig, _vite); await createEdgeManifest(routes, entryFile, _config.root); - await createRedirects(_config, routes, dir, entryFile, 'edge-functions'); + const dynamicTarget = `/.netlify/edge-functions/${entryFile}`; + const map: [RouteData, string][] = routes.map((route) => { + return [route, dynamicTarget]; + }); + const routeToDynamicTargetMap = new Map(Array.from(map)); + await createRedirects(_config, routeToDynamicTargetMap, dir); }, }, }; diff --git a/packages/integrations/netlify/src/integration-functions.ts b/packages/integrations/netlify/src/integration-functions.ts index 348b007f5..5442079d0 100644 --- a/packages/integrations/netlify/src/integration-functions.ts +++ b/packages/integrations/netlify/src/integration-functions.ts @@ -1,6 +1,8 @@ -import type { AstroAdapter, AstroConfig, AstroIntegration } from 'astro'; +import type { AstroAdapter, AstroConfig, AstroIntegration, RouteData } from 'astro'; import type { Args } from './netlify-functions.js'; import { createRedirects } from './shared.js'; +import { fileURLToPath } from 'node:url'; +import { extname } from 'node:path'; export function getAdapter(args: Args = {}): AstroAdapter { return { @@ -23,7 +25,8 @@ function netlifyFunctions({ binaryMediaTypes, }: NetlifyFunctionsOptions = {}): AstroIntegration { let _config: AstroConfig; - let entryFile: string; + let _entryPoints: Map; + let ssrEntryFile: string; return { name: '@astrojs/netlify', hooks: { @@ -37,10 +40,13 @@ function netlifyFunctions({ }, }); }, + 'astro:build:ssr': ({ entryPoints }) => { + _entryPoints = entryPoints; + }, 'astro:config:done': ({ config, setAdapter }) => { setAdapter(getAdapter({ binaryMediaTypes, builders })); _config = config; - entryFile = config.build.serverEntry.replace(/\.m?js/, ''); + ssrEntryFile = config.build.serverEntry.replace(/\.m?js/, ''); if (config.output === 'static') { console.warn( @@ -53,7 +59,32 @@ function netlifyFunctions({ }, 'astro:build:done': async ({ routes, dir }) => { const type = builders ? 'builders' : 'functions'; - await createRedirects(_config, routes, dir, entryFile, type); + const kind = type ?? 'functions'; + + if (_entryPoints.size) { + const routeToDynamicTargetMap = new Map(); + for (const [route, entryFile] of _entryPoints) { + const wholeFileUrl = fileURLToPath(entryFile); + + const extension = extname(wholeFileUrl); + const relative = wholeFileUrl + .replace(fileURLToPath(_config.build.server), '') + .replace(extension, '') + .replaceAll('\\', '/'); + const dynamicTarget = `/.netlify/${kind}/${relative}`; + + routeToDynamicTargetMap.set(route, dynamicTarget); + } + await createRedirects(_config, routeToDynamicTargetMap, dir); + } else { + const dynamicTarget = `/.netlify/${kind}/${ssrEntryFile}`; + const map: [RouteData, string][] = routes.map((route) => { + return [route, dynamicTarget]; + }); + const routeToDynamicTargetMap = new Map(Array.from(map)); + + await createRedirects(_config, routeToDynamicTargetMap, dir); + } }, }, }; diff --git a/packages/integrations/netlify/src/integration-static.ts b/packages/integrations/netlify/src/integration-static.ts index 78d0bb4b0..af2849867 100644 --- a/packages/integrations/netlify/src/integration-static.ts +++ b/packages/integrations/netlify/src/integration-static.ts @@ -1,4 +1,4 @@ -import type { AstroIntegration } from 'astro'; +import type { AstroIntegration, RouteData } from 'astro'; import { createRedirects } from './shared.js'; export function netlifyStatic(): AstroIntegration { @@ -18,7 +18,12 @@ export function netlifyStatic(): AstroIntegration { _config = config; }, 'astro:build:done': async ({ dir, routes }) => { - await createRedirects(_config, routes, dir, '', 'static'); + const mappedRoutes: [RouteData, string][] = routes.map((route) => [ + route, + `/.netlify/static/`, + ]); + const routesToDynamicTargetMap = new Map(Array.from(mappedRoutes)); + await createRedirects(_config, routesToDynamicTargetMap, dir); }, }, }; diff --git a/packages/integrations/netlify/src/shared.ts b/packages/integrations/netlify/src/shared.ts index e4aabd824..ca45dc752 100644 --- a/packages/integrations/netlify/src/shared.ts +++ b/packages/integrations/netlify/src/shared.ts @@ -4,20 +4,15 @@ import fs from 'node:fs'; export async function createRedirects( config: AstroConfig, - routes: RouteData[], - dir: URL, - entryFile: string, - type: 'functions' | 'edge-functions' | 'builders' | 'static' + routeToDynamicTargetMap: Map, + dir: URL ) { - const kind = type ?? 'functions'; - const dynamicTarget = `/.netlify/${kind}/${entryFile}`; const _redirectsURL = new URL('./_redirects', dir); const _redirects = createRedirectsFromAstroRoutes({ config, - routes, + routeToDynamicTargetMap, dir, - dynamicTarget, }); const content = _redirects.print(); diff --git a/packages/integrations/netlify/test/functions/fixtures/prerender/src/pages/index.astro b/packages/integrations/netlify/test/functions/fixtures/prerender/src/pages/index.astro index ad5d44aa2..852d00b7b 100644 --- a/packages/integrations/netlify/test/functions/fixtures/prerender/src/pages/index.astro +++ b/packages/integrations/netlify/test/functions/fixtures/prerender/src/pages/index.astro @@ -1,8 +1,8 @@ - Testing + Blog -

testing

+

Blog

diff --git a/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/blog.astro b/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/blog.astro new file mode 100644 index 000000000..248c2218b --- /dev/null +++ b/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/blog.astro @@ -0,0 +1,8 @@ + + + Testing + + +

testing

+ + diff --git a/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/index.astro b/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/index.astro new file mode 100644 index 000000000..852d00b7b --- /dev/null +++ b/packages/integrations/netlify/test/functions/fixtures/split-support/src/pages/index.astro @@ -0,0 +1,8 @@ + + + Blog + + +

Blog

+ + diff --git a/packages/integrations/netlify/test/functions/redirects.test.js b/packages/integrations/netlify/test/functions/redirects.test.js index 1e20d41a0..566b88f4d 100644 --- a/packages/integrations/netlify/test/functions/redirects.test.js +++ b/packages/integrations/netlify/test/functions/redirects.test.js @@ -46,5 +46,6 @@ describe('SSG - Redirects', () => { '/.netlify/functions/entry', '200', ]); + expect(redirects).to.matchSnapshot(); }); }); diff --git a/packages/integrations/netlify/test/functions/redirects.test.js.snap b/packages/integrations/netlify/test/functions/redirects.test.js.snap new file mode 100644 index 000000000..322b4ee85 --- /dev/null +++ b/packages/integrations/netlify/test/functions/redirects.test.js.snap @@ -0,0 +1,8 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SSG - Redirects Creates a redirects file 1`] = ` +"/other / 301 +/nope /.netlify/functions/entry 200 +/ /.netlify/functions/entry 200 +/team/articles/* /.netlify/functions/entry 200" +`; diff --git a/packages/integrations/netlify/test/functions/split-support.test.js b/packages/integrations/netlify/test/functions/split-support.test.js new file mode 100644 index 000000000..217b3c0d3 --- /dev/null +++ b/packages/integrations/netlify/test/functions/split-support.test.js @@ -0,0 +1,63 @@ +import { expect } from 'chai'; +import netlifyAdapter from '../../dist/index.js'; +import { loadFixture, testIntegration } from './test-utils.js'; + +describe('Split support', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + let _entryPoints; + + before(async () => { + fixture = await loadFixture({ + root: new URL('./fixtures/split-support/', import.meta.url).toString(), + output: 'server', + adapter: netlifyAdapter({ + dist: new URL('./fixtures/split-support/dist/', import.meta.url), + }), + site: `http://example.com`, + integrations: [ + testIntegration({ + setEntryPoints(ep) { + _entryPoints = ep; + }, + }), + ], + build: { + split: true, + }, + }); + await fixture.build(); + }); + + it('outputs a correct redirect file', async () => { + const redir = await fixture.readFile('/_redirects'); + const lines = redir.split(/[\r\n]+/); + expect(lines.length).to.equal(2); + + expect(lines[0].includes('/blog')).to.be.true; + expect(lines[0].includes('blog.astro')).to.be.true; + expect(lines[0].includes('200')).to.be.true; + expect(lines[1].includes('/')).to.be.true; + expect(lines[1].includes('index.astro')).to.be.true; + expect(lines[1].includes('200')).to.be.true; + }); + + describe('Should create multiple functions', () => { + it('and hit 200', async () => { + if (_entryPoints) { + for (const [, filePath] of _entryPoints) { + const { handler } = await import(filePath.toString()); + const resp = await handler({ + httpMethod: 'POST', + headers: {}, + rawUrl: 'http://example.com/', + body: '{}', + }); + expect(resp.statusCode).to.equal(200); + } + } else { + expect(false).to.be.true; + } + }); + }); +}); diff --git a/packages/integrations/netlify/test/functions/test-utils.js b/packages/integrations/netlify/test/functions/test-utils.js index 02b5d2ad9..eff6c2782 100644 --- a/packages/integrations/netlify/test/functions/test-utils.js +++ b/packages/integrations/netlify/test/functions/test-utils.js @@ -7,7 +7,7 @@ export * from '../../../../astro/test/test-utils.js'; * * @returns {import('../../../../astro/dist/types/@types/astro').AstroIntegration} */ -export function testIntegration() { +export function testIntegration({ setEntryPoints } = {}) { return { name: '@astrojs/netlify/test-integration', hooks: { @@ -24,6 +24,11 @@ export function testIntegration() { }, }); }, + 'astro:build:ssr': ({ entryPoints }) => { + if (entryPoints.size) { + setEntryPoints(entryPoints); + } + }, }, }; } diff --git a/packages/integrations/netlify/test/setup.js b/packages/integrations/netlify/test/setup.js new file mode 100644 index 000000000..c53aa9894 --- /dev/null +++ b/packages/integrations/netlify/test/setup.js @@ -0,0 +1,12 @@ +import { use } from 'chai'; +import chaiJestSnapshot from 'chai-jest-snapshot'; + +use(chaiJestSnapshot); + +before(function () { + chaiJestSnapshot.resetSnapshotRegistry(); +}); + +beforeEach(function () { + chaiJestSnapshot.configureUsingMochaContext(this); +}); -- cgit v1.2.3 From 4a039a6d165229f8012176e176022b6c2b62906c Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 18 Jul 2023 02:17:59 +0200 Subject: nit: use `node:` prefix everywhere (#7692) * nit: use `node:` prefix everywhere * nit: fs/promises too * test: workaround issue in node builtin detection --- packages/integrations/netlify/src/shared.ts | 4 ++-- packages/integrations/netlify/test/functions/test-utils.js | 2 +- packages/integrations/netlify/test/static/test-utils.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'packages/integrations/netlify/test/functions/test-utils.js') diff --git a/packages/integrations/netlify/src/shared.ts b/packages/integrations/netlify/src/shared.ts index 91ce49ef6..175b9d04f 100644 --- a/packages/integrations/netlify/src/shared.ts +++ b/packages/integrations/netlify/src/shared.ts @@ -2,8 +2,8 @@ import { createRedirectsFromAstroRoutes } from '@astrojs/underscore-redirects'; import type { AstroConfig, RouteData } from 'astro'; import esbuild from 'esbuild'; import fs from 'node:fs'; -import npath from 'path'; -import { fileURLToPath } from 'url'; +import npath from 'node:path'; +import { fileURLToPath } from 'node:url'; export const DENO_SHIM = `globalThis.process = { argv: [], diff --git a/packages/integrations/netlify/test/functions/test-utils.js b/packages/integrations/netlify/test/functions/test-utils.js index eff6c2782..bed187962 100644 --- a/packages/integrations/netlify/test/functions/test-utils.js +++ b/packages/integrations/netlify/test/functions/test-utils.js @@ -1,5 +1,5 @@ // @ts-check -import { fileURLToPath } from 'url'; +import { fileURLToPath } from 'node:url'; export * from '../../../../astro/test/test-utils.js'; diff --git a/packages/integrations/netlify/test/static/test-utils.js b/packages/integrations/netlify/test/static/test-utils.js index 02b5d2ad9..f57abab1d 100644 --- a/packages/integrations/netlify/test/static/test-utils.js +++ b/packages/integrations/netlify/test/static/test-utils.js @@ -1,5 +1,5 @@ // @ts-check -import { fileURLToPath } from 'url'; +import { fileURLToPath } from 'node:url'; export * from '../../../../astro/test/test-utils.js'; -- cgit v1.2.3