Revert to external API url.
This commit is contained in:
+11
-20
@@ -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
@@ -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
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user