@@ -35,6 +35,29 @@ export class CodeServerRouteWrapper {
35
35
36
36
//#region Route Handlers
37
37
38
+ private manifest : express . Handler = async ( req , res , next ) => {
39
+ res . writeHead ( 200 , { "Content-Type" : "application/manifest+json" } )
40
+
41
+ return res . end (
42
+ JSON . stringify (
43
+ {
44
+ name : "code-server" ,
45
+ short_name : "code-server" ,
46
+ start_url : "." ,
47
+ display : "fullscreen" ,
48
+ description : "Run Code on a remote server." ,
49
+ icons : [ 192 , 512 ] . map ( ( size ) => ( {
50
+ src : `./_static/src/browser/media/pwa-icon-${ size } .png` ,
51
+ type : "image/png" ,
52
+ sizes : `${ size } x${ size } ` ,
53
+ } ) ) ,
54
+ } ,
55
+ null ,
56
+ 2 ,
57
+ ) ,
58
+ )
59
+ }
60
+
38
61
private $root : express . Handler = async ( req , res , next ) => {
39
62
const isAuthenticated = await authenticated ( req )
40
63
const NO_FOLDER_OR_WORKSPACE_QUERY = ! req . query . folder && ! req . query . workspace
@@ -153,6 +176,7 @@ export class CodeServerRouteWrapper {
153
176
154
177
constructor ( ) {
155
178
this . router . get ( "/" , this . ensureCodeServerLoaded , this . $root )
179
+ this . router . get ( / m a n i f e s t .j s o n $ / , this . manifest )
156
180
this . router . all ( "*" , ensureAuthenticated , this . ensureCodeServerLoaded , this . $proxyRequest )
157
181
this . _wsRouterWrapper . ws ( "/" , ensureAuthenticated , this . ensureCodeServerLoaded , this . $proxyWebsocket )
158
182
}
0 commit comments