import { EnvironmentId, PersistedSavedEnvironmentRecordSchema } from "@t3tools/contracts";import * as Effect from "effect/Effect";import * as Option from "effect/Option";import * as Schema from "effect/Schema"; import * as DesktopSavedEnvironments from "../../settings/DesktopSavedEnvironments.ts";import * as IpcChannels from "../channels.ts";import { makeIpcMethod } from "../DesktopIpc.ts"; const SavedEnvironmentRegistryPayload = Schema.Array(PersistedSavedEnvironmentRecordSchema);const NonBlankString = Schema.String.check( Schema.makeFilter((value) => value.trim().length > 0 ? undefined : "Expected a non-empty string", ),); const SetSavedEnvironmentSecretInput = Schema.Struct({ environmentId: EnvironmentId, secret: NonBlankString,}); export const getSavedEnvironmentRegistry = makeIpcMethod({ channel: IpcChannels.GET_SAVED_ENVIRONMENT_REGISTRY_CHANNEL, payload: Schema.Void, result: SavedEnvironmentRegistryPayload, handler: Effect.fn("desktop.ipc.savedEnvironments.getRegistry")(function* () { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; return yield* savedEnvironments.getRegistry; }),}); export const setSavedEnvironmentRegistry = makeIpcMethod({ channel: IpcChannels.SET_SAVED_ENVIRONMENT_REGISTRY_CHANNEL, payload: SavedEnvironmentRegistryPayload, result: Schema.Void, handler: Effect.fn("desktop.ipc.savedEnvironments.setRegistry")(function* (records) { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; yield* savedEnvironments.setRegistry(records); }),}); export const getSavedEnvironmentSecret = makeIpcMethod({ channel: IpcChannels.GET_SAVED_ENVIRONMENT_SECRET_CHANNEL, payload: EnvironmentId, result: Schema.NullOr(Schema.String), handler: Effect.fn("desktop.ipc.savedEnvironments.getSecret")(function* (environmentId) { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; return Option.getOrNull(yield* savedEnvironments.getSecret(environmentId)); }),}); export const setSavedEnvironmentSecret = makeIpcMethod({ channel: IpcChannels.SET_SAVED_ENVIRONMENT_SECRET_CHANNEL, payload: SetSavedEnvironmentSecretInput, result: Schema.Boolean, handler: Effect.fn("desktop.ipc.savedEnvironments.setSecret")(function* ({ environmentId, secret, }) { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; return yield* savedEnvironments.setSecret({ environmentId, secret, }); }),}); export const removeSavedEnvironmentSecret = makeIpcMethod({ channel: IpcChannels.REMOVE_SAVED_ENVIRONMENT_SECRET_CHANNEL, payload: EnvironmentId, result: Schema.Void, handler: Effect.fn("desktop.ipc.savedEnvironments.removeSecret")(function* (environmentId) { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; yield* savedEnvironments.removeSecret(environmentId); }),});
import { EnvironmentId, PersistedSavedEnvironmentRecordSchema } from "@t3tools/contracts";
import * as Effect from "effect/Effect";
import * as Option from "effect/Option";
import * as Schema from "effect/Schema";
import * as DesktopSavedEnvironments from "../../settings/DesktopSavedEnvironments.ts";
import * as IpcChannels from "../channels.ts";
import { makeIpcMethod } from "../DesktopIpc.ts";
const SavedEnvironmentRegistryPayload = Schema.Array(PersistedSavedEnvironmentRecordSchema);
const NonBlankString = Schema.String.check(
Schema.makeFilter((value) =>
value.trim().length > 0 ? undefined : "Expected a non-empty string",
),
);
const SetSavedEnvironmentSecretInput = Schema.Struct({
environmentId: EnvironmentId,
secret: NonBlankString,
});
export const getSavedEnvironmentRegistry = makeIpcMethod({
channel: IpcChannels.GET_SAVED_ENVIRONMENT_REGISTRY_CHANNEL,
payload: Schema.Void,
result: SavedEnvironmentRegistryPayload,
handler: Effect.fn("desktop.ipc.savedEnvironments.getRegistry")(function* () {
const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
return yield* savedEnvironments.getRegistry;
}),
});
export const setSavedEnvironmentRegistry = makeIpcMethod({
channel: IpcChannels.SET_SAVED_ENVIRONMENT_REGISTRY_CHANNEL,
payload: SavedEnvironmentRegistryPayload,
result: Schema.Void,
handler: Effect.fn("desktop.ipc.savedEnvironments.setRegistry")(function* (records) {
const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
yield* savedEnvironments.setRegistry(records);
}),
});
export const getSavedEnvironmentSecret = makeIpcMethod({
channel: IpcChannels.GET_SAVED_ENVIRONMENT_SECRET_CHANNEL,
payload: EnvironmentId,
result: Schema.NullOr(Schema.String),
handler: Effect.fn("desktop.ipc.savedEnvironments.getSecret")(function* (environmentId) {
const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
return Option.getOrNull(yield* savedEnvironments.getSecret(environmentId));
}),
});
export const setSavedEnvironmentSecret = makeIpcMethod({
channel: IpcChannels.SET_SAVED_ENVIRONMENT_SECRET_CHANNEL,
payload: SetSavedEnvironmentSecretInput,
result: Schema.Boolean,
handler: Effect.fn("desktop.ipc.savedEnvironments.setSecret")(function* ({
environmentId,
secret,
}) {
const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
return yield* savedEnvironments.setSecret({
environmentId,
secret,
});
}),
});
export const removeSavedEnvironmentSecret = makeIpcMethod({
channel: IpcChannels.REMOVE_SAVED_ENVIRONMENT_SECRET_CHANNEL,
payload: EnvironmentId,
result: Schema.Void,
handler: Effect.fn("desktop.ipc.savedEnvironments.removeSecret")(function* (environmentId) {
const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
yield* savedEnvironments.removeSecret(environmentId);
}),
});