This commit is contained in:
Rizky 2024-06-12 22:26:07 +07:00
parent 073a8cc557
commit 722b8ccea8
1 changed files with 46 additions and 28 deletions

View File

@ -2,6 +2,12 @@ import hash_sum from "hash-sum";
import pako from "pako";
import { fetchViaProxy } from "../proxy";
const schema_promise = {
tables: {} as Record<string, any>,
columns: {} as Record<string, any>,
rels: {} as Record<string, any>,
}
export const dbProxy = (dburl: string) => {
const name = "";
return new Proxy(
@ -37,7 +43,8 @@ export const dbProxy = (dburl: string) => {
if (table === "_schema") {
return {
tables: async () => {
return fetchSendDb(
if (!schema_promise.tables[dburl]) {
schema_promise.tables[dburl] = fetchSendDb(
{
name,
action: "schema_tables",
@ -46,9 +53,13 @@ export const dbProxy = (dburl: string) => {
},
dburl
);
}
return await schema_promise.tables[dburl]
},
columns: async (table: string) => {
return fetchSendDb(
if (!schema_promise.columns[dburl + '_' + table]) {
schema_promise.columns[dburl + '_' + table] = fetchSendDb(
{
name,
action: "schema_columns",
@ -57,9 +68,13 @@ export const dbProxy = (dburl: string) => {
},
dburl
);
}
return await schema_promise.columns[dburl + '_' + table]
},
rels: async (table: string) => {
return fetchSendDb(
if (!schema_promise.rels[dburl + '_' + table]) {
schema_promise.rels[dburl + '_' + table] = fetchSendDb(
{
name,
action: "schema_rels",
@ -68,6 +83,9 @@ export const dbProxy = (dburl: string) => {
},
dburl
);
}
return await schema_promise.rels[dburl + '_' + table]
},
};
}