MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / connectionCreateHandoffUrl

Function connectionCreateHandoffUrl

packages/core/sdk/src/core-tools.ts:458–476  ·  view source on GitHub ↗
(
  webBaseUrl: string | undefined,
  orgSlug: string | undefined,
  input: typeof ConnectionCreateHandoffInput.Type,
)

Source from the content-addressed store, hash-verified

456};
457
458const connectionCreateHandoffUrl = (
459 webBaseUrl: string | undefined,
460 orgSlug: string | undefined,
461 input: typeof ConnectionCreateHandoffInput.Type,
462): string => {
463 const search = new URLSearchParams({ addAccount: "1" });
464 if (input.owner !== undefined) search.set("owner", input.owner);
465 if (input.template !== undefined) search.set("template", input.template);
466 if (input.label !== undefined) search.set("label", input.label);
467 // Org-scoped hosts (cloud, self-host, cloudflare) serve the console under an
468 // optional `/<org-slug>` segment. Pin the URL to the executor's bound org so
469 // it opens that org directly instead of relying on the browser's last-active
470 // org (which `OrgSlugGate` would otherwise canonicalize a bare URL to). When
471 // no slug is known (CLI, local, non-request callers) we emit the bare path.
472 const orgPrefix = orgSlug !== undefined && orgSlug.length > 0 ? `/${orgSlug}` : "";
473 const path = `${orgPrefix}/integrations/${encodeURIComponent(input.integration)}?${search.toString()}`;
474 if (webBaseUrl === undefined || webBaseUrl.length === 0) return path;
475 return new URL(path, webBaseUrl.endsWith("/") ? webBaseUrl : `${webBaseUrl}/`).toString();
476};
477
478const oauthClientCreateHandoffUrl = (
479 webBaseUrl: string | undefined,

Callers 1

core-tools.tsFile · 0.85

Calls 2

setMethod · 0.80
toStringMethod · 0.80

Tested by

no test coverage detected