@flowcore/pathways 0.10.0 → 0.12.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/CHANGELOG.md +98 -55
- package/README.md +128 -124
- package/esm/common/index.d.ts.map +1 -1
- package/esm/contracts/index.d.ts.map +1 -1
- package/esm/mod.d.ts.map +1 -1
- package/esm/pathways/builder.d.ts +63 -9
- package/esm/pathways/builder.d.ts.map +1 -1
- package/esm/pathways/builder.js +203 -41
- package/esm/pathways/index.d.ts.map +1 -1
- package/esm/pathways/internal-pathway.state.d.ts.map +1 -1
- package/esm/pathways/kv/bun-kv-adapter.d.ts.map +1 -1
- package/esm/pathways/kv/kv-adapter.d.ts +2 -2
- package/esm/pathways/kv/kv-adapter.d.ts.map +1 -1
- package/esm/pathways/kv/node-kv-adapter.d.ts.map +1 -1
- package/esm/pathways/kv/node-kv-adapter.js +1 -1
- package/esm/pathways/logger.js +7 -7
- package/esm/pathways/postgres/index.d.ts.map +1 -1
- package/esm/pathways/postgres/postgres-adapter.d.ts.map +1 -1
- package/esm/pathways/postgres/postgres-adapter.js +3 -2
- package/esm/pathways/session-pathway.d.ts.map +1 -1
- package/esm/pathways/session-pathway.js +3 -3
- package/esm/pathways/types.d.ts +7 -2
- package/esm/pathways/types.d.ts.map +1 -1
- package/esm/router/index.d.ts.map +1 -1
- package/esm/router/index.js +4 -4
- package/package.json +1 -1
- package/script/common/index.d.ts.map +1 -1
- package/script/contracts/index.d.ts.map +1 -1
- package/script/mod.d.ts.map +1 -1
- package/script/pathways/builder.d.ts +63 -9
- package/script/pathways/builder.d.ts.map +1 -1
- package/script/pathways/builder.js +205 -42
- package/script/pathways/index.d.ts.map +1 -1
- package/script/pathways/internal-pathway.state.d.ts.map +1 -1
- package/script/pathways/kv/bun-kv-adapter.d.ts.map +1 -1
- package/script/pathways/kv/kv-adapter.d.ts +2 -2
- package/script/pathways/kv/kv-adapter.d.ts.map +1 -1
- package/script/pathways/kv/node-kv-adapter.d.ts.map +1 -1
- package/script/pathways/kv/node-kv-adapter.js +1 -1
- package/script/pathways/logger.js +7 -7
- package/script/pathways/postgres/index.d.ts.map +1 -1
- package/script/pathways/postgres/postgres-adapter.d.ts.map +1 -1
- package/script/pathways/postgres/postgres-adapter.js +3 -2
- package/script/pathways/session-pathway.d.ts.map +1 -1
- package/script/pathways/session-pathway.js +3 -3
- package/script/pathways/types.d.ts +7 -2
- package/script/pathways/types.d.ts.map +1 -1
- package/script/router/index.d.ts.map +1 -1
- package/script/router/index.js +4 -4
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
*/
|
|
5
5
|
function generateUUID() {
|
|
6
6
|
// Check for Deno or browser crypto.randomUUID support
|
|
7
|
-
if (typeof crypto !==
|
|
7
|
+
if (typeof crypto !== "undefined" && crypto.randomUUID) {
|
|
8
8
|
return crypto.randomUUID();
|
|
9
9
|
}
|
|
10
10
|
// Fallback to manual UUID generation (compatible with all platforms)
|
|
11
11
|
// Implementation based on RFC4122 version 4
|
|
12
|
-
return
|
|
12
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
13
13
|
const r = Math.random() * 16 | 0;
|
|
14
|
-
const v = c ===
|
|
14
|
+
const v = c === "x" ? r : (r & 0x3 | 0x8);
|
|
15
15
|
return v.toString(16);
|
|
16
16
|
});
|
|
17
17
|
}
|
package/esm/pathways/types.d.ts
CHANGED
|
@@ -89,6 +89,11 @@ export interface EventMetadata extends Record<string, unknown> {
|
|
|
89
89
|
* @template EventPayload The type of the event payload
|
|
90
90
|
*/
|
|
91
91
|
export type SendWebhook<EventPayload> = (payload: EventPayload, metadata?: EventMetadata, options?: WebhookSendOptions) => Promise<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Function type for sending batch events to a webhook
|
|
94
|
+
* @template EventPayload The type of the event payload
|
|
95
|
+
*/
|
|
96
|
+
export type SendWebhookBatch<EventPayload> = (payload: EventPayload[], metadata?: EventMetadata, options?: WebhookSendOptions) => Promise<string[]>;
|
|
92
97
|
/**
|
|
93
98
|
* Function type for sending a file to a webhook
|
|
94
99
|
*/
|
|
@@ -108,12 +113,12 @@ export type PathwayState = {
|
|
|
108
113
|
* @param eventId The ID of the event to check
|
|
109
114
|
* @returns Boolean indicating if the event has been processed
|
|
110
115
|
*/
|
|
111
|
-
isProcessed: (eventId: string) =>
|
|
116
|
+
isProcessed: (eventId: string) => boolean | Promise<boolean>;
|
|
112
117
|
/**
|
|
113
118
|
* Marks an event as processed
|
|
114
119
|
* @param eventId The ID of the event to mark as processed
|
|
115
120
|
*/
|
|
116
|
-
setProcessed: (eventId: string) =>
|
|
121
|
+
setProcessed: (eventId: string) => void | Promise<void>;
|
|
117
122
|
};
|
|
118
123
|
/**
|
|
119
124
|
* Options for pathway writes, extending WebhookSendOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pathways/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEzF;;;GAGG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pathways/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEzF;;;GAGG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,yBAAyB,EAChC,wGAAwG,CAAA;CAC3G,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO;IACpF;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAA;IAEX;;OAEG;IACH,SAAS,EAAE,CAAC,CAAA;IAEZ;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IAET;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEjE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,YAAY,IAAI,CACtC,OAAO,EAAE,YAAY,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpB;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,YAAY,IAAI,CAC3C,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAEtB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAEtB;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,IAAI,UAAU,SAAS,KAAK,GAChG,uBAAuB,CAAC,CAAC,CAAC,GAC1B,CAAC,CAAA;AAEL;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5D;;;OAGG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;;;;;;OAOG;gBAGgB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC9C,SAAS,EAAE,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM;IAajB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACG,YAAY,CAChB,KAAK,EAAE,mBAAmB,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkDlD"}
|
package/esm/router/index.js
CHANGED
|
@@ -142,7 +142,7 @@ export class PathwayRouter {
|
|
|
142
142
|
};
|
|
143
143
|
const pathwayKey = `${compatibleEvent.flowType}/${compatibleEvent.eventType}`;
|
|
144
144
|
this.logger.debug(`Processing event for pathway: ${pathwayKey}`, {
|
|
145
|
-
eventId: compatibleEvent.eventId
|
|
145
|
+
eventId: compatibleEvent.eventId,
|
|
146
146
|
});
|
|
147
147
|
const pathway = this.pathways.get(pathwayKey);
|
|
148
148
|
if (!pathway) {
|
|
@@ -153,19 +153,19 @@ export class PathwayRouter {
|
|
|
153
153
|
try {
|
|
154
154
|
this.logger.debug(`Delegating event processing to pathway handler`, {
|
|
155
155
|
pathwayKey,
|
|
156
|
-
eventId: compatibleEvent.eventId
|
|
156
|
+
eventId: compatibleEvent.eventId,
|
|
157
157
|
});
|
|
158
158
|
await this.pathways.process(pathwayKey, compatibleEvent);
|
|
159
159
|
this.logger.debug(`Event successfully processed through pathway`, {
|
|
160
160
|
pathwayKey,
|
|
161
|
-
eventId: compatibleEvent.eventId
|
|
161
|
+
eventId: compatibleEvent.eventId,
|
|
162
162
|
});
|
|
163
163
|
return { success: true, message: `Event processed through pathway ${pathwayKey}` };
|
|
164
164
|
}
|
|
165
165
|
catch (error) {
|
|
166
166
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
167
167
|
this.logger.error(`Error processing pathway ${pathwayKey}`, errorObj, {
|
|
168
|
-
eventId: compatibleEvent.eventId
|
|
168
|
+
eventId: compatibleEvent.eventId,
|
|
169
169
|
});
|
|
170
170
|
// Rethrow the error with additional context
|
|
171
171
|
throw new Error(`Failed to process event in pathway ${pathwayKey}: ${errorObj.message}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowcore/pathways",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "A TypeScript Library for creating Flowcore Pathways, simplifying the integration with the flowcore platform",
|
|
5
5
|
"homepage": "https://github.com/flowcore-io/flowcore-pathways#readme",
|
|
6
6
|
"repository": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,YAAY,CAAA"}
|
package/script/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,mBAAmB,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Static, type TSchema } from "@sinclair/typebox";
|
|
2
2
|
import type { WebhookSendOptions } from "@flowcore/sdk-transformer-core";
|
|
3
3
|
import type { FlowcoreEvent } from "../contracts/event.js";
|
|
4
|
-
import type { KvAdapter } from "./kv/kv-adapter.js";
|
|
5
4
|
import type { Logger } from "./logger.js";
|
|
6
5
|
import type { EventMetadata, PathwayContract, PathwayKey, PathwayState, PathwayWriteOptions, WritablePathway } from "./types.js";
|
|
7
6
|
/**
|
|
@@ -30,6 +29,57 @@ export interface AuditWebhookSendOptions extends WebhookSendOptions {
|
|
|
30
29
|
*/
|
|
31
30
|
headers?: Record<string, string>;
|
|
32
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* SessionUserResolver is a key-value store for storing and retrieving UserIdResolver functions
|
|
34
|
+
* with a TTL (time to live).
|
|
35
|
+
*
|
|
36
|
+
* This allows for session-specific user resolvers to be stored and reused across different
|
|
37
|
+
* sessions or operations.
|
|
38
|
+
*/
|
|
39
|
+
export interface SessionUserResolver {
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves a UserIdResolver from the session user resolver store
|
|
42
|
+
* @param key The key to retrieve the UserIdResolver for
|
|
43
|
+
* @returns The UserIdResolver or undefined if it doesn't exist
|
|
44
|
+
*/
|
|
45
|
+
get(key: string): Promise<UserIdResolver | undefined> | UserIdResolver | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Stores a UserIdResolver in the session user resolver store
|
|
48
|
+
* @param key The key to store the UserIdResolver under
|
|
49
|
+
* @param value The UserIdResolver to store
|
|
50
|
+
* @param ttlMs The time to live for the UserIdResolver in milliseconds
|
|
51
|
+
*/
|
|
52
|
+
set(key: string, value: UserIdResolver, ttlMs: number): Promise<void> | void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* SessionUserResolver implementation that uses a Map to store UserIdResolver functions
|
|
56
|
+
* with a TTL (time to live).
|
|
57
|
+
*/
|
|
58
|
+
export declare class SessionUser implements SessionUserResolver {
|
|
59
|
+
/**
|
|
60
|
+
* The underlying Map that stores UserIdResolver functions and their timeouts
|
|
61
|
+
* Using unknown for timeout to support both Node.js and Deno timer types
|
|
62
|
+
*/
|
|
63
|
+
private store;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a new SessionUser instance
|
|
66
|
+
*/
|
|
67
|
+
constructor();
|
|
68
|
+
/**
|
|
69
|
+
* Retrieves a UserIdResolver from the session user resolver store
|
|
70
|
+
* @param key The key to retrieve the UserIdResolver for
|
|
71
|
+
* @returns The UserIdResolver or undefined if it doesn't exist
|
|
72
|
+
*/
|
|
73
|
+
get(key: string): UserIdResolver | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Stores a UserIdResolver in the session user resolver store
|
|
76
|
+
* @param key The key to store the UserIdResolver under
|
|
77
|
+
* @param value The UserIdResolver to store
|
|
78
|
+
* @param ttlMs The time to live for the UserIdResolver in milliseconds
|
|
79
|
+
* @default 5 minutes
|
|
80
|
+
*/
|
|
81
|
+
set(key: string, value: UserIdResolver, ttlMs?: number): void;
|
|
82
|
+
}
|
|
33
83
|
/**
|
|
34
84
|
* Main builder class for creating and managing Flowcore pathways
|
|
35
85
|
*
|
|
@@ -52,6 +102,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
52
102
|
private readonly errorObservers;
|
|
53
103
|
private readonly globalErrorSubject;
|
|
54
104
|
private readonly writers;
|
|
105
|
+
private readonly batchWriters;
|
|
55
106
|
private readonly schemas;
|
|
56
107
|
private readonly writable;
|
|
57
108
|
private readonly timeouts;
|
|
@@ -78,16 +129,18 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
78
129
|
* @param options.apiKey The API key for authentication
|
|
79
130
|
* @param options.pathwayTimeoutMs Optional timeout for pathway processing in milliseconds
|
|
80
131
|
* @param options.logger Optional logger instance
|
|
81
|
-
* @param options.
|
|
132
|
+
* @param options.enableSessionUserResolvers Whether to enable session user resolvers
|
|
133
|
+
* @param options.overrideSessionUserResolvers Optional SessionUserResolver instance to override the default
|
|
82
134
|
*/
|
|
83
|
-
constructor({ baseUrl, tenant, dataCore, apiKey, pathwayTimeoutMs, logger,
|
|
135
|
+
constructor({ baseUrl, tenant, dataCore, apiKey, pathwayTimeoutMs, logger, enableSessionUserResolvers, overrideSessionUserResolvers, }: {
|
|
84
136
|
baseUrl: string;
|
|
85
137
|
tenant: string;
|
|
86
138
|
dataCore: string;
|
|
87
139
|
apiKey: string;
|
|
88
140
|
pathwayTimeoutMs?: number;
|
|
89
141
|
logger?: Logger;
|
|
90
|
-
|
|
142
|
+
enableSessionUserResolvers?: boolean;
|
|
143
|
+
overrideSessionUserResolvers?: SessionUserResolver;
|
|
91
144
|
});
|
|
92
145
|
/**
|
|
93
146
|
* Configures the PathwaysBuilder to use a custom pathway state implementation
|
|
@@ -187,16 +240,16 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
187
240
|
* @param handler The function that will process events for this pathway
|
|
188
241
|
* @throws Error if the pathway doesn't exist or already has a handler
|
|
189
242
|
*/
|
|
190
|
-
handle<TPath extends keyof TPathway>(path: TPath, handler: (event: Omit<FlowcoreEvent,
|
|
243
|
+
handle<TPath extends keyof TPathway>(path: TPath, handler: (event: Omit<FlowcoreEvent, "payload"> & {
|
|
191
244
|
payload: TPathway[TPath];
|
|
192
|
-
}) =>
|
|
245
|
+
}) => Promise<void> | void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
193
246
|
/**
|
|
194
247
|
* Subscribe to pathway events (before or after processing)
|
|
195
248
|
* @param path The pathway to subscribe to
|
|
196
249
|
* @param handler The handler function for the events
|
|
197
250
|
* @param type The event type to subscribe to (before, after, or all)
|
|
198
251
|
*/
|
|
199
|
-
subscribe<TPath extends keyof TPathway>(path: TPath, handler: (event: Omit<FlowcoreEvent,
|
|
252
|
+
subscribe<TPath extends keyof TPathway>(path: TPath, handler: (event: Omit<FlowcoreEvent, "payload"> & {
|
|
200
253
|
payload: TPathway[TPath];
|
|
201
254
|
}) => void, type?: "before" | "after" | "all"): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
202
255
|
/**
|
|
@@ -204,7 +257,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
204
257
|
* @param path The pathway to subscribe to errors for
|
|
205
258
|
* @param handler The handler function that receives the error and event
|
|
206
259
|
*/
|
|
207
|
-
onError<TPath extends keyof TPathway>(path: TPath, handler: (error: Error, event: Omit<FlowcoreEvent,
|
|
260
|
+
onError<TPath extends keyof TPathway>(path: TPath, handler: (error: Error, event: Omit<FlowcoreEvent, "payload"> & {
|
|
208
261
|
payload: TPathway[TPath];
|
|
209
262
|
}) => void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
210
263
|
/**
|
|
@@ -221,6 +274,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
221
274
|
* @returns A promise that resolves to the event ID(s)
|
|
222
275
|
*/
|
|
223
276
|
write<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
|
|
277
|
+
writeBatch<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath][], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
|
|
224
278
|
/**
|
|
225
279
|
* Waits for a specific event to be processed
|
|
226
280
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
|