1- import { H3 , serve , serveStatic } from "h3" ;
1+ import { createEventStream , H3 , serve , serveStatic } from "h3" ;
22import { loadConfig } from "../config/config_handler.ts" ;
33import { readFile , stat } from "node:fs/promises" ;
44import { join } from "node:path" ;
55import { devState , resolveToProjectRoot } from "../utils.ts" ;
6-
6+ import { addStream , broadcast , removeStream } from "./streams.ts" ;
77const config = await loadConfig ( ) ;
88
99const app = new H3 ( ) ;
@@ -56,7 +56,9 @@ app.use("/media/**", (event) => {
5656 . join ( "/" ) ;
5757
5858 const path = join (
59- resolveToProjectRoot ( config . bundler . filesystem ! . projectFiles . mediaDir ) ,
59+ resolveToProjectRoot (
60+ config . bundler . filesystem ! . projectFiles ! . mediaDir ! ,
61+ ) ,
6062 parsedId ,
6163 ) ;
6264
@@ -71,7 +73,9 @@ app.use("/media/**", (event) => {
7173 . join ( "/" ) ;
7274
7375 const path = join (
74- resolveToProjectRoot ( config . bundler . filesystem ! . projectFiles . mediaDir ) ,
76+ resolveToProjectRoot (
77+ config . bundler . filesystem ! . projectFiles ! . mediaDir ! ,
78+ ) ,
7579 parsedId ,
7680 ) ;
7781
@@ -85,6 +89,20 @@ app.use("/media/**", (event) => {
8589 } ,
8690 } ) ;
8791} ) ;
92+
93+ app . get ( "/events/" , async ( event ) => {
94+ const eventStream = createEventStream ( event ) ;
95+ addStream ( eventStream ) ;
96+
97+ await broadcast ( "Test message" ) ;
98+
99+ eventStream . onClosed ( ( ) => {
100+ removeStream ( eventStream ) ;
101+ } ) ;
102+
103+ return eventStream . send ( ) ;
104+ } ) ;
105+
88106const startServer = ( ) => {
89107 return serve ( app , {
90108 port : config . devServer ! . port ,
0 commit comments