mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-09 09:42:34 -05:00
* Merge from vscode 504f934659740e9d41501cad9f162b54d7745ad9 * delete unused folders * distro * Bump build node version * update chokidar * FIx hygiene errors * distro * Fix extension lint issues * Remove strict-vscode * Add copyright header exemptions * Bump vscode-extension-telemetry to fix webpacking issue with zone.js * distro * Fix failing tests (revert marked.js back to current one until we decide to update) * Skip searchmodel test * Fix mac build * temp debug script loading * Try disabling coverage * log error too * Revert "log error too" This reverts commit af0183e5d4ab458fdf44b88fbfab9908d090526f. * Revert "temp debug script loading" This reverts commit 3d687d541c76db2c5b55626c78ae448d3c25089c. * Add comments explaining coverage disabling * Fix ansi_up loading issue * Merge latest from ads * Use newer option * Fix compile * add debug logging warn * Always log stack * log more * undo debug * Update to use correct base path (+cleanup) * distro * fix compile errors * Remove strict-vscode * Fix sql editors not showing * Show db dropdown input & fix styling * Fix more info in gallery * Fix gallery asset requests * Delete unused workflow * Fix tapable resolutions for smoke test compile error * Fix smoke compile * Disable crash reporting * Disable interactive Co-authored-by: ADS Merger <karlb@microsoft.com>
72 lines
2.2 KiB
TypeScript
72 lines
2.2 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 { CancellationToken } from 'vs/base/common/cancellation';
|
|
import { Event } from 'vs/base/common/event';
|
|
import { URI } from 'vs/base/common/uri';
|
|
import { Client, IChannel, IClientRouter, IConnectionHub, IServerChannel } from 'vs/base/parts/ipc/common/ipc';
|
|
import { IOpenURLOptions, IURLHandler } from 'vs/platform/url/common/url';
|
|
|
|
export class URLHandlerChannel implements IServerChannel {
|
|
|
|
constructor(private handler: IURLHandler) { }
|
|
|
|
listen<T>(_: unknown, event: string): Event<T> {
|
|
throw new Error(`Event not found: ${event}`);
|
|
}
|
|
|
|
call(_: unknown, command: string, arg?: any): Promise<any> {
|
|
switch (command) {
|
|
case 'handleURL': return this.handler.handleURL(URI.revive(arg[0]), arg[1]);
|
|
}
|
|
|
|
throw new Error(`Call not found: ${command}`);
|
|
}
|
|
}
|
|
|
|
export class URLHandlerChannelClient implements IURLHandler {
|
|
|
|
constructor(private channel: IChannel) { }
|
|
|
|
handleURL(uri: URI, options?: IOpenURLOptions): Promise<boolean> {
|
|
return this.channel.call('handleURL', [uri.toJSON(), options]);
|
|
}
|
|
}
|
|
|
|
export class URLHandlerRouter implements IClientRouter<string> {
|
|
|
|
constructor(private next: IClientRouter<string>) { }
|
|
|
|
async routeCall(hub: IConnectionHub<string>, command: string, arg?: any, cancellationToken?: CancellationToken): Promise<Client<string>> {
|
|
if (command !== 'handleURL') {
|
|
throw new Error(`Call not found: ${command}`);
|
|
}
|
|
|
|
if (arg) {
|
|
const uri = URI.revive(arg);
|
|
|
|
if (uri && uri.query) {
|
|
const match = /\bwindowId=(\d+)/.exec(uri.query);
|
|
|
|
if (match) {
|
|
const windowId = match[1];
|
|
const regex = new RegExp(`window:${windowId}`);
|
|
const connection = hub.connections.find(c => regex.test(c.ctx));
|
|
|
|
if (connection) {
|
|
return connection;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return this.next.routeCall(hub, command, arg, cancellationToken);
|
|
}
|
|
|
|
routeEvent(_: IConnectionHub<string>, event: string): Promise<Client<string>> {
|
|
throw new Error(`Event not found: ${event}`);
|
|
}
|
|
}
|