diff --git a/package.json b/package.json index c1fc8b9..5691d40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vscode/test-web", - "version": "0.0.39", + "version": "0.0.40", "scripts": { "install-extensions": "yarn --cwd=fs-provider && yarn --cwd=sample", "compile": "tsc -p ./ && yarn compile-fs-provider", diff --git a/src/server/workbench.ts b/src/server/workbench.ts index 1dba0bc..63dbd13 100644 --- a/src/server/workbench.ts +++ b/src/server/workbench.ts @@ -34,7 +34,7 @@ function asJSON(value: unknown): string { } class Workbench { - constructor(readonly baseUrl: string, readonly dev: boolean, readonly esm: boolean, private readonly builtInExtensions: IScannedBuiltinExtension[] = [], private readonly productOverrides: string = '') { } + constructor(readonly baseUrl: string, readonly dev: boolean, readonly esm: boolean, private readonly builtInExtensions: IScannedBuiltinExtension[] = [], private readonly productOverrides?: Record) { } async render(workbenchWebConfiguration: IWorkbenchOptions): Promise { const values: { [key: string]: string } = { @@ -42,7 +42,7 @@ class Workbench { WORKBENCH_AUTH_SESSION: '', WORKBENCH_WEB_BASE_URL: this.baseUrl, WORKBENCH_BUILTIN_EXTENSIONS: asJSON(this.builtInExtensions), - WORKBENCH_PRODUCT_OVERRIDES: this.productOverrides, + WORKBENCH_PRODUCT_OVERRIDES: this.productOverrides ? asJSON(this.productOverrides) : '', WORKBENCH_MAIN: this.getMain() }; @@ -134,7 +134,7 @@ export default function (config: IConfig): Router.Middleware { router.use(async (ctx, next) => { if (config.build.type === 'sources') { const builtInExtensions = await getScannedBuiltinExtensions(config.build.location); - const productOverrides = await getProductOverridesContent(config.build.location); + const productOverrides = await getProductOverrides(config.build.location); ctx.state.workbench = new Workbench(`${ctx.protocol}://${ctx.host}/static/sources`, true, config.esm, builtInExtensions, productOverrides); } else if (config.build.type === 'static') { ctx.state.workbench = new Workbench(`${ctx.protocol}://${ctx.host}/static/build`, false, config.esm); @@ -160,10 +160,10 @@ export default function (config: IConfig): Router.Middleware { return router.routes(); } -async function getProductOverridesContent(vsCodeDevLocation: string): Promise { +async function getProductOverrides(vsCodeDevLocation: string): Promise | undefined> { try { - return (await fs.readFile(path.join(vsCodeDevLocation, 'product.overrides.json'))).toString(); + return JSON.parse((await fs.readFile(path.join(vsCodeDevLocation, 'product.overrides.json'))).toString()); } catch (e) { - return ''; + return undefined; } }