37 lines · 1.4 KB · TypeScript
RawDownload
import * as Effect from "effect/Effect";import * as Option from "effect/Option";import * as Schema from "effect/Schema"; import * as DesktopConnectionCatalogStore from "../../app/DesktopConnectionCatalogStore.ts";import * as IpcChannels from "../channels.ts";import * as DesktopIpc from "../DesktopIpc.ts"; export const getConnectionCatalog = DesktopIpc.makeIpcMethod({  channel: IpcChannels.GET_CONNECTION_CATALOG_CHANNEL,  payload: Schema.Void,  result: Schema.NullOr(Schema.String),  handler: Effect.fn("desktop.ipc.connectionCatalog.get")(function* () {    const store = yield* DesktopConnectionCatalogStore.DesktopConnectionCatalogStore;    return Option.getOrNull(yield* store.get);  }),}); export const setConnectionCatalog = DesktopIpc.makeIpcMethod({  channel: IpcChannels.SET_CONNECTION_CATALOG_CHANNEL,  payload: Schema.String,  result: Schema.Boolean,  handler: Effect.fn("desktop.ipc.connectionCatalog.set")(function* (catalog) {    const store = yield* DesktopConnectionCatalogStore.DesktopConnectionCatalogStore;    return yield* store.set(catalog);  }),}); export const clearConnectionCatalog = DesktopIpc.makeIpcMethod({  channel: IpcChannels.CLEAR_CONNECTION_CATALOG_CHANNEL,  payload: Schema.Void,  result: Schema.Void,  handler: Effect.fn("desktop.ipc.connectionCatalog.clear")(function* () {    const store = yield* DesktopConnectionCatalogStore.DesktopConnectionCatalogStore;    yield* store.clear;  }),});