@flink-app/streaming-plugin 0.12.1-alpha.45 → 0.12.1-alpha.47

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/README.md CHANGED
@@ -22,14 +22,17 @@ npm install @flink-app/streaming-plugin
22
22
  ### 1. Add Plugin to Your App
23
23
 
24
24
  ```typescript
25
- import { FlinkApp } from "@flink-app/flink";
26
- import { streamingPlugin } from "@flink-app/streaming-plugin";
25
+ import { FlinkApp, FlinkContext } from "@flink-app/flink";
26
+ import { streamingPlugin, StreamingPluginContext } from "@flink-app/streaming-plugin";
27
27
 
28
- const streaming = streamingPlugin({ debug: true });
28
+ // Define your app context with streaming plugin
29
+ interface AppContext extends FlinkContext<{ streaming: StreamingPluginContext }> {
30
+ // Your other context properties
31
+ }
29
32
 
30
- const app = await new FlinkApp({
33
+ const app = await new FlinkApp<AppContext>({
31
34
  name: "My App",
32
- plugins: [streaming],
35
+ plugins: [streamingPlugin({ debug: true })],
33
36
  }).start();
34
37
  ```
35
38
 
@@ -108,23 +111,38 @@ export default GetLiveUpdates;
108
111
 
109
112
  ### 3. Register Streaming Handlers
110
113
 
111
- **Preferred: Module-based registration**
114
+ **Option 1: Via context (recommended)**
112
115
 
113
116
  ```typescript
114
117
  // src/index.ts
115
118
  import * as GetChatStream from "./streaming/GetChatStream";
116
119
  import * as GetLiveUpdates from "./streaming/GetLiveUpdates";
117
120
 
118
- // After app.start()
121
+ // After app.start() - access via ctx.plugins.streaming
122
+ app.ctx.plugins.streaming.registerStreamHandler(GetChatStream);
123
+ app.ctx.plugins.streaming.registerStreamHandler(GetLiveUpdates);
124
+ ```
125
+
126
+ **Option 2: Via plugin instance**
127
+
128
+ ```typescript
129
+ // If you prefer to keep a reference to the plugin instance
130
+ const streaming = streamingPlugin({ debug: true });
131
+
132
+ const app = await new FlinkApp({
133
+ plugins: [streaming],
134
+ }).start();
135
+
136
+ // Register after app.start()
119
137
  streaming.registerStreamHandler(GetChatStream);
120
138
  streaming.registerStreamHandler(GetLiveUpdates);
121
139
  ```
122
140
 
123
- **Alternative: Explicit registration**
141
+ **Option 3: Explicit registration**
124
142
 
125
143
  ```typescript
126
- // If you prefer explicit control
127
- streaming.registerStreamHandler(
144
+ // For inline handlers without separate files
145
+ app.ctx.plugins.streaming.registerStreamHandler(
128
146
  async ({ stream }) => {
129
147
  stream.write({ message: "Hello" });
130
148
  stream.end();
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingPlugin.d.ts","sourceRoot":"","sources":["../src/StreamingPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAEH,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EAEtB,MAAM,SAAS,CAAC;AAyEjB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACxC,EAAE,SAAe;IACxB,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAmC;gBAEtC,OAAO,GAAE,sBAA2B;IAO1C,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;;;;;;;;;OAUG;IACI,qBAAqB,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAC1D,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,GAC3C,IAAI;IAEP;;;;;;;;;;;;;OAaG;IACI,qBAAqB,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAC1D,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAC9B,UAAU,EAAE,mBAAmB,GAChC,IAAI;CAuIV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe,CAEjF"}
1
+ {"version":3,"file":"StreamingPlugin.d.ts","sourceRoot":"","sources":["../src/StreamingPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAEH,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EAEtB,MAAM,SAAS,CAAC;AAyEjB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACxC,EAAE,SAAe;IACxB,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAmC;gBAEtC,OAAO,GAAE,sBAA2B;IAO1C,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C;;;;;;;;;;OAUG;IACI,qBAAqB,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAC1D,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,GAC3C,IAAI;IAEP;;;;;;;;;;;;;OAaG;IACI,qBAAqB,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAC1D,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAC9B,UAAU,EAAE,mBAAmB,GAChC,IAAI;CAuIV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe,CAEjF"}
@@ -120,6 +120,10 @@ var StreamingPlugin = /** @class */ (function () {
120
120
  return __awaiter(this, void 0, void 0, function () {
121
121
  return __generator(this, function (_a) {
122
122
  this.app = app;
123
+ // Add plugin to context for access via ctx.plugins.streaming
124
+ app.ctx.plugins.streaming = {
125
+ registerStreamHandler: this.registerStreamHandler.bind(this),
126
+ };
123
127
  if (this.options.debug) {
124
128
  flink_1.log.info("[StreamingPlugin] Initialized with default format: ".concat(this.options.defaultFormat));
125
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingPlugin.js","sourceRoot":"","sources":["../src/StreamingPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamingPlugin.js","sourceRoot":"","sources":["../src/StreamingPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { FlinkContext } from "@flink-app/flink";
2
+ import { StreamHandler, StreamHandlerModule, StreamingRouteProps } from "./types";
3
+ /**
4
+ * Context interface for StreamingPlugin.
5
+ * Use this when defining your application context to get type-safe access
6
+ * to the streaming plugin via ctx.plugins.streaming
7
+ */
8
+ export interface StreamingPluginContext {
9
+ streaming: {
10
+ registerStreamHandler: {
11
+ <Ctx extends FlinkContext, T = any>(handlerModule: StreamHandlerModule<Ctx, T>): void;
12
+ <Ctx extends FlinkContext, T = any>(handler: StreamHandler<Ctx, T>, routeProps: StreamingRouteProps): void;
13
+ };
14
+ };
15
+ }
16
+ //# sourceMappingURL=StreamingPluginContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingPluginContext.d.ts","sourceRoot":"","sources":["../src/StreamingPluginContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE;QACP,qBAAqB,EAAE;YACnB,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YACtF,CAAC,GAAG,SAAS,YAAY,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;SAC9G,CAAC;KACL,CAAC;CACL"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StreamingPluginContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingPluginContext.js","sourceRoot":"","sources":["../src/StreamingPluginContext.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { StreamingPlugin, streamingPlugin } from "./StreamingPlugin";
2
+ export type { StreamingPluginContext } from "./StreamingPluginContext";
2
3
  export type { StreamFormat, StreamWriter, StreamHandlerProps, StreamHandler, StreamHandlerModule, StreamingRouteProps, StreamingPluginOptions, } from "./types";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flink-app/streaming-plugin",
3
- "version": "0.12.1-alpha.45",
3
+ "version": "0.12.1-alpha.47",
4
4
  "description": "Streaming response support for Flink Framework (SSE and NDJSON)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "@flink-app/flink": "^0.12.1-alpha.40"
29
29
  },
30
30
  "devDependencies": {
31
- "@flink-app/flink": "^0.12.1-alpha.45",
31
+ "@flink-app/flink": "^0.12.1-alpha.47",
32
32
  "@types/express": "^4.17.21",
33
33
  "@types/jasmine": "^3.7.1",
34
34
  "@types/node": "^20.10.0",
@@ -37,5 +37,5 @@
37
37
  "ts-node": "^10.0.0",
38
38
  "typescript": "^5.3.3"
39
39
  },
40
- "gitHead": "af426a157217c110ac9c7beb48e2e746968bec33"
40
+ "gitHead": "a98a0af7f11e4a97f68da4d0d67677df7d2a2749"
41
41
  }
@@ -99,6 +99,11 @@ export class StreamingPlugin implements FlinkPlugin {
99
99
  async init(app: FlinkApp<any>): Promise<void> {
100
100
  this.app = app;
101
101
 
102
+ // Add plugin to context for access via ctx.plugins.streaming
103
+ app.ctx.plugins.streaming = {
104
+ registerStreamHandler: this.registerStreamHandler.bind(this),
105
+ };
106
+
102
107
  if (this.options.debug) {
103
108
  log.info(`[StreamingPlugin] Initialized with default format: ${this.options.defaultFormat}`);
104
109
  }
@@ -0,0 +1,16 @@
1
+ import { FlinkContext } from "@flink-app/flink";
2
+ import { StreamHandler, StreamHandlerModule, StreamingRouteProps } from "./types";
3
+
4
+ /**
5
+ * Context interface for StreamingPlugin.
6
+ * Use this when defining your application context to get type-safe access
7
+ * to the streaming plugin via ctx.plugins.streaming
8
+ */
9
+ export interface StreamingPluginContext {
10
+ streaming: {
11
+ registerStreamHandler: {
12
+ <Ctx extends FlinkContext, T = any>(handlerModule: StreamHandlerModule<Ctx, T>): void;
13
+ <Ctx extends FlinkContext, T = any>(handler: StreamHandler<Ctx, T>, routeProps: StreamingRouteProps): void;
14
+ };
15
+ };
16
+ }
package/src/index.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  // Main plugin export
2
2
  export { StreamingPlugin, streamingPlugin } from "./StreamingPlugin";
3
3
 
4
+ // Context export
5
+ export type { StreamingPluginContext } from "./StreamingPluginContext";
6
+
4
7
  // Type exports
5
8
  export type {
6
9
  StreamFormat,