From 70fa94635840a925e03062dd2d1e1f28bf9d3178 Mon Sep 17 00:00:00 2001 From: Favour Emeka Date: Thu, 30 Jan 2025 18:49:30 +0100 Subject: [PATCH] support for supabase and database modules --- CHANGELOG.md | 12 ++++++++ .../databaseModules/supabase/nuxtConfig.ts | 30 +++++++++++++++++++ scripts/modules.ts | 9 ++++++ scripts/questions.ts | 9 ++++++ scripts/types.ts | 2 ++ 5 files changed, 62 insertions(+) create mode 100644 scripts/moduleConfigs/databaseModules/supabase/nuxtConfig.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 79022af..340ceda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.0.10] - 2024-12-20 + +### Added +- New Database Modules category +- Added Supabase as the first database module + +### Changed +- Nothing was changed + +### Fixed +- Nothing was fixed + ## [ 1.0.9 ] - 2024-12-17 ### Added diff --git a/scripts/moduleConfigs/databaseModules/supabase/nuxtConfig.ts b/scripts/moduleConfigs/databaseModules/supabase/nuxtConfig.ts new file mode 100644 index 0000000..1a17357 --- /dev/null +++ b/scripts/moduleConfigs/databaseModules/supabase/nuxtConfig.ts @@ -0,0 +1,30 @@ +export default { + supabase: { + url: process.env.NUXT_PUBLIC_SUPABASE_URL, + key: process.env.NUXT_PUBLIC_SUPABASE_KEY, + serviceKey: process.env.NUXT_SUPABASE_SERVICE_KEY, + redirect: true, + redirectOptions: { + login: '/login', + callback: '/confirm', + include: undefined, + exclude: [], + cookieRedirect: true, + }, + clientOptions: { + auth: { + flowType: 'implicit', + autoRefreshToken: true, + detectSessionInUrl: true, + persistSession: true, + }, + }, + cookieName: 'sb', + cookieOptions: { + maxAge: 60 * 60 * 8, + sameSite: 'lax', + secure: true, + }, + types: './types/database.types.ts', + } +} \ No newline at end of file diff --git a/scripts/modules.ts b/scripts/modules.ts index bcc4efb..c68b2f9 100644 --- a/scripts/modules.ts +++ b/scripts/modules.ts @@ -67,6 +67,15 @@ const nuxtModules: Record = { additionalNpmPackages: ['pinia'], nuxtConfigConfiguration: getModuleConfigs('extensionModules', 'pinia', 'nuxtConfiguration') } + ], + databaseModules: [ + { + name: 'Supabase', + nuxtConfigValue: '@nuxtjs/supabase', + npmPackageName: '@nuxtjs/supabase', + additionalNpmPackages: ['supabase'], + nuxtConfigConfiguration: getModuleConfigs('databaseModules', 'supabase', 'nuxtConfiguration') + } ] } diff --git a/scripts/questions.ts b/scripts/questions.ts index caa6c03..919232e 100644 --- a/scripts/questions.ts +++ b/scripts/questions.ts @@ -52,6 +52,15 @@ const questions: Question[] = [ name: extensionModule.name, value: extensionModule.nuxtConfigValue, })) || [] + }, + { + type: 'checkbox', + name: 'databaseModules', + message: 'Select Database Modules:', + choices: nuxtModules.databaseModules?.map(databaseModule => ({ + name: databaseModule.name, + value: databaseModule.nuxtConfigValue, + })) || [] } ]; diff --git a/scripts/types.ts b/scripts/types.ts index 2fab6bd..2bdfa0c 100644 --- a/scripts/types.ts +++ b/scripts/types.ts @@ -34,6 +34,8 @@ interface Answers { cmsModules: string[]; /** The selected extension modules (e.g., 'pinia') */ extensionModules: string[]; + /** The selected database modules (e.g., 'supabase') */ + databaseModules: string[]; } /** Interface for the CLI Questionnaires */