@@ -7,7 +7,7 @@ import { WebsocketRequest } from "../../../typings/pluginapi"
7
7
import { logError } from "../../common/util"
8
8
import { CodeArgs , toCodeArgs } from "../cli"
9
9
import { isDevMode } from "../constants"
10
- import { authenticated , ensureAuthenticated , redirect , self } from "../http"
10
+ import { authenticated , ensureAuthenticated , redirect , replaceTemplates , self } from "../http"
11
11
import { SocketProxyProvider } from "../socket"
12
12
import { isFile , loadAMDModule } from "../util"
13
13
import { Router as WsRouter } from "../wsRouter"
@@ -34,6 +34,23 @@ export class CodeServerRouteWrapper {
34
34
35
35
//#region Route Handlers
36
36
37
+ private manifest : express . Handler = async ( req , res , next ) => {
38
+ res . writeHead ( 200 , { 'Content-Type' : 'application/manifest+json' } )
39
+
40
+ return res . end ( replaceTemplates ( req , JSON . stringify ( {
41
+ name : "code-server" ,
42
+ short_name : "code-server" ,
43
+ start_url : "." ,
44
+ display : "fullscreen" ,
45
+ description : "Run Code on a remote server." ,
46
+ icons : [ 192 , 512 ] . map ( ( size => ( {
47
+ src : `{{BASE}}/_static/src/browser/media/pwa-icon-${ size } .png` ,
48
+ type : "image/png" ,
49
+ sizes : `${ size } x${ size } ` ,
50
+ } ) ) ) ,
51
+ } , null , 2 ) ) )
52
+ }
53
+
37
54
private $root : express . Handler = async ( req , res , next ) => {
38
55
const isAuthenticated = await authenticated ( req )
39
56
const NO_FOLDER_OR_WORKSPACE_QUERY = ! req . query . folder && ! req . query . workspace
@@ -141,6 +158,7 @@ export class CodeServerRouteWrapper {
141
158
142
159
constructor ( ) {
143
160
this . router . get ( "/" , this . ensureCodeServerLoaded , this . $root )
161
+ this . router . get ( / m a n i f e s t .j s o n $ / , this . manifest )
144
162
this . router . all ( "*" , ensureAuthenticated , this . ensureCodeServerLoaded , this . $proxyRequest )
145
163
this . _wsRouterWrapper . ws ( "/" , ensureAuthenticated , this . ensureCodeServerLoaded , this . $proxyWebsocket )
146
164
}
0 commit comments