useTableInfo refactor

This commit is contained in:
Jan Prochazka
2020-04-12 20:01:50 +02:00
parent 648e3a921e
commit cd645afd00

View File

@@ -1,67 +1,66 @@
import useFetch from './useFetch'; import useFetch from './useFetch';
import axios from './axios'; import axios from './axios';
// /** @returns {import('@dbgate/types').TableInfo} */ const tableInfoLoader = ({ conid, database, schemaName, pureName }) => ({
// function makeTableInfo(x) { url: 'metadata/table-info',
// return x; params: { conid, database, schemaName, pureName },
// } reloadTrigger: `database-structure-changed-${conid}-${database}`,
});
// const tableInfoLoader = ({ conid, database, schemaName, pureName }) => ({ async function getCore(loader, args) {
// url: 'metadata/table-info', const { url, params, reloadTrigger } = loader(args);
// params: { conid, database, schemaName, pureName },
// reloadTrigger: `database-structure-changed-${conid}-${database}`,
// type: makeTableInfo,
// });
// function createGet(loader) {
// return async (args) => {
// const { url, params, reloadTrigger, type } = loader(args);
// const resp = await axios.request({
// method: 'get',
// url,
// params,
// });
// return type(resp.data);
// };
// }
// function createUse(loader) {
// return async (args) => {
// const { url, params, reloadTrigger, type } = loader(args);
// const res = useFetch({
// url,
// params,
// reloadTrigger,
// });
// return type(res);
// };
// }
// export const getTableInfo = createGet(tableInfoLoader);
// export const useTableInfo = createUse(tableInfoLoader);
export async function getTableInfo({ conid, database, schemaName, pureName }) {
const resp = await axios.request({ const resp = await axios.request({
method: 'get', method: 'get',
url: 'metadata/table-info', url,
params: { conid, database, schemaName, pureName }, params,
}); });
/** @type {import('@dbgate/types').TableInfo} */ return resp.data;
const res = resp.data; }
function useCore(loader, args) {
const { url, params, reloadTrigger } = loader(args);
const res = useFetch({
url,
params,
reloadTrigger,
});
return res; return res;
} }
export function useTableInfo({ conid, database, schemaName, pureName }) { /** @returns {Promise<import('@dbgate/types').TableInfo>} */
/** @type {import('@dbgate/types').TableInfo} */ export function getTableInfo(args) {
const tableInfo = useFetch({ return getCore(tableInfoLoader, args);
url: 'metadata/table-info',
params: { conid, database, schemaName, pureName },
reloadTrigger: `database-structure-changed-${conid}-${database}`,
});
return tableInfo;
} }
/** @returns {import('@dbgate/types').TableInfo} */
export function useTableInfo(args) {
return useCore(tableInfoLoader, args);
}
// export const useTableInfo = createUse(tableInfoLoader);
// export async function getTableInfo({ conid, database, schemaName, pureName }) {
// const resp = await axios.request({
// method: 'get',
// url: 'metadata/table-info',
// params: { conid, database, schemaName, pureName },
// });
// /** @type {import('@dbgate/types').TableInfo} */
// const res = resp.data;
// return res;
// }
// export function useTableInfo({ conid, database, schemaName, pureName }) {
// /** @type {import('@dbgate/types').TableInfo} */
// const tableInfo = useFetch({
// url: 'metadata/table-info',
// params: { conid, database, schemaName, pureName },
// reloadTrigger: `database-structure-changed-${conid}-${database}`,
// });
// return tableInfo;
// }
export function useViewInfo({ conid, database, schemaName, pureName }) { export function useViewInfo({ conid, database, schemaName, pureName }) {
/** @type {import('@dbgate/types').ViewInfo} */ /** @type {import('@dbgate/types').ViewInfo} */
const viewInfo = useFetch({ const viewInfo = useFetch({