import { type ResourceId, ResourceTypeId, isResourceIdOf, parseResourceIdOf, ResourceIdOf } from '../resource-id.js'; import type { Resource } from '../resource.js'; import type { ApplicationContext } from './context.js'; import type { ApplicationRevision } from './revision.js'; export * from './revision.js'; export * from './context.js'; export * from './asset.js'; export * from './scene.js'; /** 应用的资源类型 `'application'` */ export type RESOURCE_TYPE = 'application'; export const RESOURCE_TYPE = ResourceTypeId('application'); /** 应用 RID */ export type ApplicationId = ResourceId; export const ApplicationId = (ResourceIdOf).bind(undefined, RESOURCE_TYPE); export const parseApplicationId = (parseResourceIdOf).bind(undefined, RESOURCE_TYPE); export const isApplicationId = (val: unknown): val is ApplicationId => isResourceIdOf(RESOURCE_TYPE, val); /** 表示一个应用 */ export interface Application extends Resource { /** 应用版本 */ revision: ApplicationRevision; /** 上下文 */ context: ApplicationContext; }