From a63cf6cf47d801768b75b9af222f4f6c14e03a94 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 16 Sep 2019 12:48:02 +0200 Subject: [PATCH] product - guard against bad usage --- src/vs/platform/product/common/product.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts index dddd3b81084..2de51e8d324 100644 --- a/src/vs/platform/product/common/product.ts +++ b/src/vs/platform/product/common/product.ts @@ -11,6 +11,8 @@ import { getPathFromAmdModule } from 'vs/base/common/amd'; import { env } from 'vs/base/common/process'; let product: IProductConfiguration; + +// Web if (isWeb) { // Built time configuration (do NOT modify) @@ -24,15 +26,16 @@ if (isWeb) { nameShort: 'VSCode Web Dev' }); } -} else { +} + +// Node: AMD loader +else if (typeof require !== 'undefined' && typeof require.__$__nodeRequire === 'function') { // Obtain values from product.json and package.json const rootPath = path.dirname(getPathFromAmdModule(require, '')); - const productJsonPath = path.join(rootPath, 'product.json'); - const packageJsonPath = path.join(rootPath, 'package.json'); - product = assign({}, require.__$__nodeRequire(productJsonPath) as IProductConfiguration); - const pkg = require.__$__nodeRequire(packageJsonPath) as { version: string; }; + product = assign({}, require.__$__nodeRequire(path.join(rootPath, 'product.json')) as IProductConfiguration); + const pkg = require.__$__nodeRequire(path.join(rootPath, 'package.json')) as { version: string; }; // Running out of sources if (env['VSCODE_DEV']) { @@ -48,4 +51,9 @@ if (isWeb) { }); } +// Unknown +else { + throw new Error('Unable to resolve product configuration'); +} + export default product; -- GitLab