From f368182321bbee2b981f3c22109ccd36f38fd101 Mon Sep 17 00:00:00 2001 From: Lukas Holzer Date: Mon, 14 Aug 2023 14:08:20 +0200 Subject: [PATCH 1/2] feat: support new monorepo setup --- packages/runtime/src/helpers/edge.ts | 4 +++- packages/runtime/src/helpers/functions.ts | 19 +++++++++++++++---- packages/runtime/src/index.ts | 2 +- .../runtime/src/templates/getPageResolver.ts | 4 ++-- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/runtime/src/helpers/edge.ts b/packages/runtime/src/helpers/edge.ts index 628f94706e..4fa7fe56db 100644 --- a/packages/runtime/src/helpers/edge.ts +++ b/packages/runtime/src/helpers/edge.ts @@ -354,9 +354,11 @@ export const getEdgeFunctionPatternForPage = ({ export const writeEdgeFunctions = async ({ netlifyConfig, routesManifest, + constants: { PACKAGE_PATH = '' }, }: { netlifyConfig: NetlifyConfig routesManifest: RoutesManifest + constants: NetlifyPluginConstants }) => { const generator = await getPluginVersion() @@ -366,7 +368,7 @@ export const writeEdgeFunctions = async ({ version: 1, } - const edgeFunctionRoot = resolve('.netlify', 'edge-functions') + const edgeFunctionRoot = resolve(PACKAGE_PATH, '.netlify', 'edge-functions') await emptyDir(edgeFunctionRoot) const { publish } = netlifyConfig.build diff --git a/packages/runtime/src/helpers/functions.ts b/packages/runtime/src/helpers/functions.ts index 5b85fbdecd..0912982a1a 100644 --- a/packages/runtime/src/helpers/functions.ts +++ b/packages/runtime/src/helpers/functions.ts @@ -58,7 +58,12 @@ export interface APILambda extends SSRLambda { } export const generateFunctions = async ( - { FUNCTIONS_SRC = DEFAULT_FUNCTIONS_SRC, INTERNAL_FUNCTIONS_SRC, PUBLISH_DIR }: NetlifyPluginConstants, + { + INTERNAL_FUNCTIONS_SRC, + PUBLISH_DIR, + PACKAGE_PATH = '', + FUNCTIONS_SRC = join(PACKAGE_PATH, DEFAULT_FUNCTIONS_SRC), + }: NetlifyPluginConstants, appDir: string, apiLambdas: APILambda[], ssrLambdas: SSRLambda[], @@ -171,12 +176,13 @@ export const generateFunctions = async ( */ export const generatePagesResolver = async ({ INTERNAL_FUNCTIONS_SRC, - FUNCTIONS_SRC = DEFAULT_FUNCTIONS_SRC, PUBLISH_DIR, + PACKAGE_PATH = '', + FUNCTIONS_SRC = join(PACKAGE_PATH, DEFAULT_FUNCTIONS_SRC), }: NetlifyPluginConstants): Promise => { const functionsPath = INTERNAL_FUNCTIONS_SRC || FUNCTIONS_SRC - const jsSource = await getResolverForPages(PUBLISH_DIR) + const jsSource = await getResolverForPages(PUBLISH_DIR, PACKAGE_PATH) await writeFile(join(functionsPath, ODB_FUNCTION_NAME, 'pages.js'), jsSource) await writeFile(join(functionsPath, HANDLER_FUNCTION_NAME, 'pages.js'), jsSource) @@ -184,7 +190,12 @@ export const generatePagesResolver = async ({ // Move our next/image function into the correct functions directory export const setupImageFunction = async ({ - constants: { INTERNAL_FUNCTIONS_SRC, FUNCTIONS_SRC = DEFAULT_FUNCTIONS_SRC, IS_LOCAL }, + constants: { + IS_LOCAL, + INTERNAL_FUNCTIONS_SRC, + PACKAGE_PATH = '', + FUNCTIONS_SRC = join(PACKAGE_PATH, DEFAULT_FUNCTIONS_SRC), + }, imageconfig = {}, netlifyConfig, basePath, diff --git a/packages/runtime/src/index.ts b/packages/runtime/src/index.ts index 92e2991843..cf7e03d26a 100644 --- a/packages/runtime/src/index.ts +++ b/packages/runtime/src/index.ts @@ -213,7 +213,7 @@ const plugin: NetlifyPlugin = { apiLambdas, }) - await writeEdgeFunctions({ netlifyConfig, routesManifest }) + await writeEdgeFunctions({ constants, netlifyConfig, routesManifest }) }, async onPostBuild({ diff --git a/packages/runtime/src/templates/getPageResolver.ts b/packages/runtime/src/templates/getPageResolver.ts index cb07070821..c284c55631 100644 --- a/packages/runtime/src/templates/getPageResolver.ts +++ b/packages/runtime/src/templates/getPageResolver.ts @@ -43,8 +43,8 @@ export const getResolverForDependencies = ({ ` } -export const getResolverForPages = async (publish: string) => { - const functionDir = resolve('.netlify', 'functions', HANDLER_FUNCTION_NAME) +export const getResolverForPages = async (publish: string, packagePath: string) => { + const functionDir = resolve(packagePath, '.netlify', 'functions', HANDLER_FUNCTION_NAME) const dependencies = await getAllPageDependencies(publish) return getResolverForDependencies({ dependencies, functionDir }) } From 879d0294c47b8ea5236539a0eced48fe3e93d078 Mon Sep 17 00:00:00 2001 From: Lukas Holzer Date: Mon, 14 Aug 2023 14:27:56 +0200 Subject: [PATCH 2/2] chore: update netlify/build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4f2863fa31..2e9ff1b8c5 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@babel/preset-env": "^7.15.8", "@babel/preset-typescript": "^7.16.0", "@delucis/if-env": "^1.1.2", - "@netlify/build": "^29.20.3", + "@netlify/build": "^29.20.4", "@netlify/eslint-config-node": "^7.0.1", "@testing-library/cypress": "^9.0.0", "@types/fs-extra": "^9.0.13",