import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as NodeOS from "node:os"; export const HostProcessPlatform = Context.Reference( "@t3tools/shared/hostProcess/HostProcessPlatform", { defaultValue: () => process.platform, }, ); export const HostProcessArchitecture = Context.Reference( "@t3tools/shared/hostProcess/HostProcessArchitecture", { defaultValue: () => process.arch, }, ); export const HostProcessHostname = Context.Reference( "@t3tools/shared/hostProcess/HostProcessHostname", { defaultValue: () => NodeOS.hostname(), }, ); export const HostProcessEnvironment = Context.Reference( "@t3tools/shared/hostProcess/HostProcessEnvironment", { defaultValue: () => process.env, }, ); export const HostProcessWorkingDirectory = Context.Reference( "@t3tools/shared/hostProcess/HostProcessWorkingDirectory", { defaultValue: () => process.cwd(), }, ); export const HostProcessExecutablePath = Context.Reference( "@t3tools/shared/hostProcess/HostProcessExecutablePath", { defaultValue: () => process.execPath, }, ); export const HostProcessArguments = Context.Reference>( "@t3tools/shared/hostProcess/HostProcessArguments", { defaultValue: () => process.argv, }, ); export const isHostWindows = Effect.map(HostProcessPlatform, (platform) => platform === "win32");