Skip to content

Commit 247f11c

Browse files
authored
Fix tsc watch continually restarting during vscode build (#3015)
2 parents 6207a31 + 230b0df commit 247f11c

File tree

11 files changed

+147
-148
lines changed

11 files changed

+147
-148
lines changed

ci/build/build-release.sh

-6
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ main() {
2525
rsync README.md "$RELEASE_PATH"
2626
rsync LICENSE.txt "$RELEASE_PATH"
2727
rsync ./lib/vscode/ThirdPartyNotices.txt "$RELEASE_PATH"
28-
29-
# code-server exports types which can be imported and used by plugins. Those
30-
# types import ipc.d.ts but it isn't included in the final vscode build so
31-
# we'll copy it ourselves here.
32-
mkdir -p "$RELEASE_PATH/lib/vscode/src/vs/server"
33-
rsync ./lib/vscode/src/vs/server/ipc.d.ts "$RELEASE_PATH/lib/vscode/src/vs/server"
3428
}
3529

3630
bundle_code_server() {

lib/vscode/.eslintignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@
1616
**/extensions/markdown-language-features/notebook-out/**
1717
**/extensions/typescript-basics/test/colorize-fixtures/**
1818
**/extensions/**/dist/**
19-
# This is a code-server code symlink.
19+
# These are code-server code symlinks.
2020
src/vs/base/node/proxy_agent.ts
21+
src/vs/ipc.d.ts

lib/vscode/src/vs/ipc.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../typings/ipc.d.ts

lib/vscode/src/vs/server/browser/client.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as path from 'vs/base/common/path';
22
import { URI } from 'vs/base/common/uri';
3+
import { Options } from 'vs/ipc';
34
import { localize } from 'vs/nls';
45
import { Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry';
56
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
@@ -11,7 +12,6 @@ import { Registry } from 'vs/platform/registry/common/platform';
1112
import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage';
1213
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1314
import { TelemetryChannelClient } from 'vs/server/common/telemetry';
14-
import { Options } from 'vs/server/ipc.d';
1515
import 'vs/workbench/contrib/localizations/browser/localizations.contribution';
1616
import { LocalizationsService } from 'vs/workbench/services/localizations/electron-sandbox/localizationsService';
1717
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';

lib/vscode/src/vs/server/entry.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { field } from '@coder/logger';
22
import { setUnexpectedErrorHandler } from 'vs/base/common/errors';
3-
import { CodeServerMessage, VscodeMessage } from 'vs/server/ipc';
3+
import * as proxyAgent from 'vs/base/node/proxy_agent';
4+
import { CodeServerMessage, VscodeMessage } from 'vs/ipc';
45
import { logger } from 'vs/server/node/logger';
56
import { enableCustomMarketplace } from 'vs/server/node/marketplace';
67
import { Vscode } from 'vs/server/node/server';
7-
import * as proxyAgent from 'vs/base/node/proxy_agent';
88

99
setUnexpectedErrorHandler((error) => logger.warn(error instanceof Error ? error.message : error));
1010
enableCustomMarketplace();

lib/vscode/src/vs/server/ipc.d.ts

-132
This file was deleted.

lib/vscode/src/vs/server/node/server.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { field } from '@coder/logger';
2-
import { release } from 'os';
32
import * as fs from 'fs';
43
import * as net from 'net';
4+
import { release } from 'os';
55
import * as path from 'path';
66
import { Emitter } from 'vs/base/common/event';
77
import { Schemas } from 'vs/base/common/network';
@@ -10,6 +10,7 @@ import { getMachineId } from 'vs/base/node/id';
1010
import { ClientConnectionEvent, IPCServer, IServerChannel, ProxyChannel } from 'vs/base/parts/ipc/common/ipc';
1111
import { LogsDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/logsDataCleaner';
1212
import { main } from 'vs/code/node/cliProcessMain';
13+
import { Query, VscodeOptions, WorkbenchOptions } from 'vs/ipc';
1314
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1415
import { ConfigurationService } from 'vs/platform/configuration/common/configurationService';
1516
import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc';
@@ -40,14 +41,13 @@ import { IRequestService } from 'vs/platform/request/common/request';
4041
import { RequestChannel } from 'vs/platform/request/common/requestIpc';
4142
import { RequestService } from 'vs/platform/request/node/requestService';
4243
import ErrorTelemetry from 'vs/platform/telemetry/browser/errorTelemetry';
44+
import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties';
4345
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
4446
import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogAppender';
4547
import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService';
4648
import { combinedAppender, NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
4749
import { AppInsightsAppender } from 'vs/platform/telemetry/node/appInsightsAppender';
48-
import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties';
4950
import { TelemetryChannel } from 'vs/server/common/telemetry';
50-
import { Query, VscodeOptions, WorkbenchOptions } from 'vs/server/ipc';
5151
import { ExtensionEnvironmentChannel, FileProviderChannel, TerminalProviderChannel } from 'vs/server/node/channel';
5252
import { Connection, ExtensionHostConnection, ManagementConnection } from 'vs/server/node/connection';
5353
import { TelemetryClient } from 'vs/server/node/insights';

src/node/cli.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { promises as fs } from "fs"
33
import yaml from "js-yaml"
44
import * as os from "os"
55
import * as path from "path"
6-
import { Args as VsArgs } from "../../lib/vscode/src/vs/server/ipc"
6+
import { Args as VsArgs } from "../../typings/ipc"
77
import { canConnect, generateCertificate, generatePassword, humanPath, paths } from "./util"
88

99
export enum AuthType {

src/node/entry.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { field, logger } from "@coder/logger"
22
import * as cp from "child_process"
33
import http from "http"
44
import * as path from "path"
5-
import { CliMessage, OpenCommandPipeArgs } from "../../lib/vscode/src/vs/server/ipc"
5+
import { CliMessage, OpenCommandPipeArgs } from "../../typings/ipc"
66
import { plural } from "../common/util"
77
import { createApp, ensureAddress } from "./app"
88
import {

src/node/vscode.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { logger } from "@coder/logger"
22
import * as cp from "child_process"
33
import * as net from "net"
44
import * as path from "path"
5-
import * as ipc from "../../lib/vscode/src/vs/server/ipc"
5+
import * as ipc from "../../typings/ipc"
66
import { arrayify, generateUuid } from "../common/util"
77
import { rootPath } from "./constants"
88
import { settings } from "./settings"

typings/ipc.d.ts

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/**
2+
* External interfaces for integration into code-server over IPC.
3+
* This file exists in two locations:
4+
* - typings/ipc.d.ts
5+
* - lib/vscode/src/typings/ipc.d.ts
6+
* The second is a symlink to the first.
7+
*/
8+
export interface Options {
9+
base: string
10+
disableTelemetry: boolean
11+
disableUpdateCheck: boolean
12+
}
13+
14+
export interface InitMessage {
15+
type: "init"
16+
id: string
17+
options: VscodeOptions
18+
}
19+
20+
export type Query = { [key: string]: string | string[] | undefined | Query | Query[] }
21+
22+
export interface SocketMessage {
23+
type: "socket"
24+
query: Query
25+
permessageDeflate: boolean
26+
}
27+
28+
export interface CliMessage {
29+
type: "cli"
30+
args: Args
31+
}
32+
33+
export interface OpenCommandPipeArgs {
34+
type: "open"
35+
fileURIs?: string[]
36+
folderURIs: string[]
37+
forceNewWindow?: boolean
38+
diffMode?: boolean
39+
addMode?: boolean
40+
gotoLineMode?: boolean
41+
forceReuseWindow?: boolean
42+
waitMarkerFilePath?: string
43+
}
44+
45+
export type CodeServerMessage = InitMessage | SocketMessage | CliMessage
46+
47+
export interface ReadyMessage {
48+
type: "ready"
49+
}
50+
51+
export interface OptionsMessage {
52+
id: string
53+
type: "options"
54+
options: WorkbenchOptions
55+
}
56+
57+
export type VscodeMessage = ReadyMessage | OptionsMessage
58+
59+
export interface StartPath {
60+
url: string
61+
workspace: boolean
62+
}
63+
64+
export interface Args {
65+
"user-data-dir"?: string
66+
67+
"enable-proposed-api"?: string[]
68+
"extensions-dir"?: string
69+
"builtin-extensions-dir"?: string
70+
"extra-extensions-dir"?: string[]
71+
"extra-builtin-extensions-dir"?: string[]
72+
"ignore-last-opened"?: boolean
73+
74+
locale?: string
75+
76+
log?: string
77+
verbose?: boolean
78+
79+
_: string[]
80+
}
81+
82+
export interface VscodeOptions {
83+
readonly args: Args
84+
readonly remoteAuthority: string
85+
readonly startPath?: StartPath
86+
}
87+
88+
export interface VscodeOptionsMessage extends VscodeOptions {
89+
readonly id: string
90+
}
91+
92+
export interface UriComponents {
93+
readonly scheme: string
94+
readonly authority: string
95+
readonly path: string
96+
readonly query: string
97+
readonly fragment: string
98+
}
99+
100+
export interface NLSConfiguration {
101+
locale: string
102+
availableLanguages: {
103+
[key: string]: string
104+
}
105+
pseudo?: boolean
106+
_languagePackSupport?: boolean
107+
}
108+
109+
export interface WorkbenchOptions {
110+
readonly workbenchWebConfiguration: {
111+
readonly remoteAuthority?: string
112+
readonly folderUri?: UriComponents
113+
readonly workspaceUri?: UriComponents
114+
readonly logLevel?: number
115+
readonly workspaceProvider?: {
116+
payload: [["userDataPath", string], ["enableProposedApi", string]]
117+
}
118+
}
119+
readonly remoteUserDataUri: UriComponents
120+
readonly productConfiguration: {
121+
codeServerVersion?: string
122+
readonly extensionsGallery?: {
123+
readonly serviceUrl: string
124+
readonly itemUrl: string
125+
readonly controlUrl: string
126+
readonly recommendationsUrl: string
127+
}
128+
}
129+
readonly nlsConfiguration: NLSConfiguration
130+
readonly commit: string
131+
}
132+
133+
export interface WorkbenchOptionsMessage {
134+
id: string
135+
}

0 commit comments

Comments
 (0)