Skip to content

Commit d9a2589

Browse files
committed
Make compareConns function docker-compose aware
1 parent 1f4a2ec commit d9a2589

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/providers/DocumentContentProvider.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,30 @@ import { config, FILESYSTEM_SCHEMA, FILESYSTEM_READONLY_SCHEMA, OBJECTSCRIPT_FIL
88
import { currentWorkspaceFolder, uriOfWorkspaceFolder } from "../utils";
99

1010
export function compareConns(
11-
conn1: { ns: any; server: any; host: any; port: any },
12-
conn2: { ns: any; server: any; host: any; port: any }
11+
conn1: { ns: any; server: any; host: any; port: any; "docker-compose": any },
12+
conn2: { ns: any; server: any; host: any; port: any; "docker-compose": any }
1313
): boolean {
1414
if (conn1.ns === conn2.ns) {
15+
// Same namespace name
1516
if (conn1.server && conn2.server) {
17+
// Both connections name an entry in intersystems.servers
1618
if (conn1.server === conn2.server) {
1719
return true;
1820
}
1921
} else if (!conn1.server && !conn2.server) {
20-
if (conn1.host === conn2.host && conn1.port === conn2.port) {
21-
return true;
22+
if (conn1.port && conn2.port) {
23+
// Both connections specify a target port
24+
if (conn1.host === conn2.host && conn1.port === conn2.port) {
25+
return true;
26+
}
27+
} else if (conn1["docker-compose"] && conn2["docker-compose"]) {
28+
// Both connections specify a docker-compose object
29+
if (conn1["docker-compose"].service === conn2["docker-compose"].service) {
30+
// Assume that if the service names match then the connection is to the same place.
31+
// This may not be true (e.g. if the same service name is used in folder-specific docker-compose files)
32+
// but it's the best we can do here without more information.
33+
return true;
34+
}
2235
}
2336
}
2437
}

0 commit comments

Comments
 (0)