MCPcopy
hub / github.com/nestjs/nest / AppController

Class AppController

integration/nest-application/sse/src/app.controller.ts:24–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22
23@Controller()
24export class AppController {
25 private promiseDelayedRequestsStarted = 0;
26 private promiseDelayedSubscriptionsStarted = 0;
27 private promiseDelayedCloseEventsObserved = 0;
28 private promiseDelayedTeardownsObserved = 0;
29 private promiseDelayedRunningStreams = 0;
30 private readonly promiseDelayedResolvers: Array<() => void> = [];
31
32 @Sse('sse')
33 sse(): Observable<MessageEvent> {
34 return interval(1000).pipe(
35 map(() => ({ data: { hello: 'world' } }) as MessageEvent),
36 );
37 }
38
39 @Sse('sse/validated')
40 sseWithValidatedQuery(@Query() query: SseQueryDto): Observable<MessageEvent> {
41 return of({ data: { limit: query.limit } });
42 }
43
44 @Sse('sse/burst')
45 sseBurst(
46 @Query('n') n = '20',
47 @Query('size') size = '65536',
48 ): Observable<MessageEvent> {
49 const count = parseInt(n, 10);
50 const payload = 'X'.repeat(parseInt(size, 10));
51
52 return new Observable(subscriber => {
53 for (let i = 0; i < count; i++) {
54 subscriber.next({ data: payload });
55 }
56 subscriber.complete();
57 });
58 }
59
60 @Sse('sse/post', { method: RequestMethod.POST })
61 ssePost(@Body() body: { content?: string }): Observable<MessageEvent> {
62 return of({ data: { content: body.content ?? 'default' } });
63 }
64
65 @Sse('sse/promise-delayed')
66 ssePromiseDelayed(
67 @Req() request: IncomingMessage & { raw?: IncomingMessage },
68 ): Promise<Observable<MessageEvent>> {
69 return this.createPromiseDelayedSse(request);
70 }
71
72 @Sse('sse/post/promise-delayed', { method: RequestMethod.POST })
73 ssePostPromiseDelayed(
74 @Req() request: IncomingMessage & { raw?: IncomingMessage },
75 @Body() _body: { content?: string },
76 ): Promise<Observable<MessageEvent>> {
77 return this.createPromiseDelayedSse(request);
78 }
79
80 private createPromiseDelayedSse(
81 request: IncomingMessage & { raw?: IncomingMessage },

Callers

nothing calls this directly

Calls 2

SseFunction · 0.90
PostClass · 0.50

Tested by

no test coverage detected