From c7c7b6c05e1b156a76fa69042fdfb498981d632b Mon Sep 17 00:00:00 2001 From: Tim Smart Date: Wed, 29 Jul 2026 09:39:24 +1200 Subject: [PATCH 1/2] Add Deno services aggregate --- .changeset/eff-145-deno-services.md | 5 +++ packages/platform-deno/src/DenoServices.ts | 49 ++++++++++++++++++++++ packages/platform-deno/src/index.ts | 5 +++ 3 files changed, 59 insertions(+) create mode 100644 .changeset/eff-145-deno-services.md create mode 100644 packages/platform-deno/src/DenoServices.ts diff --git a/.changeset/eff-145-deno-services.md b/.changeset/eff-145-deno-services.md new file mode 100644 index 00000000000..c9ef160845e --- /dev/null +++ b/.changeset/eff-145-deno-services.md @@ -0,0 +1,5 @@ +--- +"@effect/platform-deno": patch +--- + +Add the aggregate Deno platform services layer. diff --git a/packages/platform-deno/src/DenoServices.ts b/packages/platform-deno/src/DenoServices.ts new file mode 100644 index 00000000000..2539b44bfbc --- /dev/null +++ b/packages/platform-deno/src/DenoServices.ts @@ -0,0 +1,49 @@ +/** + * Aggregate Deno platform services layer. + * + * This module defines the `DenoServices` union and a single `layer` that + * provides Deno-backed child process spawning, crypto, filesystem, path, stdio, + * and terminal services. Use the layer when a Deno program wants the standard + * platform services from one place. + * + * @since 4.0.0 + */ +import type { Crypto } from "effect/Crypto" +import type { FileSystem } from "effect/FileSystem" +import * as Layer from "effect/Layer" +import type { Path } from "effect/Path" +import type { Stdio } from "effect/Stdio" +import type { Terminal } from "effect/Terminal" +import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" +import * as DenoChildProcessSpawner from "./DenoChildProcessSpawner.ts" +import * as DenoCrypto from "./DenoCrypto.ts" +import * as DenoFileSystem from "./DenoFileSystem.ts" +import * as DenoPath from "./DenoPath.ts" +import * as DenoStdio from "./DenoStdio.ts" +import * as DenoTerminal from "./DenoTerminal.ts" + +/** + * The union of core services provided by the Deno platform layer, including + * child process spawning, filesystem, path, stdio, and terminal services. + * + * @category models + * @since 4.0.0 + */ +export type DenoServices = ChildProcessSpawner | Crypto | FileSystem | Path | Terminal | Stdio + +/** + * Provides the default Deno implementations for child process spawning, + * filesystem, path, stdio, and terminal services. + * + * @category layers + * @since 4.0.0 + */ +export const layer: Layer.Layer = DenoChildProcessSpawner.layer.pipe( + Layer.provideMerge(Layer.mergeAll( + DenoFileSystem.layer, + DenoCrypto.layer, + DenoPath.layer, + DenoStdio.layer, + DenoTerminal.layer + )) +) diff --git a/packages/platform-deno/src/index.ts b/packages/platform-deno/src/index.ts index 58c78532687..9d15c961a4e 100644 --- a/packages/platform-deno/src/index.ts +++ b/packages/platform-deno/src/index.ts @@ -44,6 +44,11 @@ export * as DenoRedis from "./DenoRedis.ts" */ export * as DenoRuntime from "./DenoRuntime.ts" +/** + * @since 4.0.0 + */ +export * as DenoServices from "./DenoServices.ts" + /** * @since 4.0.0 */ From 1086e78cf2337a1a06b7ba32ff5b8d984c2293e4 Mon Sep 17 00:00:00 2001 From: Tim Smart Date: Wed, 29 Jul 2026 09:45:38 +1200 Subject: [PATCH 2/2] Document Deno crypto service --- packages/platform-deno/src/DenoServices.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/platform-deno/src/DenoServices.ts b/packages/platform-deno/src/DenoServices.ts index 2539b44bfbc..17cd7dbefcc 100644 --- a/packages/platform-deno/src/DenoServices.ts +++ b/packages/platform-deno/src/DenoServices.ts @@ -24,7 +24,7 @@ import * as DenoTerminal from "./DenoTerminal.ts" /** * The union of core services provided by the Deno platform layer, including - * child process spawning, filesystem, path, stdio, and terminal services. + * child process spawning, crypto, filesystem, path, stdio, and terminal services. * * @category models * @since 4.0.0 @@ -33,7 +33,7 @@ export type DenoServices = ChildProcessSpawner | Crypto | FileSystem | Path | Te /** * Provides the default Deno implementations for child process spawning, - * filesystem, path, stdio, and terminal services. + * crypto, filesystem, path, stdio, and terminal services. * * @category layers * @since 4.0.0