diff --git a/scripts/build-desktop-artifact.test.ts b/scripts/build-desktop-artifact.test.ts index 0cdf0905045..743263d43b3 100644 --- a/scripts/build-desktop-artifact.test.ts +++ b/scripts/build-desktop-artifact.test.ts @@ -5,6 +5,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import { + resolveDesktopRuntimeDependencies, resolveBuildOptions, resolveDesktopBuildIconAssets, resolveDesktopProductName, @@ -39,6 +40,30 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => { }); }); + it("omits bundled workspace packages from staged desktop dependencies", () => { + assert.deepStrictEqual( + resolveDesktopRuntimeDependencies( + { + "@effect/platform-node": "catalog:", + "@t3tools/contracts": "workspace:*", + "@t3tools/shared": "workspace:*", + "@t3tools/ssh": "workspace:*", + "@t3tools/tailscale": "workspace:*", + effect: "catalog:", + electron: "41.5.0", + }, + { + "@effect/platform-node": "4.0.0-beta.59", + effect: "4.0.0-beta.59", + }, + ), + { + "@effect/platform-node": "4.0.0-beta.59", + effect: "4.0.0-beta.59", + }, + ); + }); + it("falls back to the default mock update port when the configured port is blank", () => { assert.equal(resolveMockUpdateServerUrl(undefined), "http://localhost:3000"); assert.equal(resolveMockUpdateServerUrl(4123), "http://localhost:4123"); diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index f395e08f35b..104cbef20c1 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -484,7 +484,7 @@ function validateBundledClientAssets(clientDir: string) { }); } -function resolveDesktopRuntimeDependencies( +export function resolveDesktopRuntimeDependencies( dependencies: Record | undefined, catalog: Record, ): Record { @@ -493,7 +493,10 @@ function resolveDesktopRuntimeDependencies( } const runtimeDependencies = Object.fromEntries( - Object.entries(dependencies).filter(([dependencyName]) => dependencyName !== "electron"), + Object.entries(dependencies).filter( + ([dependencyName, dependencySpec]) => + dependencyName !== "electron" && !dependencySpec.startsWith("workspace:"), + ), ); return resolveCatalogDependencies(runtimeDependencies, catalog, "apps/desktop");