@@ -165,7 +165,16 @@ program
165165 . name ( 'interval-server' )
166166 . description ( 'Interval Server is the central server for Interval apps' )
167167 . option ( '-v, --verbose' , 'verbose output' )
168- . addCommand ( new Command ( 'start' ) . description ( 'starts Interval Server' ) )
168+ . addCommand (
169+ new Command ( 'start' )
170+ . description ( 'starts Interval Server' )
171+ . addOption (
172+ new Option (
173+ '--internal-actions' ,
174+ 'start interval internal actions along with the server'
175+ )
176+ )
177+ )
169178 . addCommand (
170179 new Command ( 'db-init' ) . addOption (
171180 new Option (
@@ -177,34 +186,50 @@ program
177186
178187const [ cmd , ...args ] = program . parse ( ) . args
179188async function main ( ) {
180- if ( cmd === 'start' ) {
181- const envVars = ( await import ( './env' ) ) . default
182- // start the internal web socket server
183- import ( './wss/index' )
189+ switch ( cmd ) {
190+ case 'start' : {
191+ const envVars = ( await import ( './env' ) ) . default
192+ // start the internal web socket server
193+ import ( './wss/index' )
184194
185- const app = express ( )
195+ const app = express ( )
186196
187- const mainAppServer = ( await import ( './server/index' ) ) . default
197+ const mainAppServer = ( await import ( './server/index' ) ) . default
188198
189- app . use ( mainAppServer )
199+ app . use ( mainAppServer )
190200
191- const server = http . createServer ( app )
201+ const server = http . createServer ( app )
192202
193- const wss = new WebSocketServer ( { server, path : '/websocket' } )
194- const { setupWebSocketServer } = await import ( './wss/wss' )
195- setupWebSocketServer ( wss )
203+ const wss = new WebSocketServer ( { server, path : '/websocket' } )
204+ const { setupWebSocketServer } = await import ( './wss/wss' )
205+ setupWebSocketServer ( wss )
196206
197- server . listen ( Number ( envVars . PORT ) , ( ) => {
198- logger . info (
199- `📡 Interval Server listening at http://localhost:${ envVars . PORT } `
200- )
201- } )
202- } else if ( cmd === 'db-init' ) {
203- logger . info ( 'Initializing a database...' )
204- initDb ( { skipCreate : args . includes ( '--skip-create' ) } ) . catch ( ( ) => {
205- logger . error ( `Failed to initialize database.` )
206- process . exit ( 1 )
207- } )
207+ server . listen ( Number ( envVars . PORT ) , ( ) => {
208+ logger . info (
209+ `📡 Interval Server listening at http://localhost:${ envVars . PORT } `
210+ )
211+
212+ if ( args . includes ( '--internal-actions' ) ) {
213+ import ( './interval' ) . catch ( err => {
214+ logger . error ( 'Failed starting internal actions:' , err )
215+ } )
216+ }
217+ } )
218+
219+ break
220+ }
221+ case 'internal' : {
222+ await import ( './interval' )
223+ break
224+ }
225+ case 'db-init' : {
226+ logger . info ( 'Initializing a database...' )
227+ initDb ( { skipCreate : args . includes ( '--skip-create' ) } ) . catch ( ( ) => {
228+ logger . error ( 'Failed to initialize database.' )
229+ process . exit ( 1 )
230+ } )
231+ break
232+ }
208233 }
209234}
210235
0 commit comments