Extract processor (#9614)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov
2025-07-30 18:06:22 +07:00
committed by GitHub
parent f3c4de0a44
commit 5dd225dd51
36 changed files with 1571 additions and 1436 deletions
+7 -2
View File
@@ -3,7 +3,7 @@ import type { Plugin, Resource } from '@hcengineering/platform'
import { plugin } from '@hcengineering/platform'
import { CheckFunc, Method, ProcessFunction, Trigger } from '@hcengineering/process'
import { TriggerFunc } from '@hcengineering/server-core'
import { ExecuteFunc, TransformFunc } from './types'
import { ExecuteFunc, RollbackFunc, TransformFunc } from './types'
export * from './types'
@@ -14,6 +14,8 @@ export const serverProcessId = 'server-process' as Plugin
export interface TriggerImpl extends Trigger {
serverCheckFunc?: Resource<CheckFunc>
rollbackFunc?: Resource<RollbackFunc>
preventRollback?: boolean
}
export interface MethodImpl<T extends Doc> extends Method<T> {
@@ -33,6 +35,10 @@ export default plugin(serverProcessId, {
FuncImpl: '' as Ref<Mixin<FuncImpl>>,
TriggerImpl: '' as Ref<Mixin<TriggerImpl>>
},
rollbacks: {
ToDoCloseRollback: '' as Resource<RollbackFunc>,
ToDoCancellRollback: '' as Resource<RollbackFunc>
},
func: {
RunSubProcess: '' as Resource<ExecuteFunc>,
CreateToDo: '' as Resource<ExecuteFunc>,
@@ -81,7 +87,6 @@ export default plugin(serverProcessId, {
OnProcessRemove: '' as Resource<TriggerFunc>,
OnStateRemove: '' as Resource<TriggerFunc>,
OnExecutionCreate: '' as Resource<TriggerFunc>,
OnExecutionTransition: '' as Resource<TriggerFunc>,
OnProcessToDoClose: '' as Resource<TriggerFunc>,
OnProcessToDoRemove: '' as Resource<TriggerFunc>,
OnExecutionContinue: '' as Resource<TriggerFunc>
+22 -5
View File
@@ -1,11 +1,11 @@
import { Doc, Tx } from '@hcengineering/core'
import { Execution, ExecutionError, MethodParams } from '@hcengineering/process'
import { TriggerControl } from '@hcengineering/server-core'
import { Card } from '@hcengineering/card'
import { Doc, MeasureContext, PersonId, Ref, Tx, TxOperations } from '@hcengineering/core'
import { Execution, ExecutionError, MethodParams, Trigger } from '@hcengineering/process'
export type ExecuteFunc = (
params: MethodParams<Doc>,
execution: Execution,
control: TriggerControl
control: ProcessControl
) => Promise<ExecuteResult>
export type ExecuteResult = SuccessExecutionResult | ExecutionError
@@ -19,6 +19,23 @@ export interface SuccessExecutionResult {
export type TransformFunc = (
value: any,
props: Record<string, any>,
control: TriggerControl,
control: ProcessControl,
execution: Execution
) => Promise<any>
export interface ProcessMessage {
account: PersonId
event: Ref<Trigger>
context: Record<string, any>
execution?: Ref<Execution>
card?: Ref<Card>
}
export interface ProcessControl {
ctx: MeasureContext
client: TxOperations
cache: Map<string, any>
messageContext: Record<string, any>
}
export type RollbackFunc = (context: Record<string, any>, control: ProcessControl) => Tx