-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: prevent conflict between Netlify Identity and edge function rendering #12052
Changes from 2 commits
aed3284
5c3e74a
902ea7a
beacaae
a63c563
2d81ef4
75fce73
09e42c6
42bab13
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
"@sveltejs/adapter-netlify": patch | ||
--- | ||
|
||
Fix conflict between Netlify Edge Functions and Netlify Identity. Avoid unnecessary Netlify edge function invocations for static files. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,15 +13,19 @@ import toml from '@iarna/toml'; | |
*/ | ||
|
||
/** | ||
* TODO(serhalp) Replace this custom type with an import from `@netlify/edge-functions`, | ||
* once that type is fixed to include `excludedPath` and `function`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looking at https://www.npmjs.com/package/@netlify/edge-functions?activeTab=code the |
||
* @typedef {{ | ||
* functions: Array< | ||
* | { | ||
* function: string; | ||
* path: string; | ||
* excludedPath?: string | string[]; | ||
* } | ||
* | { | ||
* function: string; | ||
* pattern: string; | ||
* excludedPattern?: string | string[]; | ||
* } | ||
* >; | ||
* version: 1; | ||
|
@@ -121,18 +125,21 @@ async function generate_edge_functions({ builder }) { | |
|
||
builder.mkdirp('.netlify/edge-functions'); | ||
|
||
// Don't match the static directory | ||
const pattern = '^/.*$'; | ||
|
||
// Go doesn't support lookarounds, so we can't do this | ||
// const pattern = appDir ? `^/(?!${escapeStringRegexp(appDir)}).*$` : '^/.*$'; | ||
const path = '/*'; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Wonder if we should add the base path to this: const path = `${builder.config.kit.paths.base}/*`; |
||
const excludedPath = [ | ||
// Contains static files | ||
`/${builder.getAppPath()}/*`, | ||
// Should not be served by SvelteKit at all | ||
'/.netlify/*' | ||
]; | ||
|
||
/** @type {HandlerManifest} */ | ||
const edge_manifest = { | ||
functions: [ | ||
{ | ||
function: 'render', | ||
pattern | ||
path, | ||
excludedPath | ||
} | ||
], | ||
version: 1 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI I'm working on this as well. I should have a follow-up PR soon.