Move VS Code to the root
This commit is contained in:
39
src/node/app/static.ts
Normal file
39
src/node/app/static.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import * as http from "http"
|
||||
import { HttpCode, HttpError } from "../../common/http"
|
||||
import { HttpProvider, HttpResponse, Route } from "../http"
|
||||
|
||||
/**
|
||||
* Static file HTTP provider. Static requests do not require authentication and
|
||||
* they only allow access to resources within the application.
|
||||
*/
|
||||
export class StaticHttpProvider extends HttpProvider {
|
||||
public async handleRequest(route: Route, request: http.IncomingMessage): Promise<HttpResponse> {
|
||||
this.ensureMethod(request)
|
||||
const response = await this.getReplacedResource(route)
|
||||
if (!this.isDev) {
|
||||
response.cache = true
|
||||
}
|
||||
return response
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a resource with variables replaced where necessary.
|
||||
*/
|
||||
protected async getReplacedResource(route: Route): Promise<HttpResponse> {
|
||||
// The first part is always the commit (for caching purposes).
|
||||
const split = route.requestPath.split("/").slice(1)
|
||||
|
||||
switch (split[split.length - 1]) {
|
||||
case "manifest.json":
|
||||
case "extensionHostWorkerMain.js": {
|
||||
const response = await this.getUtf8Resource(this.rootPath, ...split)
|
||||
return this.replaceTemplates(route, response)
|
||||
}
|
||||
}
|
||||
return this.getResource(this.rootPath, ...split)
|
||||
}
|
||||
|
||||
public async handleWebSocket(): Promise<true> {
|
||||
throw new HttpError("Not found", HttpCode.NotFound)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user