Revert to external API url.

This commit is contained in:
Mike Cao
2026-06-04 17:32:25 -07:00
parent 9ced9ac85a
commit 7de662a71e
3 changed files with 28 additions and 24 deletions
+11 -20
View File
@@ -123,7 +123,6 @@ if (isProd) {
} }
const rewrites = []; const rewrites = [];
const beforeFilesRewrites = [];
if (trackerScriptURL) { if (trackerScriptURL) {
rewrites.push({ rewrites.push({
@@ -158,11 +157,6 @@ if (isRelativeUrl(apiUrl)) {
destination: '/api/:path*', destination: '/api/:path*',
}); });
} }
} else if (apiUrl) {
beforeFilesRewrites.push({
source: '/api/:path((?!auth(?:/|$)|config(?:/|$)).*)',
destination: `${apiUrl.replace(/\/+$/, '')}/:path`,
});
} }
const redirects = [ const redirects = [
@@ -250,20 +244,17 @@ export default withNextIntl({
return headers; return headers;
}, },
async rewrites() { async rewrites() {
return { return [
beforeFiles: beforeFilesRewrites, ...rewrites,
afterFiles: [ {
...rewrites, source: '/telemetry.js',
{ destination: '/api/scripts/telemetry',
source: '/telemetry.js', },
destination: '/api/scripts/telemetry', {
}, source: '/teams/:teamId/:path*',
{ destination: '/:path*',
source: '/teams/:teamId/:path*', },
destination: '/:path*', ];
},
],
};
}, },
async redirects() { async redirects() {
return [...redirects]; return [...redirects];
+11 -2
View File
@@ -2,13 +2,22 @@ import { describe, expect, test } from 'vitest';
import { getApiUrl } from './api-url'; import { getApiUrl } from './api-url';
describe('getApiUrl', () => { describe('getApiUrl', () => {
test('uses the local api path when API_URL is absolute', () => { test('calls an absolute API_URL directly', () => {
expect( expect(
getApiUrl('/websites', { getApiUrl('/websites', {
apiUrl: 'https://gateway-eu.umami.dev/api', apiUrl: 'https://gateway-eu.umami.dev/api',
basePath: '/analytics', basePath: '/analytics',
}), }),
).toBe('/analytics/api/websites'); ).toBe('https://gateway-eu.umami.dev/api/websites');
});
test('keeps app routes on the local api path when API_URL is absolute', () => {
expect(
getApiUrl('/auth/verify', {
apiUrl: 'https://gateway-eu.umami.dev/api',
basePath: '/analytics',
}),
).toBe('/analytics/api/auth/verify');
}); });
test('uses a relative API_URL under the base path', () => { test('uses a relative API_URL under the base path', () => {
+6 -2
View File
@@ -39,8 +39,12 @@ export function getApiUrl(url: string, options: ApiUrlOptions = {}) {
} }
const { apiUrl = process.env.apiUrl || '', basePath = process.env.basePath || '' } = options; const { apiUrl = process.env.apiUrl || '', basePath = process.env.basePath || '' } = options;
const useApiUrl = apiUrl && !isAbsoluteUrl(apiUrl) && !isAppRoute(url); const useApiUrl = apiUrl && !isAppRoute(url);
const baseUrl = useApiUrl ? joinPath(basePath, apiUrl) : joinPath(basePath, '/api'); const baseUrl = useApiUrl
? isAbsoluteUrl(apiUrl)
? apiUrl
: joinPath(basePath, apiUrl)
: joinPath(basePath, '/api');
return joinPath(baseUrl, url); return joinPath(baseUrl, url);
} }