UNPKG

drizzle-cube

Version:

Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.

40 lines (39 loc) 1.07 kB
import { CubeClient } from '../client/CubeClient'; export interface CubeMetaField { name: string; title: string; shortTitle: string; type: string; } export interface CubeMetaRelationship { targetCube: string; relationship: 'belongsTo' | 'hasOne' | 'hasMany'; joinFields: Array<{ sourceField: string; targetField: string; }>; } export interface CubeMetaCube { name: string; title: string; description?: string; measures: CubeMetaField[]; dimensions: CubeMetaField[]; segments: CubeMetaField[]; relationships?: CubeMetaRelationship[]; } export interface CubeMeta { cubes: CubeMetaCube[]; } export type FieldLabelMap = Record<string, string>; interface UseCubeMetaResult { meta: CubeMeta | null; labelMap: FieldLabelMap; loading: boolean; error: string | null; refetch: () => void; getFieldLabel: (fieldName: string) => string; } export declare function clearMetaCache(): void; export declare function useCubeMeta(cubeApi: CubeClient): UseCubeMetaResult; export {};