33 lines · 1.2 KB · TypeScript
RawDownload
import {  createAtomCommandScheduler,  createRuntimeCommand,} from "@t3tools/client-runtime/state/runtime"; import { connectionAtomRuntime } from "../connection/runtime";import {  linkPrimaryEnvironmentToCloud,  type CloudLinkTarget,  unlinkPrimaryEnvironmentFromCloud,} from "./linkEnvironment"; const cloudLinkScheduler = createAtomCommandScheduler();const cloudLinkConcurrency = {  mode: "serial" as const,  key: (input: { readonly target: CloudLinkTarget }) => input.target.environmentId,}; export const linkPrimaryEnvironment = createRuntimeCommand(connectionAtomRuntime, {  label: "web:cloud:link-primary-environment",  scheduler: cloudLinkScheduler,  concurrency: cloudLinkConcurrency,  execute: (input: { readonly target: CloudLinkTarget; readonly clerkToken: string }) =>    linkPrimaryEnvironmentToCloud(input),}); export const unlinkPrimaryEnvironment = createRuntimeCommand(connectionAtomRuntime, {  label: "web:cloud:unlink-primary-environment",  scheduler: cloudLinkScheduler,  concurrency: cloudLinkConcurrency,  execute: (input: { readonly target: CloudLinkTarget; readonly clerkToken: string | null }) =>    unlinkPrimaryEnvironmentFromCloud(input),});