import { type ResourceId, ResourceTypeId, isResourceIdOf, parseResourceIdOf, ResourceIdOf } from '../resource-id.js'; import type { Resource } from '../resource.js'; import type { RootFuncConfiguration } from './configuration.js'; import type { FuncContext } from './context.js'; import type { JobLocalMachine } from './executor.js'; import type { FuncRevision } from './revision.js'; export * from './revision.js'; export * from './executor.js'; export * from './configuration.js'; export * from './context.js'; /** 函数的资源类型 `'function'` */ export type RESOURCE_TYPE = 'function'; export const RESOURCE_TYPE = ResourceTypeId('function'); /** 函数 RID */ export type FuncId = ResourceId; export const FuncId = (ResourceIdOf).bind(undefined, RESOURCE_TYPE); export const parseFuncId = (parseResourceIdOf).bind(undefined, RESOURCE_TYPE); export const isFuncId = (val: unknown): val is FuncId => isResourceIdOf(RESOURCE_TYPE, val); /** 表示一个函数 */ export interface Func extends Resource { /** 函数版本 */ revision: FuncRevision; /** 函数的参数配置 */ configs: RootFuncConfiguration[]; /** 上下文 */ context: FuncContext; /** 执行器 */ jobExecutor?: JobLocalMachine; }