From 150954290cc6bbd48e69cca5eacfa858cdf676b8 Mon Sep 17 00:00:00 2001 From: arashsheyda Date: Tue, 25 Apr 2023 16:25:42 +0300 Subject: [PATCH] feat: mongodb readyState --- client/app.vue | 5 ++++- client/components/Connection.vue | 34 ++++++++++++++++++++++++++++++++ src/server-rpc/database.ts | 5 ++++- src/types/rpc.ts | 3 ++- 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 client/components/Connection.vue diff --git a/client/app.vue b/client/app.vue index b0e211f..030849d 100644 --- a/client/app.vue +++ b/client/app.vue @@ -1,13 +1,16 @@ diff --git a/client/components/Connection.vue b/client/components/Connection.vue new file mode 100644 index 0000000..f7bd33e --- /dev/null +++ b/client/components/Connection.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/server-rpc/database.ts b/src/server-rpc/database.ts index 67708e9..c2f7d8e 100644 --- a/src/server-rpc/database.ts +++ b/src/server-rpc/database.ts @@ -2,10 +2,13 @@ import { logger } from '@nuxt/kit' import mongoose from 'mongoose' import type { NuxtDevtoolsServerContext, ServerFunctions } from '../types' -export function setupDatabaseRPC({ nuxt, options }: NuxtDevtoolsServerContext): any { +export function setupDatabaseRPC({ options }: NuxtDevtoolsServerContext): any { mongoose.connect(options.uri, options.options) return { + async readyState() { + return mongoose.connection.readyState + }, async createCollection(name: string) { return await mongoose.connection.db.createCollection(name) }, diff --git a/src/types/rpc.ts b/src/types/rpc.ts index a90c32f..ec2d469 100644 --- a/src/types/rpc.ts +++ b/src/types/rpc.ts @@ -1,5 +1,6 @@ export interface ServerFunctions { // Database - collections + readyState(): Promise createCollection(name: string): Promise listCollections(): Promise getCollection(name: string): Promise @@ -27,6 +28,6 @@ export interface Collection { } export interface Resource { - type: string + type: 'index' | 'create' | 'show' | 'put' | 'delete' by?: string }