From cb2bce0b79bf6a27b3278484d85793058df33471 Mon Sep 17 00:00:00 2001 From: Michael Arnaldi Date: Sat, 28 Sep 2024 12:31:22 +0200 Subject: [PATCH] rename proxy to accessors --- packages/effect/src/Effect.ts | 44 +++++++++++++-------- packages/effect/test/Effect/service.test.ts | 10 ++--- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/packages/effect/src/Effect.ts b/packages/effect/src/Effect.ts index 0d7383ace8..485dafbba8 100644 --- a/packages/effect/src/Effect.ts +++ b/packages/effect/src/Effect.ts @@ -6387,6 +6387,14 @@ export declare namespace Service { | WithDependencies<{ scoped: Effect, any, any> }> | WithDependencies<{ sync: () => AllowedType

}> + /** + * @since 2.0.0 + * @category models + */ + export type Options = + | (Service.Maker & { accessors: true }) + | (Service.Maker<{}> & { accessors?: false }) + /** * @since 2.0.0 * @category models @@ -6435,20 +6443,25 @@ export declare namespace Service { * @since 2.0.0 * @category models */ - export type ReturnWithMaker = + export type ReturnWithOptions< + Self, + Id extends string, + Options, + Proxy extends boolean = Options extends { accessors: true } ? true : false + > = & {} - & Maker extends { scoped: Effect } ? + & Options extends { scoped: Effect } ? & Return - & DefaultLayer, Maker> - & InstanceLayers, Maker> - : Maker extends { effect: Effect } ? + & DefaultLayer, Options> + & InstanceLayers, Options> + : Options extends { effect: Effect } ? & Return - & DefaultLayer - & InstanceLayers - : Maker extends { sync: () => infer Type } ? + & DefaultLayer + & InstanceLayers + : Options extends { sync: () => infer Type } ? & Return - & DefaultLayer - & InstanceLayers + & DefaultLayer + & InstanceLayers : never } @@ -6458,18 +6471,15 @@ export declare namespace Service { */ export const Service: { (): { - < - const Id extends string, - Maker extends (Service.Maker & { proxy: true }) | (Service.Maker<{}> & { proxy?: false }) - >( + ( id: Id, - maker: Maker - ): Service.ReturnWithMaker + maker: Options + ): Service.ReturnWithOptions } } = function() { return function() { const [id, maker] = arguments - const proxy = "proxy" in maker ? maker["proxy"] : false + const proxy = "accessors" in maker ? maker["accessors"] : false const limit = Error.stackTraceLimit Error.stackTraceLimit = 2 const creationError = new Error() diff --git a/packages/effect/test/Effect/service.test.ts b/packages/effect/test/Effect/service.test.ts index 6e6166113a..d05a54abbc 100644 --- a/packages/effect/test/Effect/service.test.ts +++ b/packages/effect/test/Effect/service.test.ts @@ -4,21 +4,17 @@ import * as it from "effect/test/utils/extend" import { describe, expect } from "vitest" class Prefix extends Effect.Service()("Prefix", { - sync: () => ({ - prefix: "PRE" - }) + sync: () => ({ prefix: "PRE" }) }) {} class Postfix extends Effect.Service()("Postfix", { - sync: () => ({ - postfix: "POST" - }) + sync: () => ({ postfix: "POST" }) }) {} const messages: Array = [] class Logger extends Effect.Service()("Logger", { - proxy: true, + accessors: true, effect: Effect.gen(function*() { const { prefix } = yield* Prefix const { postfix } = yield* Postfix