@mldong/jeeflow 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,11 +19,15 @@ export interface HandlerMeta {
19
19
  /** 分组(拦截器 pre/post 显式声明;其余可为空) */
20
20
  group?: string;
21
21
  }
22
+ /** 内置通用 AssignmentHandler 元数据(v1.6.0 issues/16,注册名与 Java 类全限定名一致,四语言通用) */
23
+ export declare const BUILTIN_ASSIGNMENT_METAS: HandlerMeta[];
22
24
  /** 处理器注册表——按名称注册/解析 + 元数据清单(对标 Spring IoC / Java HandlerRegistry) */
23
25
  export declare class HandlerRegistry {
24
26
  private assignments;
25
27
  private decisions;
26
28
  private metas;
29
+ /** 构造即内置 7 个通用 AssignmentHandler 元数据(v1.6.0 issues/16,注册名与 Java 类全限定名一致) */
30
+ constructor();
27
31
  registerAssignment(name: string, handler: IAssignmentHandler, meta?: Omit<HandlerMeta, 'name'>): void;
28
32
  registerDecision(name: string, handler: IDecisionHandler, meta?: Omit<HandlerMeta, 'name'>): void;
29
33
  resolveAssignment(name: string): IAssignmentHandler | undefined;
package/dist/registry.js CHANGED
@@ -1,8 +1,24 @@
1
+ /** 内置通用 AssignmentHandler 元数据(v1.6.0 issues/16,注册名与 Java 类全限定名一致,四语言通用) */
2
+ export const BUILTIN_ASSIGNMENT_METAS = [
3
+ { name: 'com.mldong.jeeflow.interceptor.impl.OperatorAssignmentHandler', displayName: '流程发起人', order: -9999 },
4
+ { name: 'com.mldong.jeeflow.interceptor.impl.OrgUserAssignmentHandlers$ApplicantDeptLeaderAssignmentHandler', displayName: '发起人所属部门经理', order: 10 },
5
+ { name: 'com.mldong.jeeflow.interceptor.impl.OrgUserAssignmentHandlers$ApplicantDeptMainLeaderAssignmentHandler', displayName: '发起人所属部门分管领导', order: 20 },
6
+ { name: 'com.mldong.jeeflow.interceptor.impl.OrgUserAssignmentHandlers$DeptLeaderAssignmentHandler', displayName: '当前用户所属部门经理', order: 30 },
7
+ { name: 'com.mldong.jeeflow.interceptor.impl.OrgUserAssignmentHandlers$DeptMainLeaderAssignmentHandler', displayName: '当前用户所属部门分管领导', order: 40 },
8
+ { name: 'com.mldong.jeeflow.interceptor.impl.FormFieldAssigneeHandler', displayName: '根据表单字段值分配参与者', order: 50 },
9
+ { name: 'com.mldong.jeeflow.interceptor.impl.OrgUserAssignmentHandlers$TaskRoleAssigneeHandler', displayName: '根据任务节点唯一编码关联角色分配参与者', order: 60 },
10
+ ];
1
11
  /** 处理器注册表——按名称注册/解析 + 元数据清单(对标 Spring IoC / Java HandlerRegistry) */
2
12
  export class HandlerRegistry {
3
13
  assignments = new Map();
4
14
  decisions = new Map();
5
15
  metas = new Map();
16
+ /** 构造即内置 7 个通用 AssignmentHandler 元数据(v1.6.0 issues/16,注册名与 Java 类全限定名一致) */
17
+ constructor() {
18
+ for (const meta of BUILTIN_ASSIGNMENT_METAS) {
19
+ this.metas.set(meta.name, meta);
20
+ }
21
+ }
6
22
  registerAssignment(name, handler, meta) {
7
23
  this.assignments.set(name, handler);
8
24
  if (meta)
@@ -23,9 +39,11 @@ export class HandlerRegistry {
23
39
  /** 按处理器类型列出可用实现的元数据(typeName: AssignmentHandler / DecisionHandler,按 order 升序) */
24
40
  listHandlers(typeName) {
25
41
  const names = typeName === 'AssignmentHandler'
26
- ? [...this.assignments.keys()]
27
- : [...this.decisions.keys()];
28
- return names
42
+ ? [...this.assignments.keys(), ...this.metas.keys()]
43
+ : [...this.decisions.keys(), ...this.metas.keys()];
44
+ // 内置 meta 属于 AssignmentHandler 类型——DecisionHandler 只列注册过的
45
+ const unique = typeName === 'AssignmentHandler' ? names : this.decisions.keys();
46
+ return [...new Set(unique)]
29
47
  .map(n => this.metas.get(n) ?? { name: n })
30
48
  .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
31
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mldong/jeeflow",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "jeeflow workflow engine — Node.js / TypeScript implementation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",