mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 01:25:37 -05:00
75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
/// <reference path="../../../../typings/require.d.ts" />
|
|
|
|
//@ts-check
|
|
'use strict';
|
|
|
|
const perf = (function () {
|
|
globalThis.MonacoPerformanceMarks = globalThis.MonacoPerformanceMarks || [];
|
|
return {
|
|
/**
|
|
* @param {string} name
|
|
*/
|
|
mark(name) {
|
|
globalThis.MonacoPerformanceMarks.push(name, Date.now());
|
|
}
|
|
};
|
|
})();
|
|
|
|
perf.mark('renderer/started');
|
|
|
|
/**
|
|
* @type {{
|
|
* load: (modules: string[], resultCallback: (result, configuration: object) => any, options: object) => unknown,
|
|
* globals: () => typeof import('../../../base/parts/sandbox/electron-sandbox/globals')
|
|
* }}
|
|
*/
|
|
const bootstrapWindow = (() => {
|
|
// @ts-ignore (defined in bootstrap-window.js)
|
|
return window.MonacoBootstrapWindow;
|
|
})();
|
|
|
|
// Load environment in parallel to workbench loading to avoid waterfall
|
|
const whenEnvResolved = bootstrapWindow.globals().process.whenEnvResolved;
|
|
|
|
// Load workbench main JS, CSS and NLS all in parallel. This is an
|
|
// optimization to prevent a waterfall of loading to happen, because
|
|
// we know for a fact that workbench.desktop.sandbox.main will depend on
|
|
// the related CSS and NLS counterparts.
|
|
bootstrapWindow.load([
|
|
'vs/workbench/workbench.desktop.sandbox.main',
|
|
'vs/nls!vs/workbench/workbench.desktop.main',
|
|
'vs/css!vs/workbench/workbench.desktop.main'
|
|
],
|
|
async function (workbench, configuration) {
|
|
|
|
// Mark start of workbench
|
|
perf.mark('didLoadWorkbenchMain');
|
|
performance.mark('workbench-start');
|
|
|
|
// Wait for process environment being fully resolved
|
|
await whenEnvResolved;
|
|
|
|
perf.mark('main/startup');
|
|
|
|
// @ts-ignore
|
|
return require('vs/workbench/electron-sandbox/desktop.main').main(configuration);
|
|
},
|
|
{
|
|
removeDeveloperKeybindingsAfterLoad: true,
|
|
canModifyDOM: function (windowConfig) {
|
|
// TODO@sandbox part-splash is non-sandboxed only
|
|
},
|
|
beforeLoaderConfig: function (windowConfig, loaderConfig) {
|
|
loaderConfig.recordStats = true;
|
|
},
|
|
beforeRequire: function () {
|
|
perf.mark('willLoadWorkbenchMain');
|
|
}
|
|
}
|
|
);
|