import { type ResourceId, ResourceTypeId, isResourceIdOf, parseResourceIdOf, ResourceIdOf } from '../resource-id.js'; import type { Resource } from '../resource.js'; import type { DataSourceContext } from './context.js'; import type { DataSourceRevision } from './revision.js'; export * from './revision.js'; export * from './context.js'; /** 数据源的资源类型 `'datasource'` */ export type RESOURCE_TYPE = 'datasource'; export const RESOURCE_TYPE = ResourceTypeId('datasource'); /** 数据源 RID */ export type DataSourceId = ResourceId; export const DataSourceId = (ResourceIdOf).bind(undefined, RESOURCE_TYPE); export const parseDataSourceId = (parseResourceIdOf).bind(undefined, RESOURCE_TYPE); export const isDataSourceId = (val: unknown): val is DataSourceId => isResourceIdOf(RESOURCE_TYPE, val); /** 表示一个数据源 */ export interface DataSource extends Resource { /** 数据源版本 */ revision: DataSourceRevision; /** 上下文 */ context: DataSourceContext; }