From 8b2b87e09ddb4edac1a351a3c62bd5c8baf44c38 Mon Sep 17 00:00:00 2001 From: Muhammed Mustafa Date: Mon, 7 Nov 2022 19:43:46 +0530 Subject: [PATCH] fix(test): Enabled support for runtime NC_BACKEND_URL and integrated it with CI --- packages/nc-gui/composables/useApi/index.ts | 10 ++++++---- packages/nc-gui/composables/useGlobal/state.ts | 14 ++++++++++++-- packages/nc-gui/lib/constants.ts | 2 +- packages/nc-gui/nuxt.config.ts | 6 ++++++ packages/nc-gui/package.json | 2 +- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/nc-gui/composables/useApi/index.ts b/packages/nc-gui/composables/useApi/index.ts index 57f86042b9..0d196de4aa 100644 --- a/packages/nc-gui/composables/useApi/index.ts +++ b/packages/nc-gui/composables/useApi/index.ts @@ -3,14 +3,16 @@ import { Api } from 'nocodb-sdk' import type { Ref } from 'vue' import type { CreateApiOptions, UseApiProps, UseApiReturn } from './types' import { addAxiosInterceptors } from './interceptors' -import { BASE_URL, createEventHook, extractSdkResponseErrorMsg, ref, unref, useCounter, useGlobal, useNuxtApp } from '#imports' +import { BASE_FALLBACK_URL, createEventHook, extractSdkResponseErrorMsg, ref, unref, useCounter, useNuxtApp } from '#imports' -export function createApiInstance({ baseURL = BASE_URL }: CreateApiOptions = {}): Api { - const { appInfo } = $(useGlobal()) +export function createApiInstance({ + baseURL = BASE_FALLBACK_URL, +}: CreateApiOptions = {}): Api { + const config = useRuntimeConfig() return addAxiosInterceptors( new Api({ - baseURL: baseURL ?? appInfo.ncSiteUrl, + baseURL: config.public.ncBackendUrl || baseURL, }), ) } diff --git a/packages/nc-gui/composables/useGlobal/state.ts b/packages/nc-gui/composables/useGlobal/state.ts index ab8b01c173..9aecfb5c24 100644 --- a/packages/nc-gui/composables/useGlobal/state.ts +++ b/packages/nc-gui/composables/useGlobal/state.ts @@ -1,7 +1,17 @@ import { useStorage } from '@vueuse/core' import type { JwtPayload } from 'jwt-decode' import type { AppInfo, State, StoredState } from './types' -import { BASE_URL, computed, ref, toRefs, useCounter, useJwt, useNuxtApp, usePreferredLanguages, useTimestamp } from '#imports' +import { + BASE_FALLBACK_URL, + computed, + ref, + toRefs, + useCounter, + useJwt, + useNuxtApp, + usePreferredLanguages, + useTimestamp, +} from '#imports' import type { Language, User } from '~/lib' export function useGlobalState(storageKey = 'nocodb-gui-v2'): State { @@ -75,7 +85,7 @@ export function useGlobalState(storageKey = 'nocodb-gui-v2'): State { }) const appInfo = ref({ - ncSiteUrl: BASE_URL, + ncSiteUrl: BASE_FALLBACK_URL, authType: 'jwt', connectToExternalDB: false, defaultLimit: 0, diff --git a/packages/nc-gui/lib/constants.ts b/packages/nc-gui/lib/constants.ts index 3c197e05b1..e8903720ad 100644 --- a/packages/nc-gui/lib/constants.ts +++ b/packages/nc-gui/lib/constants.ts @@ -4,7 +4,7 @@ export const NOCO = 'noco' export const SYSTEM_COLUMNS = ['id', 'title', 'created_at', 'updated_at'] -export const BASE_URL = import.meta.env.NC_BACKEND_URL || (process.env.NODE_ENV === 'production' ? '..' : 'http://localhost:8080') +export const BASE_FALLBACK_URL = process.env.NODE_ENV === 'production' ? '..' : 'http://localhost:8080' /** * Each permission value means the following * `*` - which is wildcard, means all permissions are allowed diff --git a/packages/nc-gui/nuxt.config.ts b/packages/nc-gui/nuxt.config.ts index d4c52bb6a9..f520453e6a 100644 --- a/packages/nc-gui/nuxt.config.ts +++ b/packages/nc-gui/nuxt.config.ts @@ -35,6 +35,12 @@ export default defineNuxtConfig({ '~/assets/style.scss', ], + runtimeConfig: { + public: { + ncBackendUrl: '', + }, + }, + meta: { title: 'NocoDB', link: [ diff --git a/packages/nc-gui/package.json b/packages/nc-gui/package.json index 475d11e6d9..27a9142e8a 100644 --- a/packages/nc-gui/package.json +++ b/packages/nc-gui/package.json @@ -28,7 +28,7 @@ "build:copy": "npm run generate; rm -rf ../nc-lib-gui/lib/dist/; rsync -rvzh ./dist/ ../nc-lib-gui/lib/dist/", "build:copy:publish": "npm run generate; rm -rf ../nc-lib-gui/lib/dist/; rsync -rvzh ./dist/ ../nc-lib-gui/lib/dist/; npm publish ../nc-lib-gui", "postinstall": "node scripts/updateNuxtRouting.js", - "ci:run": "export NODE_OPTIONS=\"--max_old_space_size=16384\"; npm install; npm run build; NC_BACKEND_URL=http://localhost:8080 npm run start &" + "ci:run": "export NODE_OPTIONS=\"--max_old_space_size=16384\"; npm install; npm run build; NUXT_PUBLIC_NC_BACKEND_URL=http://localhost:8080 npm run start &" }, "dependencies": { "@ckpack/vue-color": "^1.2.0",