@celom/prose 0.1.4 → 0.2.0

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.
package/dist/index.js CHANGED
@@ -362,6 +362,9 @@ class f {
362
362
  return new f(
363
363
  this.name,
364
364
  {
365
+ // Safe assertion: at runtime the executor passes the actual ORM tx object,
366
+ // which matches the inferred type. The step definition uses `unknown` for
367
+ // storage but contravariance prevents direct assignment.
365
368
  head: { name: e, type: "transaction", handler: t },
366
369
  tail: this.steps
367
370
  },
@@ -3,6 +3,15 @@ type StepNode<T> = {
3
3
  readonly head: T;
4
4
  readonly tail: StepNode<T> | null;
5
5
  };
6
+ /**
7
+ * Infer the transaction client type from the deps' db.transaction signature.
8
+ * Falls back to `unknown` when TDeps is `never` or db is absent/untyped.
9
+ */
10
+ type InferTransactionClient<TDeps> = [TDeps] extends [never] ? unknown : TDeps extends {
11
+ db: {
12
+ transaction(fn: (tx: infer Tx) => any): any;
13
+ };
14
+ } ? Tx : unknown;
6
15
  /**
7
16
  * Converts a union type to an intersection type.
8
17
  * Used to merge return types from parallel/sequence handlers.
@@ -37,7 +46,7 @@ export declare class FlowBuilder<TInput, TDeps extends BaseFlowDependencies, TSt
37
46
  /**
38
47
  * Add a transaction step for database operations
39
48
  */
40
- transaction<TResult extends object>(name: string, handler: (ctx: FlowContext<TInput, TDeps, TState>, tx: unknown) => TResult | Promise<TResult>): FlowBuilder<TInput, TDeps, TResult & TState, TMapperOutput, TBreakOutputs>;
49
+ transaction<TResult extends object>(name: string, handler: (ctx: FlowContext<TInput, TDeps, TState>, tx: InferTransactionClient<TDeps>) => TResult | Promise<TResult>): FlowBuilder<TInput, TDeps, TResult & TState, TMapperOutput, TBreakOutputs>;
41
50
  /**
42
51
  * Add an event publishing step with explicit channel
43
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"flow-builder.d.ts","sourceRoot":"","sources":["../../src/lib/flow-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-builder.d.ts","sourceRoot":"","sources":["../../src/lib/flow-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celom/prose",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
5
  "author": "Carlos Mimoso",
6
6
  "description": "Declarative workflow DSL for orchestrating complex business operations in Javascript/Typescript.",