From 52455a75d0a32ff71668a992327e6e28b23abf2b Mon Sep 17 00:00:00 2001 From: 1ilit Date: Mon, 8 Jul 2024 03:21:43 +0300 Subject: [PATCH] Make databases a proxy --- src/data/databases.js | 83 ++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/src/data/databases.js b/src/data/databases.js index b73625d..55c9187 100644 --- a/src/data/databases.js +++ b/src/data/databases.js @@ -6,44 +6,47 @@ import mssqlImage from "../assets/mssql-icon.png"; import i18n from "../i18n/i18n"; import { DB } from "./constants"; -export const databases = { - [DB.MYSQL]: { - name: "MySQL", - label: DB.MYSQL, - image: mysqlImage, - hasTypes: false, +export const databases = new Proxy( + { + [DB.MYSQL]: { + name: "MySQL", + label: DB.MYSQL, + image: mysqlImage, + hasTypes: false, + }, + [DB.POSTGRES]: { + name: "PostgreSQL", + label: DB.POSTGRES, + image: postgresImage, + hasTypes: true, + hasEnums: true, + hasArrays: true, + }, + [DB.SQLITE]: { + name: "SQLite", + label: DB.SQLITE, + image: sqliteImage, + hasTypes: false, + }, + [DB.MARIADB]: { + name: "MariaDB", + label: DB.MARIADB, + image: mariadbImage, + hasTypes: false, + }, + [DB.MSSQL]: { + name: "MSSQL", + label: DB.MSSQL, + image: mssqlImage, + hasTypes: false, + }, + [DB.GENERIC]: { + name: i18n.t("generic"), + label: DB.GENERIC, + image: null, + description: i18n.t("generic_description"), + hasTypes: true, + }, }, - [DB.POSTGRES]: { - name: "PostgreSQL", - label: DB.POSTGRES, - image: postgresImage, - hasTypes: true, - hasEnums: true, - hasArrays: true, - }, - [DB.SQLITE]: { - name: "SQLite", - label: DB.SQLITE, - image: sqliteImage, - hasTypes: false, - }, - [DB.MARIADB]: { - name: "MariaDB", - label: DB.MARIADB, - image: mariadbImage, - hasTypes: false, - }, - [DB.MSSQL]: { - name: "MSSQL", - label: DB.MSSQL, - image: mssqlImage, - hasTypes: false, - }, - [DB.GENERIC]: { - name: i18n.t("generic"), - label: DB.GENERIC, - image: null, - description: i18n.t("generic_description"), - hasTypes: true, - }, -}; + { get: (target, prop) => (prop in target ? target[prop] : {}) }, +);