effect-app 0.178.0 → 0.179.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 0.179.0
4
+
5
+ ### Minor Changes
6
+
7
+ - add AcessTag support
8
+
9
+ ## 0.178.1
10
+
11
+ ### Patch Changes
12
+
13
+ - fix
14
+
3
15
  ## 0.178.0
4
16
 
5
17
  ### Minor Changes
package/_cjs/service.cjs CHANGED
@@ -10,6 +10,7 @@ exports.TagMake = exports.TagClassMakeId = exports.TagClassMake = void 0;
10
10
  exports.assignTag = assignTag;
11
11
  exports.make = make;
12
12
  exports.makeService = makeService;
13
+ exports.proxify = void 0;
13
14
  var _core = require("@effect-app/core");
14
15
  /* eslint-disable @typescript-eslint/no-explicit-any */
15
16
  /* eslint-disable @typescript-eslint/ban-types */
@@ -68,6 +69,27 @@ function assignTag(key, creationError) {
68
69
  return t;
69
70
  };
70
71
  }
72
+ const proxify = TagClass => () => {
73
+ // @ts-expect-error abc
74
+ TagClass["$"] = new Proxy({}, {
75
+ get(_target, prop, _receiver) {
76
+ // @ts-expect-error abc
77
+ return _core.Effect.andThen(TagClass, s => s[prop]);
78
+ }
79
+ });
80
+ const done = new Proxy(TagClass, {
81
+ get(_target, prop, _receiver) {
82
+ if (prop in TagClass) {
83
+ // @ts-expect-error abc
84
+ return TagClass[prop];
85
+ }
86
+ // @ts-expect-error abc
87
+ return (...args) => _core.Effect.andThen(TagClass, s => s[prop](...args));
88
+ }
89
+ });
90
+ return done;
91
+ };
92
+ exports.proxify = proxify;
71
93
  const TagMake = (key, make) => () => {
72
94
  const limit = Error.stackTraceLimit;
73
95
  Error.stackTraceLimit = 2;
@@ -81,7 +103,7 @@ const TagMake = (key, make) => () => {
81
103
  return _core.Layer.scoped(this, make);
82
104
  };
83
105
  };
84
- return assignTag(key, creationError)(c);
106
+ return proxify(assignTag(key, creationError)(c))();
85
107
  };
86
108
  exports.TagMake = TagMake;
87
109
  function TagClass(key) {
@@ -104,7 +126,7 @@ function TagClass(key) {
104
126
  return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name);
105
127
  }
106
128
  };
107
- return assignTag(key, creationError)(c);
129
+ return proxify(assignTag(key, creationError)(c))();
108
130
  }
109
131
  const TagClassMake = (make, key) => () => {
110
132
  const limit = Error.stackTraceLimit;
@@ -128,7 +150,7 @@ const TagClassMake = (make, key) => () => {
128
150
  return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name);
129
151
  }
130
152
  };
131
- return assignTag(key, creationError)(c);
153
+ return proxify(assignTag(key, creationError)(c))();
132
154
  };
133
155
  exports.TagClassMake = TagClassMake;
134
156
  function TagClassId(key) {
@@ -139,7 +161,8 @@ function TagClassId(key) {
139
161
  Error.stackTraceLimit = limit;
140
162
  const c = class {
141
163
  constructor(service) {
142
- Object.setPrototypeOf(this, Object.getPrototypeOf(service));
164
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
165
+ return Object.assign(Object.create(service), service);
143
166
  }
144
167
  static wrap = service => new this(service);
145
168
  static toLayer = eff => {
@@ -149,7 +172,7 @@ function TagClassId(key) {
149
172
  return _core.Layer.scoped(this, _core.Effect.map(eff, _ => new this(_)));
150
173
  };
151
174
  };
152
- return assignTag(key, creationError)(c);
175
+ return proxify(assignTag(key, creationError)(c))();
153
176
  };
154
177
  }
155
178
  const TagClassMakeId = (key, make) => () => {
@@ -159,7 +182,8 @@ const TagClassMakeId = (key, make) => () => {
159
182
  Error.stackTraceLimit = limit;
160
183
  const c = class {
161
184
  constructor(service) {
162
- Object.setPrototypeOf(this, Object.getPrototypeOf(service));
185
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
186
+ return Object.assign(Object.create(service), service);
163
187
  }
164
188
  static wrap = service => new this(service);
165
189
  static make = _core.Effect.andThen(make, _ => new this(_));
@@ -171,7 +195,7 @@ const TagClassMakeId = (key, make) => () => {
171
195
  return arg ? _core.Layer.scoped(this, arg) : _core.Layer.scoped(this, this.make);
172
196
  };
173
197
  };
174
- return assignTag(key, creationError)(c);
198
+ return proxify(assignTag(key, creationError)(c))();
175
199
  };
176
200
  exports.TagClassMakeId = TagClassMakeId;
177
201
  //# sourceMappingURL=service.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.cjs","names":["_core","require","ServiceTag","exports","Symbol","PhantomTypeParameter","ServiceTagged","makeService","_","make","t","i","randomId","assignTag","key","creationError","cls","tag","Context","GenericTag","fields","Reflect","ownKeys","includes","rest","Object","assign","getPrototypeOf","limit","Error","stackTraceLimit","defineProperty","get","stack","TagMake","c","toLayer","Layer","effect","toLayerScoped","scoped","TagClass","constructor","service","_key","eff","Effect","map","split","name","TagClassMake","andThen","TagClassId","setPrototypeOf","wrap","TagClassMakeId","arg"],"sources":["../src/service.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"service.cjs","names":["_core","require","ServiceTag","exports","Symbol","PhantomTypeParameter","ServiceTagged","makeService","_","make","t","i","randomId","assignTag","key","creationError","cls","tag","Context","GenericTag","fields","Reflect","ownKeys","includes","rest","Object","assign","getPrototypeOf","limit","Error","stackTraceLimit","defineProperty","get","stack","proxify","TagClass","Proxy","_target","prop","_receiver","Effect","andThen","s","done","args","TagMake","c","toLayer","Layer","effect","toLayerScoped","scoped","constructor","service","_key","eff","map","split","name","TagClassMake","TagClassId","create","wrap","TagClassMakeId","arg"],"sources":["../src/service.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -16,12 +16,12 @@ export declare function fetchApi(method: Method, path: string, body?: unknown):
16
16
  status: number;
17
17
  body: unknown;
18
18
  headers: import("@effect/platform/Http/Headers").Headers;
19
- } | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, HttpClient.Client.Default | ApiConfig>;
19
+ } | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, ApiConfig | HttpClient.Client.Default>;
20
20
  export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo>(request: Schema<RequestTo, RequestFrom, RequestR>, response: Schema<ResponseTo, ResponseFrom, ResponseR>): (method: Method, path: Path) => (req: RequestTo) => Effect.Effect<{
21
21
  body: ResponseTo;
22
22
  headers: Headers;
23
23
  status: number;
24
- }, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, HttpClient.Client.Default | ApiConfig | RequestR | ResponseR>;
24
+ }, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, ApiConfig | HttpClient.Client.Default | RequestR | ResponseR>;
25
25
  export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
26
26
  Request: REST.RequestSchemed<RequestA, RequestE>;
27
27
  Response: REST.ReqRes<ResponseA, ResponseE, any>;
package/dist/service.d.ts CHANGED
@@ -26,28 +26,46 @@ export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, Ser
26
26
  */
27
27
  export declare function make<T extends ServiceTagged<any>, I = T>(_: Context.Tag<I, T>, t: Omit<T, ServiceTag>): T;
28
28
  export declare function assignTag<Id, Service = Id>(key?: string, creationError?: Error): <S extends object>(cls: S) => S & Context.Tag<Id, Service>;
29
+ export type ServiceAcessorShape<Self, Shape> = {
30
+ $: {
31
+ [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? never : k]: Shape[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R> : Effect.Effect<Shape[k], never, Self>;
32
+ };
33
+ } & {
34
+ [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? k : never]: Shape[k] extends (...args: infer Args) => Effect.Effect<infer A, infer E, infer R> ? (...args: Args) => Effect.Effect<A, E, Self | R> : Shape[k] extends (...args: infer Args) => infer A ? (...args: Args) => Effect.Effect<A, never, Self> : never;
35
+ };
36
+ export declare const proxify: <T extends object>(TagClass: T) => <Self, Shape>() => T & {
37
+ $: { [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? never : k]: Shape[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | Self> : Effect.Effect<Shape[k], never, Self>; };
38
+ } & { [k_1 in keyof Shape as Shape[k_1] extends (...args: Array<any>) => any ? k_1 : never]: Shape[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_1, infer R_1> ? (...args: Args) => Effect.Effect<A_1, E_1, R_1 | Self> : Shape[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Self> : never; };
29
39
  export declare const TagMake: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect<ServiceImpl, E, R>) => <Id>() => {
30
40
  new (): Context.TagClassShape<Key, ServiceImpl>;
31
41
  toLayer: () => Layer<Id, E, R>;
32
42
  toLayerScoped: () => Layer<Id, E, Exclude<R, Scope.Scope>>;
33
- } & Context.Tag<Id, ServiceImpl>;
43
+ } & Context.Tag<Id, ServiceImpl> & {
44
+ $: { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: Array<any>) => any ? never : k]: ServiceImpl[k] extends Effect.Effect<infer A, infer E_1, infer R_1> ? Effect.Effect<A, E_1, R_1 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; };
45
+ } & { [k_1 in keyof ServiceImpl as ServiceImpl[k_1] extends (...args: Array<any>) => any ? k_1 : never]: ServiceImpl[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_2, infer R_2> ? (...args: Args) => Effect.Effect<A_1, E_2, R_2 | Id> : ServiceImpl[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Id> : never; };
34
46
  export declare function TagClass<Id, ServiceImpl, Service = Id>(key?: string): {
35
47
  new (service: ServiceImpl): Readonly<ServiceImpl>;
36
48
  toLayer: <E, R>(eff: Effect<ServiceImpl, E, R>) => Layer<Id, E, R>;
37
49
  toLayerScoped: <E_1, R_1>(eff: Effect<ServiceImpl, E_1, R_1>) => Layer<Id, E_1, Exclude<R_1, Scope.Scope>>;
38
- } & Context.Tag<Id, Service>;
50
+ } & Context.Tag<Id, Service> & {
51
+ $: { [k in keyof Service as Service[k] extends (...args: any[]) => any ? never : k]: Service[k] extends Effect.Effect<infer A, infer E_2, infer R_2> ? Effect.Effect<A, E_2, R_2 | Id> : Effect.Effect<Service[k], never, Id>; };
52
+ } & { [k_1 in keyof Service as Service[k_1] extends (...args: any[]) => any ? k_1 : never]: Service[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_3, infer R_3> ? (...args: Args) => Effect.Effect<A_1, E_3, R_3 | Id> : Service[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Id> : never; };
39
53
  export declare const TagClassMake: <ServiceImpl, R, E>(make: Effect<ServiceImpl, E, R>, key?: string) => <Id, Service = Id>() => {
40
54
  new (service: ServiceImpl): Readonly<ServiceImpl>;
41
55
  toLayer: () => Layer<Id, E, R>;
42
56
  toLayerScoped: () => Layer<Id, E, Exclude<R, Scope.Scope>>;
43
57
  make: Effect<Id, E, R>;
44
- } & Context.Tag<Id, Service>;
58
+ } & Context.Tag<Id, Service> & {
59
+ $: { [k in keyof Service as Service[k] extends (...args: Array<any>) => any ? never : k]: Service[k] extends Effect.Effect<infer A, infer E_1, infer R_1> ? Effect.Effect<A, E_1, R_1 | Id> : Effect.Effect<Service[k], never, Id>; };
60
+ } & { [k_1 in keyof Service as Service[k_1] extends (...args: Array<any>) => any ? k_1 : never]: Service[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_2, infer R_2> ? (...args: Args) => Effect.Effect<A_1, E_2, R_2 | Id> : Service[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Id> : never; };
45
61
  export declare function TagClassId<const Key extends string>(key: Key): <Id, ServiceImpl>() => {
46
62
  new (service: ServiceImpl): Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>;
47
63
  toLayer: <E, R>(eff: Effect<ServiceImpl, E, R>) => Layer<Id, E, R>;
48
64
  toLayerScoped: <E_1, R_1>(eff: Effect<ServiceImpl, E_1, R_1>) => Layer<Id, E_1, Exclude<R_1, Scope.Scope>>;
49
65
  wrap: (service: ServiceImpl) => Id;
50
- } & Context.Tag<Id, Id>;
66
+ } & Context.Tag<Id, Id> & {
67
+ $: { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: any[]) => any ? never : k]: ServiceImpl[k] extends Effect.Effect<infer A, infer E_2, infer R_2> ? Effect.Effect<A, E_2, R_2 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; };
68
+ } & { [k_1 in keyof ServiceImpl as ServiceImpl[k_1] extends (...args: any[]) => any ? k_1 : never]: ServiceImpl[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_3, infer R_3> ? (...args: Args) => Effect.Effect<A_1, E_3, R_3 | Id> : ServiceImpl[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Id> : never; };
51
69
  export declare const TagClassMakeId: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect<ServiceImpl, E, R>) => <Id>() => {
52
70
  new (service: ServiceImpl): Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>;
53
71
  toLayer: {
@@ -60,5 +78,7 @@ export declare const TagClassMakeId: <ServiceImpl, R, E, const Key extends strin
60
78
  };
61
79
  wrap: (service: ServiceImpl) => Id;
62
80
  make: Effect<Id, E, R>;
63
- } & Context.Tag<Id, Id>;
81
+ } & Context.Tag<Id, Id> & {
82
+ $: { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: Array<any>) => any ? never : k]: ServiceImpl[k] extends Effect.Effect<infer A, infer E_3, infer R_3> ? Effect.Effect<A, E_3, R_3 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; };
83
+ } & { [k_1 in keyof ServiceImpl as ServiceImpl[k_1] extends (...args: Array<any>) => any ? k_1 : never]: ServiceImpl[k_1] extends (...args: infer Args) => Effect.Effect<infer A_1, infer E_4, infer R_4> ? (...args: Args) => Effect.Effect<A_1, E_4, R_4 | Id> : ServiceImpl[k_1] extends (...args: infer Args_1) => infer A_2 ? (...args: Args_1) => Effect.Effect<A_2, never, Id> : never; };
64
84
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAEzD,eAAO,MAAM,UAAU,eAAW,CAAA;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAE1C,8BAAsB,oBAAoB,CAAC,UAAU,SAAS,MAAM,GAAG,EAAE,gBAAgB;IACvF,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;QACxC,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AAED;;GAEG;AACH,8BAAsB,aAAa,CAAC,UAAU,CAAE,SAAQ,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;CAAG;AAEnG;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAE/E;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAErG;AAKD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,8DAuB9E;AAED,eAAO,MAAM,OAAO;;;;gCAyBnB,CAAA;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM;kBAMnD,WAAW,GAAG,SAAS,WAAW,CAAC;;;6BAoBnD;AAED,eAAO,MAAM,YAAY,6DAEjB,MAAM;;;;;4BAkCb,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG;;;;;wBA0B5D;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;uBAsC1B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -52,6 +52,26 @@ export function assignTag(key, creationError) {
52
52
  return t;
53
53
  };
54
54
  }
55
+ export const proxify = (TagClass) => () => {
56
+ // @ts-expect-error abc
57
+ TagClass["$"] = new Proxy({}, {
58
+ get(_target, prop, _receiver) {
59
+ // @ts-expect-error abc
60
+ return Effect.andThen(TagClass, (s) => s[prop]);
61
+ }
62
+ });
63
+ const done = new Proxy(TagClass, {
64
+ get(_target, prop, _receiver) {
65
+ if (prop in TagClass) {
66
+ // @ts-expect-error abc
67
+ return TagClass[prop];
68
+ }
69
+ // @ts-expect-error abc
70
+ return (...args) => Effect.andThen(TagClass, (s) => s[prop](...args));
71
+ }
72
+ });
73
+ return done;
74
+ };
55
75
  export const TagMake = (key, make) => () => {
56
76
  const limit = Error.stackTraceLimit;
57
77
  Error.stackTraceLimit = 2;
@@ -65,7 +85,7 @@ export const TagMake = (key, make) => () => {
65
85
  return Layer.scoped(this, make);
66
86
  };
67
87
  };
68
- return assignTag(key, creationError)(c);
88
+ return proxify(assignTag(key, creationError)(c))();
69
89
  };
70
90
  export function TagClass(key) {
71
91
  const limit = Error.stackTraceLimit;
@@ -87,7 +107,7 @@ export function TagClass(key) {
87
107
  return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name);
88
108
  }
89
109
  };
90
- return assignTag(key, creationError)(c);
110
+ return proxify(assignTag(key, creationError)(c))();
91
111
  }
92
112
  export const TagClassMake = (make, key) => () => {
93
113
  const limit = Error.stackTraceLimit;
@@ -111,7 +131,7 @@ export const TagClassMake = (make, key) => () => {
111
131
  return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name);
112
132
  }
113
133
  };
114
- return assignTag(key, creationError)(c);
134
+ return proxify(assignTag(key, creationError)(c))();
115
135
  };
116
136
  export function TagClassId(key) {
117
137
  return () => {
@@ -121,7 +141,8 @@ export function TagClassId(key) {
121
141
  Error.stackTraceLimit = limit;
122
142
  const c = class {
123
143
  constructor(service) {
124
- Object.setPrototypeOf(this, Object.getPrototypeOf(service));
144
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
145
+ return Object.assign(Object.create(service), service);
125
146
  }
126
147
  static wrap = (service) => new this(service);
127
148
  static toLayer = (eff) => {
@@ -131,7 +152,7 @@ export function TagClassId(key) {
131
152
  return Layer.scoped(this, Effect.map(eff, (_) => new this(_)));
132
153
  };
133
154
  };
134
- return assignTag(key, creationError)(c);
155
+ return proxify(assignTag(key, creationError)(c))();
135
156
  };
136
157
  }
137
158
  export const TagClassMakeId = (key, make) => () => {
@@ -141,7 +162,8 @@ export const TagClassMakeId = (key, make) => () => {
141
162
  Error.stackTraceLimit = limit;
142
163
  const c = class {
143
164
  constructor(service) {
144
- Object.setPrototypeOf(this, Object.getPrototypeOf(service));
165
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
166
+ return Object.assign(Object.create(service), service);
145
167
  }
146
168
  static wrap = (service) => new this(service);
147
169
  static make = Effect.andThen(make, (_) => new this(_));
@@ -153,6 +175,6 @@ export const TagClassMakeId = (key, make) => () => {
153
175
  return arg ? Layer.scoped(this, arg) : Layer.scoped(this, this.make);
154
176
  };
155
177
  };
156
- return assignTag(key, creationError)(c);
178
+ return proxify(assignTag(key, creationError)(c))();
157
179
  };
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQ7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFzQyxDQUFvQixFQUFFLENBQXNCO0lBQ3BHLE9BQU8sQ0FBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNULE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBRSxDQUFBO0FBRS9DLE1BQU0sVUFBVSxTQUFTLENBQW1CLEdBQVksRUFBRSxhQUFxQjtJQUM3RSxPQUFPLENBQW1CLEdBQU0sRUFBZ0MsRUFBRTtRQUNoRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzlELElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQTtRQUNoQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQTtZQUM1QixN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
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQ7Ozs7R0FJRztBQUdILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFzQyxDQUFvQixFQUFFLENBQXNCO0lBQ3BHLE9BQU8sQ0FBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNULE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBRSxDQUFBO0FBRS9DLE1BQU0sVUFBVSxTQUFTLENBQW1CLEdBQVksRUFBRSxhQUFxQjtJQUM3RSxPQUFPLENBQW1CLEdBQU0sRUFBZ0MsRUFBRTtRQUNoRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzlELElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQTtRQUNoQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQTtZQUM1QixN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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "0.178.0",
3
+ "version": "0.179.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -14,8 +14,8 @@
14
14
  "uuid": "^9.0.1",
15
15
  "validator": "^13.11.0",
16
16
  "@effect-app/core": "0.149.0",
17
- "@effect-app/schema": "0.201.2",
18
- "@effect-app/fluent-extensions": "0.142.0"
17
+ "@effect-app/fluent-extensions": "0.142.0",
18
+ "@effect-app/schema": "0.201.2"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/cli": "^7.23.9",
package/src/service.ts CHANGED
@@ -65,6 +65,47 @@ export function assignTag<Id, Service = Id>(key?: string, creationError?: Error)
65
65
  }
66
66
  }
67
67
 
68
+ export type ServiceAcessorShape<Self, Shape> =
69
+ & {
70
+ $: {
71
+ [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? never : k]: Shape[k] extends
72
+ Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R>
73
+ : Effect.Effect<Shape[k], never, Self>
74
+ }
75
+ }
76
+ & {
77
+ [k in keyof Shape as Shape[k] extends (...args: Array<any>) => any ? k : never]: Shape[k] extends
78
+ (...args: infer Args) => Effect.Effect<infer A, infer E, infer R>
79
+ ? (...args: Args) => Effect.Effect<A, E, Self | R>
80
+ : Shape[k] extends (...args: infer Args) => infer A ? (...args: Args) => Effect.Effect<A, never, Self>
81
+ : never
82
+ }
83
+
84
+ export const proxify = <T extends object>(TagClass: T) =>
85
+ <Self, Shape>():
86
+ & T
87
+ & ServiceAcessorShape<Self, Shape> =>
88
+ {
89
+ // @ts-expect-error abc
90
+ TagClass["$"] = new Proxy({}, {
91
+ get(_target: any, prop: any, _receiver) {
92
+ // @ts-expect-error abc
93
+ return Effect.andThen(TagClass, (s) => s[prop])
94
+ }
95
+ })
96
+ const done = new Proxy(TagClass, {
97
+ get(_target: any, prop: any, _receiver) {
98
+ if (prop in TagClass) {
99
+ // @ts-expect-error abc
100
+ return TagClass[prop]
101
+ }
102
+ // @ts-expect-error abc
103
+ return (...args: Array<any>) => Effect.andThen(TagClass, (s: any) => s[prop](...args))
104
+ }
105
+ })
106
+ return done
107
+ }
108
+
68
109
  export const TagMake = <ServiceImpl, R, E, const Key extends string>(
69
110
  key: Key,
70
111
  make: Effect<ServiceImpl, E, R>
@@ -89,7 +130,7 @@ export const TagMake = <ServiceImpl, R, E, const Key extends string>(
89
130
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
131
  } as any
91
132
 
92
- return assignTag<Id, ServiceImpl>(key, creationError)(c)
133
+ return proxify(assignTag<Id, ServiceImpl>(key, creationError)(c))<Id, ServiceImpl>()
93
134
  }
94
135
 
95
136
  export function TagClass<Id, ServiceImpl, Service = Id>(key?: string) {
@@ -117,7 +158,7 @@ export function TagClass<Id, ServiceImpl, Service = Id>(key?: string) {
117
158
  }
118
159
  } as any
119
160
 
120
- return assignTag<Id, Service>(key, creationError)(c)
161
+ return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, Service>()
121
162
  }
122
163
 
123
164
  export const TagClassMake = <ServiceImpl, R, E>(
@@ -155,7 +196,7 @@ export const TagClassMake = <ServiceImpl, R, E>(
155
196
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
197
  } as any
157
198
 
158
- return assignTag<Id, Service>(key, creationError)(c)
199
+ return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, Service>()
159
200
  }
160
201
 
161
202
  export function TagClassId<const Key extends string>(key: Key) {
@@ -171,7 +212,8 @@ export function TagClassId<const Key extends string>(key: Key) {
171
212
  wrap: (service: ServiceImpl) => Id
172
213
  } = class {
173
214
  constructor(service: ServiceImpl) {
174
- Object.setPrototypeOf(this, Object.getPrototypeOf(service))
215
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
216
+ return Object.assign(Object.create(service as any), service)
175
217
  }
176
218
  static wrap = (service: ServiceImpl) => new this(service)
177
219
  static toLayer = <E, R>(eff: Effect<ServiceImpl, E, R>) => {
@@ -182,7 +224,7 @@ export function TagClassId<const Key extends string>(key: Key) {
182
224
  }
183
225
  } as any
184
226
 
185
- return assignTag<Id, Id>(key, creationError)(c)
227
+ return proxify(assignTag<Id, Id>(key, creationError)(c))<Id, ServiceImpl>()
186
228
  }
187
229
  }
188
230
 
@@ -207,7 +249,8 @@ export const TagClassMakeId = <ServiceImpl, R, E, const Key extends string>(
207
249
  make: Effect<Id, E, R>
208
250
  } = class {
209
251
  constructor(service: ServiceImpl) {
210
- Object.setPrototypeOf(this, Object.getPrototypeOf(service))
252
+ // this addresses prototype inheritance, but the trade-off is that the object won't be `instanceof` the Service Id class, so it's really just used as an interface only.
253
+ return Object.assign(Object.create(service as any), service)
211
254
  }
212
255
 
213
256
  static wrap = (service: ServiceImpl) => new this(service)
@@ -223,5 +266,5 @@ export const TagClassMakeId = <ServiceImpl, R, E, const Key extends string>(
223
266
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
224
267
  } as any
225
268
 
226
- return assignTag<Id, Id>(key, creationError)(c)
269
+ return proxify(assignTag<Id, Id>(key, creationError)(c))<Id, ServiceImpl>()
227
270
  }
@@ -1,23 +0,0 @@
1
- // vitest.config.ts
2
- import { defineConfig } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/node_modules/.pnpm/vite@4.0.0_@types+node@18.11.12/node_modules/vite/dist/node/index.js";
3
-
4
- // ../../vite.config.base.ts
5
- import { tsPlugin } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/packages/compiler/dist/vitePlugin.js";
6
- function makeConfig() {
7
- return {
8
- plugins: [tsPlugin({})],
9
- test: {
10
- include: ["./_src/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
11
- exclude: ["./_test/**/*"],
12
- reporters: "verbose",
13
- globals: true
14
- }
15
- };
16
- }
17
-
18
- // vitest.config.ts
19
- var vitest_config_default = defineConfig(makeConfig());
20
- export {
21
- vitest_config_default as default
22
- };
23
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZXN0LmNvbmZpZy50cyIsICIuLi8uLi92aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy9wYWNrYWdlcy9ib2lsZXJwbGF0ZS1wcmVsdWRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9Qcm9qZWN0cy9QZXJzb25hbC9lZmZlY3QtdHMtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IHRzUGx1Z2luIH0gZnJvbSBcIkBlZmZlY3QtdHMtYXBwL2NvbXBpbGVyL3ZpdGVQbHVnaW5cIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZygpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHBsdWdpbnM6IFt0c1BsdWdpbih7fSldLFxuICAgIHRlc3Q6IHtcbiAgICAgIGluY2x1ZGU6IFtcIi4vX3NyYy8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIGV4Y2x1ZGU6IFtcIi4vX3Rlc3QvKiovKlwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICAvLyByZXNvbHZlOiB7XG4gICAgLy8gICBhbGlhczoge1xuICAgIC8vICAgICBcIkBlZmZlY3QvaW8vdGVzdFwiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi90ZXN0XCIpLFxuICAgIC8vICAgICBcIkBlZmZlY3QvaW9cIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCIvc3JjXCIpXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixTQUFTLGdCQUFnQjtBQUNWLFNBQVIsYUFBOEI7QUFDbkMsU0FBTztBQUFBLElBRUwsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFBQSxJQUN0QixNQUFNO0FBQUEsTUFDSixTQUFTLENBQUMsa0RBQWtEO0FBQUEsTUFDNUQsU0FBUyxDQUFDLGNBQWM7QUFBQSxNQUN4QixXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLEVBT0Y7QUFDRjs7O0FEZkEsSUFBTyx3QkFBUSxhQUFhLFdBQVcsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K