mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-17 09:35:37 -05:00
* Fix initial build breaks from 1.67 merge (#2514) * Update yarn lock files * Update build scripts * Fix tsconfig * Build breaks * WIP * Update yarn lock files * Misc breaks * Updates to package.json * Breaks * Update yarn * Fix breaks * Breaks * Build breaks * Breaks * Breaks * Breaks * Breaks * Breaks * Missing file * Breaks * Breaks * Breaks * Breaks * Breaks * Fix several runtime breaks (#2515) * Missing files * Runtime breaks * Fix proxy ordering issue * Remove commented code * Fix breaks with opening query editor * Fix post merge break * Updates related to setup build and other breaks (#2516) * Fix bundle build issues * Update distro * Fix distro merge and update build JS files * Disable pipeline steps * Remove stats call * Update license name * Make new RPM dependencies a warning * Fix extension manager version checks * Update JS file * Fix a few runtime breaks * Fixes * Fix runtime issues * Fix build breaks * Update notebook tests (part 1) * Fix broken tests * Linting errors * Fix hygiene * Disable lint rules * Bump distro * Turn off smoke tests * Disable integration tests * Remove failing "activate" test * Remove failed test assertion * Disable other broken test * Disable query history tests * Disable extension unit tests * Disable failing tasks
51 lines
2.3 KiB
TypeScript
51 lines
2.3 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { URI } from 'vs/base/common/uri';
|
|
import { nullExtensionDescription } from 'vs/workbench/services/extensions/common/extensions';
|
|
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
|
|
import * as azdata from 'azdata';
|
|
import { IAzdataExtensionApiFactory } from 'sql/workbench/api/common/sqlExtHost.api.impl';
|
|
import { INodeModuleFactory } from 'vs/workbench/api/common/extHostRequireInterceptor';
|
|
import { ILogService } from 'vs/platform/log/common/log';
|
|
import { ExtensionPaths } from 'vs/workbench/api/common/extHostExtensionService';
|
|
|
|
export class AzdataNodeModuleFactory implements INodeModuleFactory {
|
|
public readonly nodeModuleName = 'azdata';
|
|
|
|
private readonly _extApiImpl = new Map<string, typeof azdata>();
|
|
private _defaultApiImpl: typeof azdata;
|
|
|
|
constructor(
|
|
private readonly _apiFactory: IAzdataExtensionApiFactory,
|
|
private readonly _extensionPaths: ExtensionPaths, // TernarySearchTree<URI, IExtensionDescription>,
|
|
private readonly _logService: ILogService
|
|
) {
|
|
}
|
|
|
|
public load(request: string, parent: URI): any {
|
|
|
|
// get extension id from filename and api for extension
|
|
const ext = this._extensionPaths.findSubstr(parent);
|
|
if (ext) {
|
|
let apiImpl = this._extApiImpl.get(ExtensionIdentifier.toKey(ext.identifier));
|
|
if (!apiImpl) {
|
|
apiImpl = this._apiFactory(ext);
|
|
this._extApiImpl.set(ExtensionIdentifier.toKey(ext.identifier), apiImpl);
|
|
}
|
|
return apiImpl;
|
|
}
|
|
|
|
// fall back to a default implementation
|
|
if (!this._defaultApiImpl) {
|
|
let extensionPathsPretty = '';
|
|
this._extensionPaths.forEach((value, index) => extensionPathsPretty += `\t${index} -> ${value.identifier.value}\n`);
|
|
this._logService.warn(`Could not identify extension for 'azdata' require call from ${parent.fsPath}. These are the extension path mappings: \n${extensionPathsPretty}`);
|
|
this._defaultApiImpl = this._apiFactory(nullExtensionDescription);
|
|
}
|
|
return this._defaultApiImpl;
|
|
}
|
|
}
|