@@ -8,15 +8,18 @@ const open = require('open');
88const { join, normalize } = require ( 'path' ) ;
99const { readFileSync, readdirSync } = require ( 'fs' ) ;
1010
11- const root = join ( __dirname , '..' , '..' , '..' , '..' ) ;
11+ const root = join ( __dirname , '..' , '..' ) ;
1212const indexFileName = 'index.html' ;
13- const cssDirectory = join ( root , 'node_modules' , 'devextreme' , ' dist', 'css' ) ;
13+ const cssDirectory = join ( root , 'node_modules' , 'devextreme- dist' , 'css' ) ;
1414const getAvailableThemes = readdirSync ( cssDirectory ) . filter ( ( f ) => / ^ d x \. (? ! c o m m o n ) .* \. c s s $ / i. test ( f ) ) ;
1515const baseTheme = 'dx.light.css' ;
16- const port = process . argv [ 2 ] ?? 3000 ;
16+ const portArgument = process . argv . slice ( 2 ) . findLast ( ( argument ) => argument !== '--' ) ;
17+ const port = Number ( portArgument ) || 8080 ;
18+
19+ const getDemoPath = ( requestPath ) => requestPath . replace ( / ^ \/ a p p s \/ d e m o s (? = \/ | $ ) / , '' ) ;
1720
1821const demoIndexHandler = ( request , response ) => {
19- const parts = request . path . split ( '/' ) ;
22+ const parts = getDemoPath ( request . path ) . split ( '/' ) ;
2023
2124 parts . unshift ( root ) ;
2225
@@ -39,8 +42,12 @@ const demoIndexHandler = (request, response) => {
3942const app = express ( ) ;
4043app . use ( cookieParser ( ) ) ;
4144
45+ app . get ( '/apps/demos' , ( request , response ) => response . redirect ( '/' ) ) ;
46+ app . get ( `/apps/demos/${ indexFileName } ` , ( request , response ) => response . redirect ( '/' ) ) ;
4247app . get ( '/Demos/:widget/:name/:approach' , demoIndexHandler ) ;
4348app . get ( `/Demos/:widget/:name/:approach/${ indexFileName } ` , demoIndexHandler ) ;
49+ app . get ( '/apps/demos/Demos/:widget/:name/:approach' , demoIndexHandler ) ;
50+ app . get ( `/apps/demos/Demos/:widget/:name/:approach/${ indexFileName } ` , demoIndexHandler ) ;
4451app . get ( '/themes' , ( request , response ) => response . send ( getAvailableThemes ) ) ;
4552app . use (
4653 serveStatic ( root , { index : [ indexFileName ] } ) ,
@@ -49,4 +56,4 @@ app.use(
4956
5057app . listen ( port ) ;
5158
52- open ( `http://localhost:${ port } /apps/demos ` ) ;
59+ open ( `http://localhost:${ port } /` ) ;
0 commit comments