effect-app 3.16.0 → 4.0.0-beta.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.
Files changed (174) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/Array.js +1 -1
  3. package/dist/Chunk.d.ts +2 -4
  4. package/dist/Chunk.d.ts.map +1 -1
  5. package/dist/Chunk.js +2 -2
  6. package/dist/Config/SecretURL.d.ts +2 -12
  7. package/dist/Config/SecretURL.d.ts.map +1 -1
  8. package/dist/Config/SecretURL.js +2 -4
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config/internal/configSecretURL.js +3 -4
  11. package/dist/Effect.d.ts +12 -10
  12. package/dist/Effect.d.ts.map +1 -1
  13. package/dist/Effect.js +6 -15
  14. package/dist/Layer.d.ts +15 -9
  15. package/dist/Layer.d.ts.map +1 -1
  16. package/dist/Layer.js +2 -2
  17. package/dist/Operations.d.ts +37 -47
  18. package/dist/Operations.d.ts.map +1 -1
  19. package/dist/Option.js +3 -3
  20. package/dist/Pure.d.ts +17 -6
  21. package/dist/Pure.d.ts.map +1 -1
  22. package/dist/Pure.js +35 -17
  23. package/dist/Schema/Class.d.ts +13 -16
  24. package/dist/Schema/Class.d.ts.map +1 -1
  25. package/dist/Schema/Class.js +5 -27
  26. package/dist/Schema/brand.d.ts +7 -10
  27. package/dist/Schema/brand.d.ts.map +1 -1
  28. package/dist/Schema/brand.js +3 -2
  29. package/dist/Schema/email.d.ts +1 -1
  30. package/dist/Schema/email.d.ts.map +1 -1
  31. package/dist/Schema/email.js +2 -2
  32. package/dist/Schema/ext.d.ts +42 -45
  33. package/dist/Schema/ext.d.ts.map +1 -1
  34. package/dist/Schema/ext.js +49 -63
  35. package/dist/Schema/moreStrings.d.ts +17 -17
  36. package/dist/Schema/moreStrings.d.ts.map +1 -1
  37. package/dist/Schema/moreStrings.js +10 -10
  38. package/dist/Schema/numbers.d.ts +14 -14
  39. package/dist/Schema/numbers.js +5 -5
  40. package/dist/Schema/phoneNumber.d.ts +1 -1
  41. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  42. package/dist/Schema/phoneNumber.js +2 -2
  43. package/dist/Schema/schema.d.ts +2 -3
  44. package/dist/Schema/schema.d.ts.map +1 -1
  45. package/dist/Schema/schema.js +3 -4
  46. package/dist/Schema/strings.d.ts +4 -4
  47. package/dist/Schema/strings.d.ts.map +1 -1
  48. package/dist/Schema/strings.js +4 -4
  49. package/dist/Schema.d.ts +27 -25
  50. package/dist/Schema.d.ts.map +1 -1
  51. package/dist/Schema.js +22 -21
  52. package/dist/ServiceMap.d.ts +44 -0
  53. package/dist/ServiceMap.d.ts.map +1 -0
  54. package/dist/ServiceMap.js +91 -0
  55. package/dist/Set.d.ts +4 -4
  56. package/dist/Set.d.ts.map +1 -1
  57. package/dist/Set.js +14 -14
  58. package/dist/Struct.d.ts +4 -4
  59. package/dist/Struct.d.ts.map +1 -1
  60. package/dist/_ext/Array.d.ts.map +1 -1
  61. package/dist/_ext/Array.js +4 -4
  62. package/dist/_ext/misc.d.ts +2 -2
  63. package/dist/_ext/misc.js +4 -4
  64. package/dist/_ext/ord.ext.js +2 -2
  65. package/dist/builtin.d.ts +0 -8
  66. package/dist/builtin.d.ts.map +1 -1
  67. package/dist/builtin.js +3 -1
  68. package/dist/client/apiClientFactory.d.ts +14 -16
  69. package/dist/client/apiClientFactory.d.ts.map +1 -1
  70. package/dist/client/apiClientFactory.js +38 -23
  71. package/dist/client/clientFor.d.ts +7 -4
  72. package/dist/client/clientFor.d.ts.map +1 -1
  73. package/dist/client/errors.d.ts +36 -48
  74. package/dist/client/errors.d.ts.map +1 -1
  75. package/dist/client/errors.js +19 -9
  76. package/dist/client/makeClient.d.ts +34 -50
  77. package/dist/client/makeClient.d.ts.map +1 -1
  78. package/dist/client/makeClient.js +28 -18
  79. package/dist/http/Request.d.ts +3 -3
  80. package/dist/http/Request.d.ts.map +1 -1
  81. package/dist/http/Request.js +5 -8
  82. package/dist/http/internal/lib.d.ts +12 -13
  83. package/dist/http/internal/lib.d.ts.map +1 -1
  84. package/dist/http/internal/lib.js +14 -14
  85. package/dist/ids.d.ts +9 -9
  86. package/dist/ids.d.ts.map +1 -1
  87. package/dist/ids.js +1 -1
  88. package/dist/index.d.ts +7 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +8 -2
  91. package/dist/logger.d.ts +1 -1
  92. package/dist/middleware.d.ts +2 -2
  93. package/dist/middleware.d.ts.map +1 -1
  94. package/dist/middleware.js +3 -3
  95. package/dist/rpc/MiddlewareMaker.d.ts +17 -16
  96. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  97. package/dist/rpc/MiddlewareMaker.js +27 -18
  98. package/dist/rpc/RpcContextMap.d.ts +4 -4
  99. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  100. package/dist/rpc/RpcContextMap.js +4 -4
  101. package/dist/rpc/RpcMiddleware.d.ts +24 -40
  102. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  103. package/dist/rpc/RpcMiddleware.js +3 -10
  104. package/dist/utils/effectify.js +2 -2
  105. package/dist/utils/gen.d.ts +4 -5
  106. package/dist/utils/gen.d.ts.map +1 -1
  107. package/dist/utils/logLevel.d.ts +1 -1
  108. package/dist/utils/logLevel.d.ts.map +1 -1
  109. package/dist/utils/logLevel.js +6 -7
  110. package/dist/utils/logger.d.ts +4 -3
  111. package/dist/utils/logger.d.ts.map +1 -1
  112. package/dist/utils/logger.js +10 -9
  113. package/dist/utils.d.ts +4 -5
  114. package/dist/utils.d.ts.map +1 -1
  115. package/dist/utils.js +10 -9
  116. package/package.json +12 -21
  117. package/src/Array.ts +1 -1
  118. package/src/Chunk.ts +2 -2
  119. package/src/Config/SecretURL.ts +3 -18
  120. package/src/Config/internal/configSecretURL.ts +2 -3
  121. package/src/Effect.ts +17 -37
  122. package/src/Layer.ts +16 -11
  123. package/src/Option.ts +2 -2
  124. package/src/Pure.ts +60 -26
  125. package/src/Schema/Class.ts +17 -73
  126. package/src/Schema/brand.ts +11 -12
  127. package/src/Schema/email.ts +2 -2
  128. package/src/Schema/ext.ts +114 -167
  129. package/src/Schema/moreStrings.ts +20 -23
  130. package/src/Schema/numbers.ts +4 -4
  131. package/src/Schema/phoneNumber.ts +2 -2
  132. package/src/Schema/schema.ts +2 -3
  133. package/src/Schema/strings.ts +3 -3
  134. package/src/Schema.ts +49 -47
  135. package/src/ServiceMap.ts +187 -0
  136. package/src/Set.ts +19 -19
  137. package/src/Struct.ts +4 -4
  138. package/src/_ext/Array.ts +4 -5
  139. package/src/_ext/misc.ts +4 -4
  140. package/src/_ext/ord.ext.ts +2 -2
  141. package/src/builtin.ts +2 -8
  142. package/src/client/apiClientFactory.ts +74 -59
  143. package/src/client/clientFor.ts +10 -7
  144. package/src/client/errors.ts +28 -22
  145. package/src/client/makeClient.ts +75 -100
  146. package/src/http/Request.ts +5 -8
  147. package/src/http/internal/lib.ts +13 -13
  148. package/src/ids.ts +1 -1
  149. package/src/index.ts +10 -1
  150. package/src/middleware.ts +2 -2
  151. package/src/rpc/MiddlewareMaker.ts +76 -47
  152. package/src/rpc/RpcContextMap.ts +7 -7
  153. package/src/rpc/RpcMiddleware.ts +28 -54
  154. package/src/utils/effectify.ts +1 -1
  155. package/src/utils/gen.ts +8 -6
  156. package/src/utils/logLevel.ts +6 -6
  157. package/src/utils/logger.ts +15 -20
  158. package/src/utils.ts +12 -12
  159. package/test/dist/rpc.test.d.ts.map +1 -1
  160. package/test/schema.test.ts +8 -8
  161. package/test/utils.test.ts +2 -2
  162. package/tsconfig.json +1 -27
  163. package/dist/Context.d.ts +0 -67
  164. package/dist/Context.d.ts.map +0 -1
  165. package/dist/Context.js +0 -207
  166. package/dist/Tag.d.ts +0 -6
  167. package/dist/Tag.d.ts.map +0 -1
  168. package/dist/Tag.js +0 -9
  169. package/dist/Unify.d.ts +0 -27
  170. package/dist/Unify.d.ts.map +0 -1
  171. package/dist/Unify.js +0 -15
  172. package/src/Context.ts +0 -351
  173. package/src/Tag.ts +0 -11
  174. package/src/Unify.ts +0 -40
@@ -1,16 +1,16 @@
1
- import { LogLevel } from "effect"
1
+ import { type LogLevel } from "effect"
2
2
 
3
3
  export const LogLevelToSentry = (level: LogLevel.LogLevel) => {
4
4
  switch (level) {
5
- case LogLevel.Debug:
5
+ case "Debug":
6
6
  return "debug" as const
7
- case LogLevel.Info:
7
+ case "Info":
8
8
  return "info" as const
9
- case LogLevel.Warning:
9
+ case "Warn":
10
10
  return "warning" as const
11
- case LogLevel.Error:
11
+ case "Error":
12
12
  return "error" as const
13
- case LogLevel.Fatal:
13
+ case "Fatal":
14
14
  return "fatal" as const
15
15
  }
16
16
  return "log" as const
@@ -1,40 +1,35 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
 
4
- import { Context, Effect, type LogLevel } from "effect"
4
+ import { Effect, type LogLevel } from "effect"
5
+ import * as ServiceMap from "../ServiceMap.js"
5
6
 
6
7
  type Levels = "info" | "debug" | "warn" | "error"
7
8
 
8
- export class LogLevels extends Context.Reference<LogLevels>()("LogLevels", {
9
- defaultValue: (): ReadonlyMap<string, Levels> => new Map<string, Levels>()
9
+ export class LogLevels extends ServiceMap.Reference("LogLevels", {
10
+ defaultValue: () => new Map<string, Levels>()
10
11
  }) {}
11
12
 
12
13
  export const makeLog = (namespace: string, defaultLevel: Levels = "warn") => {
13
- const level = LogLevels.pipe(Effect.andThen((levels) => levels.get(namespace) ?? defaultLevel))
14
+ const level = LogLevels.use((levels) => Effect.succeed(levels.get(namespace) ?? defaultLevel))
14
15
  const withLogNamespace = Effect.annotateLogs({ logNamespace: namespace })
15
16
  return {
16
17
  logWarning: (...message: ReadonlyArray<any>) =>
17
- level.pipe(
18
- Effect.andThen((l) =>
19
- l === "info" || l === "debug" || l === "warn"
20
- ? Effect.logWarning(...message).pipe(withLogNamespace)
21
- : Effect.void
22
- )
23
- ),
18
+ Effect.flatMap(level, (l) =>
19
+ l === "info" || l === "debug" || l === "warn"
20
+ ? Effect.logWarning(...message).pipe(withLogNamespace)
21
+ : Effect.void),
24
22
  logError: (...message: ReadonlyArray<any>) => Effect.logError(...message).pipe(withLogNamespace),
25
23
  logFatal: (...message: ReadonlyArray<any>) => Effect.logFatal(...message).pipe(withLogNamespace),
26
24
  logInfo: (...message: ReadonlyArray<any>) =>
27
- level.pipe(
28
- Effect.andThen((l) =>
29
- l === "info" || l === "debug" ? Effect.logInfo(...message).pipe(withLogNamespace) : Effect.void
30
- )
25
+ Effect.flatMap(
26
+ level,
27
+ (l) => l === "info" || l === "debug" ? Effect.logInfo(...message).pipe(withLogNamespace) : Effect.void
31
28
  ),
32
29
  logDebug: (...message: ReadonlyArray<any>) =>
33
- level.pipe(
34
- Effect.andThen((l) => l === "debug" ? Effect.logDebug(...message).pipe(withLogNamespace) : Effect.void)
35
- ),
30
+ Effect.flatMap(level, (l) => l === "debug" ? Effect.logDebug(...message).pipe(withLogNamespace) : Effect.void),
36
31
  // for now always log
37
- logWithLevel: (level: LogLevel.LogLevel, ...message: ReadonlyArray<any>) =>
38
- Effect.logWithLevel(level, ...message).pipe(withLogNamespace)
32
+ logWithLevel: (level: LogLevel.Severity, ...message: ReadonlyArray<any>) =>
33
+ Effect.logWithLevel(level)(...message).pipe(withLogNamespace)
39
34
  }
40
35
  }
package/src/utils.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-function-type */
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  /* eslint-disable @typescript-eslint/no-redundant-type-constituents */
4
- import { Effect, Exit, Fiber, Option, Record, Runtime } from "effect"
5
- import * as Either from "effect/Either"
6
- import { type RuntimeFiber } from "effect/Fiber"
7
- import { dual, isFunction } from "effect/Function"
4
+ import { Effect, Exit, Fiber, Option, Record } from "effect"
5
+ import { dual } from "effect/Function"
6
+ import { isFunction } from "effect/Predicate"
7
+ import * as Result from "effect/Result"
8
8
  import type { GetFieldType, NumericDictionary, PropertyPath } from "lodash"
9
9
  import { identity, pipe } from "./Function.js"
10
10
  import type { DeepMutable, Equals, Mutable } from "./Types.js"
@@ -139,12 +139,12 @@ export * from "./utils/logger.js"
139
139
  export * from "./utils/logLevel.js"
140
140
  // codegen:end
141
141
 
142
- export const unsafeRight = <E, A>(ei: Either.Either<A, E>) => {
143
- if (Either.isLeft(ei)) {
144
- console.error(ei.left)
145
- throw ei.left
142
+ export const unsafeRight = <E, A>(ei: Result.Result<A, E>) => {
143
+ if (Result.isFailure(ei)) {
144
+ console.error(ei.failure)
145
+ throw ei.failure
146
146
  }
147
- return ei.right
147
+ return ei.success
148
148
  }
149
149
 
150
150
  export const unsafeSome = (makeErrorMessage: () => string) => <A>(o: Option.Option<A>) => {
@@ -907,7 +907,7 @@ export type ExcludeFromTuple<T extends readonly any[], E> = T extends [infer F,
907
907
  : [F, ...ExcludeFromTuple<R, E>]
908
908
  : []
909
909
 
910
- export const addAbortToRuntimeFiber = <A, E>(fiber: RuntimeFiber<A, E>, signal: AbortSignal) => {
910
+ export const addAbortToRuntimeFiber = <A, E>(fiber: Fiber.Fiber<A, E>, signal: AbortSignal) => {
911
911
  const abort = () => Effect.runSync(Fiber.interrupt(fiber))
912
912
  if (signal.aborted) {
913
913
  abort()
@@ -917,7 +917,7 @@ export const addAbortToRuntimeFiber = <A, E>(fiber: RuntimeFiber<A, E>, signal:
917
917
  return fiber
918
918
  }
919
919
 
920
- export const runtimeFiberAsPromise = <A, E>(fiber: RuntimeFiber<A, E>, signal?: AbortSignal) => {
920
+ export const runtimeFiberAsPromise = <A, E>(fiber: Fiber.Fiber<A, E>, signal?: AbortSignal) => {
921
921
  if (signal) addAbortToRuntimeFiber(fiber, signal)
922
922
  return new Promise((resolve, reject) =>
923
923
  fiber.addObserver((exit) => {
@@ -925,7 +925,7 @@ export const runtimeFiberAsPromise = <A, E>(fiber: RuntimeFiber<A, E>, signal?:
925
925
  resolve(exit.value)
926
926
  } else {
927
927
  // errors really should be of type Error, so we wrap in FiberFailure just as default Effect
928
- reject(Runtime.makeFiberFailure(exit.cause))
928
+ reject(exit.cause)
929
929
  }
930
930
  })
931
931
  )
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIL,qBAAa,KAAM,SAAQ,UAQzB;CAAG"}
1
+ {"version":3,"file":"rpc.test.d.ts","sourceRoot":"","sources":["../rpc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIL,qBAAa,KAAM,SAAQ,UAQzB;CAAG"}
@@ -1,25 +1,25 @@
1
1
  // import { generateFromArbitrary } from "@effect-app/infra/test"
2
- import { Array, JSONSchema, S } from "effect-app"
2
+ import { Array, S } from "effect-app"
3
3
  import { test } from "vitest"
4
4
 
5
5
  const A = S.Struct({ a: S.NonEmptyString255, email: S.NullOr(S.Email) })
6
6
  test("works", () => {
7
7
  console.log(S.StringId.make())
8
8
  // console.log(generateFromArbitrary(S.A.make(A)).value)
9
- console.log(S.AST.getTitleAnnotation(S.Email.ast))
10
- console.log(S.AST.getDescriptionAnnotation(S.Email.ast))
11
- console.log(S.AST.getJSONSchemaAnnotation(S.Email.ast))
12
- console.log(JSONSchema.make(S.Email))
13
- console.log(S.decodeEither(A, { errors: "all" })({ a: Array.range(1, 256).join(""), email: "hello" }))
9
+ console.log(S.AST.resolveTitle(S.Email.ast))
10
+ console.log(S.AST.resolveDescription(S.Email.ast))
11
+ console.log(S.toJsonSchemaDocument(S.Email))
12
+ console.log(S.toJsonSchemaDocument(S.Email))
13
+ console.log(S.decodeExit(A)({ a: Array.range(1, 256).join(""), email: "hello" }))
14
14
  })
15
15
 
16
16
  test("literal default works", () => {
17
17
  const l = S.Literal("a", "b")
18
18
  expect(l.Default).toBe("a")
19
19
  const s = S.Struct({ l: l.withDefault })
20
- expect(s.make().l).toBe("a")
20
+ expect(s.makeUnsafe({}).l).toBe("a")
21
21
 
22
22
  const l2 = l.changeDefault("b")
23
23
  const s2 = S.Struct({ l: l2.withDefault })
24
- expect(s2.make().l).toBe("b")
24
+ expect(s2.makeUnsafe({}).l).toBe("b")
25
25
  })
@@ -109,10 +109,10 @@ test("works with class", () => {
109
109
  test("works with schema class", () => {
110
110
  class Banana extends S.Class<Banana>("Banana")({
111
111
  name: S.String,
112
- state: S.Union(
112
+ state: S.Union([
113
113
  S.Struct({ a: S.String, _tag: S.Literal("a") }),
114
114
  S.Struct({ b: S.Number, _tag: S.Literal("b") })
115
- )
115
+ ])
116
116
  }) {}
117
117
 
118
118
  const copyBanana = copyOrigin(Banana)
package/tsconfig.json CHANGED
@@ -14,33 +14,7 @@
14
14
  "isolatedModules": true,
15
15
  "esModuleInterop": true,
16
16
  "skipLibCheck": true,
17
- "plugins": [
18
- {
19
- "name": "ts-plugin-sort-import-suggestions",
20
- "moveUpPatterns": [
21
- "\\.{1,2}/",
22
- "^(?:\\.\\./)+",
23
- "^#",
24
- "^@/",
25
- "effect",
26
- "^@effect/"
27
- ],
28
- "moveDownPatterns": [
29
- "^node_modules/"
30
- ],
31
- "overrides": {
32
- "effect-app": []
33
- }
34
- },
35
- {
36
- "name": "@effect/language-service",
37
- "diagnosticSeverity": {
38
- "missingEffectServiceDependency": "error",
39
- "effectFnOpportunity": "warning",
40
- "globalErrorInEffectFailure": "warning"
41
- }
42
- }
43
- ],
17
+ "plugins": [],
44
18
  "module": "Node16",
45
19
  "lib": [
46
20
  "ES2023"
package/dist/Context.d.ts DELETED
@@ -1,67 +0,0 @@
1
- /**
2
- * We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
3
- * because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
4
- * https://github.com/microsoft/TypeScript/issues/52644
5
- */
6
- import { Effect, Layer, type Scope } from "effect";
7
- import { type NonEmptyReadonlyArray } from "effect/Array";
8
- import * as Context from "effect/Context";
9
- import { type Service } from "effect/Effect";
10
- export * from "effect/Context";
11
- export declare const ServiceTag: unique symbol;
12
- export type ServiceTag = typeof ServiceTag;
13
- export declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
14
- protected abstract readonly [ServiceTag]: {
15
- readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
16
- };
17
- }
18
- export type ServiceShape<T extends Context.TagClassShape<any, any>> = Omit<T, keyof Context.TagClassShape<any, any>>;
19
- export declare abstract class ServiceTagged<ServiceKey> extends PhantomTypeParameter<string, ServiceKey> {
20
- }
21
- export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, ServiceTag>): T;
22
- export declare function assignTag<Id, Service = Id>(key?: string, creationError?: Error): <S extends object>(cls: S) => S & Context.Tag<Id, Service>;
23
- export type ServiceUse<Self, Type> = {
24
- use: <X>(body: (_: Type) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | Self> : Effect.Effect<X, never, Self>;
25
- };
26
- export type ServiceAcessorShape<Self, Type> = (Type extends Record<PropertyKey, any> ? {
27
- [k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret) ? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never : k]: Type[k] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R> ? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R> : Type[k] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self> : Type[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R> : Effect.Effect<Type[k], never, Self>;
28
- } : {}) & ServiceUse<Self, Type>;
29
- export declare const useify: <T extends Context.Tag<any, any>>(Tag: T) => <Self, Shape>() => T & ServiceUse<Self, Shape>;
30
- export declare const proxify: <T extends object>(Tag: T) => <Self, Shape>() => T & ServiceAcessorShape<Self, Shape>;
31
- export declare function TagId<const Key extends string>(key: Key): <Id, ServiceImpl>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
32
- toLayer: <E, R>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R>) => Layer.Layer<Id, E, R>;
33
- toLayerScoped: <E, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R_1>) => Layer.Layer<Id, E, Exclude<R_1, Scope.Scope>>;
34
- of: (service: Omit<Id, keyof Context.TagClassShape<any, any>>) => Id;
35
- } & Context.Tag<Id, Id> & ServiceUse<Id, ServiceImpl>;
36
- export declare const TagMakeId: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect.Effect<ServiceImpl, E, R>) => <Id>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
37
- toLayer: {
38
- (): Layer.Layer<Id, E, R>;
39
- <E_1, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Id, E_1, R_1>;
40
- };
41
- toLayerScoped: {
42
- (): Layer.Layer<Id, E, Exclude<R, Scope.Scope>>;
43
- <E_1, R_2>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E_1, R_2>): Layer.Layer<Id, E_1, Exclude<R_2, Scope.Scope>>;
44
- };
45
- of: (service: Context.TagClassShape<any, any>) => Id;
46
- make: Effect.Effect<Id, E, R>;
47
- } & Context.Tag<Id, Id> & ServiceUse<Id, ServiceImpl>;
48
- export declare const ServiceDef: <Tag extends Context.Tag<any, any>>(self: Tag) => <A>() => <LayerOpts extends {
49
- effect: Effect.Effect<A, any, any>;
50
- dependencies?: NonEmptyReadonlyArray<Layer.Layer.Any>;
51
- }>(opts: LayerOpts) => Layer.Layer<Tag, (LayerOpts extends {
52
- effect: Effect.Effect<infer _A, infer _E, infer _R>;
53
- } ? _E : never) | Service.MakeDepsE<LayerOpts>, Exclude<LayerOpts extends {
54
- effect: Effect.Effect<infer _A, infer _E_1, infer _R_1>;
55
- } ? _R_1 : never, Service.MakeDepsOut<LayerOpts>> | Service.MakeDepsIn<LayerOpts>>;
56
- /** @deprecated; use `static Default = Layer.make(this, { effect, dependencies })` instead */
57
- export declare const DefineService: <Tag extends Context.TagClass<any, any, any>, LayerOpts extends {
58
- effect: Effect.Effect<Context.Tag.Service<Tag>, any, any>;
59
- dependencies?: NonEmptyReadonlyArray<Layer.Layer.Any>;
60
- }>(tag: Tag, opts: LayerOpts) => Tag & {
61
- Default: Layer.Layer<Context.Tag.Identifier<Tag>, (LayerOpts extends {
62
- effect: Effect.Effect<infer _A, infer _E, infer _R>;
63
- } ? _E : never) | Service.MakeDepsE<LayerOpts>, Exclude<LayerOpts extends {
64
- effect: Effect.Effect<infer _A, infer _E_1, infer _R_1>;
65
- } ? _R_1 : never, Service.MakeDepsOut<LayerOpts>> | Service.MakeDepsIn<LayerOpts>>;
66
- };
67
- //# sourceMappingURL=Context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,cAAc,gBAAgB,CAAA;AAE9B,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,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CACxE,CAAC,EACD,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CACtC,CAAA;AAED,8BAAsB,aAAa,CAAC,UAAU,CAAE,SAAQ,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;CAAG;AAEnG,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAClE,CAAC,CACd;AAKD,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,IACrE,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,KAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAsBhE;AAED,MAAM,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI;IACnC,GAAG,EAAE,CAAC,CAAC,EACL,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,KACjB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GACnF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,IACtC,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG;KAErC,CAAC,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC,GACxE,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAC9D,CAAC,GACJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACrF,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAC1D,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,GACnD,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAC5D,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;CACxC,GACC,EAAE,CAAC,GACL,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE1B,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,KAAK,OAAK,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAE7G,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,MAC/C,IAAI,EAAE,KAAK,OACR,CAAC,GACD,mBAAmB,CAAC,IAAI,EAAE,KAAK,CA0BlC,CAAA;AAgGD,wBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,GAAG,IAC9C,EAAE,EAAE,WAAW,+BAOR,WAAW,KACjB,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC;aAEzD,CAAC,CAAC,EAAE,CAAC,EACZ,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACtE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;mBACX,CAAC,CAAC,EAAE,GAAC,EAClB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAC,CAAC,KACtE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,GAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;sDAiB3E;AAED,eAAO,MAAM,SAAS,GAAI,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,MAAM,EACnE,KAAK,GAAG,EACR,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,MAEvC,EAAE,+BAOY,WAAW,KACjB,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC;aAEzD;QACP,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,CAAC,GAAC,EAAE,GAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAC,EAAE,GAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAC,EAAE,GAAC,CAAC,CAAA;KACzG;mBACc;QACb,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,CAAC,GAAC,EAAE,GAAC,EACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAC,EAAE,GAAC,CAAC,GACxE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAC,EAAE,OAAO,CAAC,GAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;KAC/C;QACG,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;UAC9C,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;qDAqBlC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,GAAG,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MACtE,CAAC,QAEA,SAAS,SAAS;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,CAAC,EACD,GAAG,EACH,GAAG,CACJ,CAAA;IACD,YAAY,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CACtD,EACD,MAAM,SAAS,KAAG,KAAK,CAAC,KAAK,CAC7B,GAAG,EACD,CAAC,SAAS,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,EAAE,GAC7E,KAAK,CAAC,GACR,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAC5B,OAAO,CACP,SAAS,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,IAAE,EAAE,MAAM,IAAE,CAAC,CAAA;CAAE,GAAG,IAAE,GAAG,KAAK,EACtF,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAC/B,GACC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAIvB,CAAA;AAEV,6FAA6F;AAC7F,eAAO,MAAM,aAAa,GACxB,GAAG,SAAS,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3C,SAAS,SAAS;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EACxB,GAAG,EACH,GAAG,CACJ,CAAA;IACD,YAAY,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CACtD,EACD,KAAK,GAAG,EAAE,MAAM,SAAS,KAAG,GAAG,GAAG;IAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACzB,CAAC,SAAS,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,EAAE,GAC7E,KAAK,CAAC,GACR,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAC5B,OAAO,CACP,SAAS,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,IAAE,EAAE,MAAM,IAAE,CAAC,CAAA;KAAE,GAAG,IAAE,GAAG,KAAK,EACtF,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAC/B,GACC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAChC,CAAA;CAIO,CAAA"}
package/dist/Context.js DELETED
@@ -1,207 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /**
3
- * We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
4
- * because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
5
- * https://github.com/microsoft/TypeScript/issues/52644
6
- */
7
- import { Effect, Layer } from "effect";
8
- import * as Context from "effect/Context";
9
- export * from "effect/Context";
10
- export const ServiceTag = Symbol();
11
- export class PhantomTypeParameter {
12
- }
13
- export class ServiceTagged extends PhantomTypeParameter {
14
- }
15
- export function makeService(_) {
16
- return _;
17
- }
18
- let i = 0;
19
- const randomId = () => "unknown-service-" + i++;
20
- export function assignTag(key, creationError) {
21
- return (cls) => {
22
- const tag = Context.GenericTag(key ?? randomId());
23
- let fields = tag;
24
- if (Reflect.ownKeys(cls).includes("key")) {
25
- const { key, ...rest } = tag;
26
- fields = rest;
27
- }
28
- const t = Object.assign(cls, Object.getPrototypeOf(tag), fields);
29
- if (!creationError) {
30
- const limit = Error.stackTraceLimit;
31
- Error.stackTraceLimit = 2;
32
- creationError = new Error();
33
- Error.stackTraceLimit = limit;
34
- }
35
- // the stack is used to get the location of the tag definition, if a service is not found in the registry
36
- Object.defineProperty(t, "stack", {
37
- get() {
38
- return creationError.stack;
39
- }
40
- });
41
- return t;
42
- };
43
- }
44
- export const useify = (Tag) => () => {
45
- return Object.assign(Tag, { use: (body) => Effect.andThen(Tag, body) });
46
- };
47
- export const proxify = (Tag) => () => {
48
- const cache = new Map();
49
- const done = new Proxy(Tag, {
50
- get(_target, prop, _receiver) {
51
- if (prop === "use") {
52
- // @ts-expect-error abc
53
- return (body) => Effect.andThen(Tag, body);
54
- }
55
- if (prop in Tag) {
56
- return Tag[prop];
57
- }
58
- if (cache.has(prop)) {
59
- return cache.get(prop);
60
- }
61
- const fn = (...args) => Effect.andThen(Tag, (s) => s[prop](...args));
62
- // @ts-expect-error abc
63
- const cn = Effect.andThen(Tag, (s) => s[prop]);
64
- // @effect-diagnostics effect/floatingEffect:off
65
- Object.assign(fn, cn);
66
- Object.setPrototypeOf(fn, Object.getPrototypeOf(cn));
67
- cache.set(prop, fn);
68
- return fn;
69
- }
70
- });
71
- return done;
72
- };
73
- // export const TagMake = <ServiceImpl, R, E, const Key extends string>(
74
- // key: Key,
75
- // make: Effect.Effect<ServiceImpl, E, R>
76
- // ) =>
77
- // <Id>() => {
78
- // const limit = Error.stackTraceLimit
79
- // Error.stackTraceLimit = 2
80
- // const creationError = new Error()
81
- // Error.stackTraceLimit = limit
82
- // const c: {
83
- // new(): Context.TagClassShape<Key, ServiceImpl>
84
- // toLayer: () => Layer<Id, E, R>
85
- // toLayerScoped: () => Layer<Id, E, Exclude<R, Scope.Scope>>
86
- // } = class {
87
- // static toLayer = () => {
88
- // return Layer.effect(this as any, make)
89
- // }
90
- // static toLayerScoped = () => {
91
- // return Layer.scoped(this as any, make)
92
- // }
93
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
- // } as any
95
- // return proxify(assignTag<Id, ServiceImpl>(key, creationError)(c))<Id, ServiceImpl>()
96
- // }
97
- // export function Tag<Id, ServiceImpl, Service = Id>(key?: string) {
98
- // const limit = Error.stackTraceLimit
99
- // Error.stackTraceLimit = 2
100
- // const creationError = new Error()
101
- // Error.stackTraceLimit = limit
102
- // const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
103
- // toLayer: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, R>
104
- // toLayerScoped: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, Exclude<R, Scope.Scope>>
105
- // } = class {
106
- // constructor(service: ServiceImpl) {
107
- // Object.assign(this, service)
108
- // }
109
- // static _key?: string
110
- // static toLayer = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
111
- // return Layer.effect(this as any, eff)
112
- // }
113
- // static toLayerScoped = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
114
- // return Layer.scoped(this as any, eff)
115
- // }
116
- // static get key() {
117
- // return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
118
- // }
119
- // } as any
120
- // return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
121
- // }
122
- // export const TagMake = <ServiceImpl, R, E>(
123
- // make: Effect.Effect<ServiceImpl, E, R>,
124
- // key?: string
125
- // ) =>
126
- // <Id, Service = Id>() => {
127
- // const limit = Error.stackTraceLimit
128
- // Error.stackTraceLimit = 2
129
- // const creationError = new Error()
130
- // Error.stackTraceLimit = limit
131
- // const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
132
- // toLayer: { (): Layer<Id, E, R>; <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, R> }
133
- // toLayerScoped: {
134
- // (): Layer<Id, E, Exclude<R, Scope.Scope>>
135
- // <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, Exclude<R, Scope.Scope>>
136
- // }
137
- // make: Effect.Effect<Id, E, R>
138
- // } = class {
139
- // constructor(service: ServiceImpl) {
140
- // Object.assign(this, service)
141
- // }
142
- // static _key: string
143
- // static make = make
144
- // // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
145
- // static toLayer = (arg?: any) => {
146
- // return Layer.effect(this as any, arg ?? this.make)
147
- // }
148
- // static toLayerScoped = (arg?: any) => {
149
- // return Layer.scoped(this as any, arg ?? this.make)
150
- // }
151
- // static get key() {
152
- // return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
153
- // }
154
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
- // } as any
156
- // return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
157
- // }
158
- export function TagId(key) {
159
- return () => {
160
- const limit = Error.stackTraceLimit;
161
- Error.stackTraceLimit = 2;
162
- const creationError = new Error();
163
- Error.stackTraceLimit = limit;
164
- const c = class {
165
- constructor(service) {
166
- // TODO: instead, wrap the service, and direct calls?
167
- Object.assign(this, service);
168
- }
169
- static of = (service) => service;
170
- static toLayer = (eff) => {
171
- return Layer.effect(this, eff);
172
- };
173
- static toLayerScoped = (eff) => {
174
- return Layer.scoped(this, eff);
175
- };
176
- };
177
- return useify(assignTag(key, creationError)(c))();
178
- };
179
- }
180
- export const TagMakeId = (key, make) => () => {
181
- const limit = Error.stackTraceLimit;
182
- Error.stackTraceLimit = 2;
183
- const creationError = new Error();
184
- Error.stackTraceLimit = limit;
185
- const c = class {
186
- constructor(service) {
187
- // TODO: instead, wrap the service, and direct calls?
188
- Object.assign(this, service);
189
- }
190
- static of = (service) => service;
191
- static make = make;
192
- // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
193
- static toLayer = (arg) => {
194
- return Layer.effect(this, arg ?? this.make);
195
- };
196
- static toLayerScoped = (arg) => {
197
- return Layer.scoped(this, arg ?? this.make);
198
- };
199
- };
200
- return useify(assignTag(key, creationError)(c))();
201
- };
202
- export const ServiceDef = (self) => () => (opts) => Layer.scoped(self, opts.effect).pipe(Layer.provide([Layer.empty, ...opts.dependencies ?? []]));
203
- /** @deprecated; use `static Default = Layer.make(this, { effect, dependencies })` instead */
204
- export const DefineService = (tag, opts) => class extends tag {
205
- static Default = ServiceDef(tag)()(opts);
206
- };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Db250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RDs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsTUFBTSxRQUFRLENBQUE7QUFFbEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6QyxjQUFjLGdCQUFnQixDQUFBO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQU9ELE1BQU0sT0FBZ0IsYUFBMEIsU0FBUSxvQkFBd0M7Q0FBRztBQUVuRyxNQUFNLFVBQVUsV0FBVyxDQUErQixDQUFzQjtJQUM5RSxPQUFPLENBQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDVCxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEVBQUUsQ0FBQTtBQUUvQyxNQUFNLFVBQVUsU0FBUyxDQUFtQixHQUFZLEVBQUUsYUFBcUI7SUFDN0UsT0FBTyxDQUFtQixHQUFNLEVBQWdDLEVBQUU7UUFDaEUsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBYyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUM5RCxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUE7UUFDaEIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUE7WUFDNUIsTUFBTSxHQUFHLElBQVcsQ0FBQTtRQUN0QixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxH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
package/dist/Tag.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Layer } from "effect";
2
- export declare const makeLayer: {
3
- <I, S>(tag: import("effect/Context").Tag<I, S>): (resource: import("effect/Types").NoInfer<S>) => Layer.Layer<I>;
4
- <I, S>(tag: import("effect/Context").Tag<I, S>, resource: import("effect/Types").NoInfer<S>): Layer.Layer<I>;
5
- };
6
- //# sourceMappingURL=Tag.d.ts.map
package/dist/Tag.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAM9B,eAAO,MAAM,SAAS;;;CAAgB,CAAA"}
package/dist/Tag.js DELETED
@@ -1,9 +0,0 @@
1
- // export function accessM_<T, I, R, E, A>(self: Tag<T, I>, f: (x: T) => Effect.Effect<R, E, A>) {
2
- // return Effect.serviceWithEffect(self)(f)
3
- // }
4
- import { Layer } from "effect";
5
- // export function access_<T, I, B>(self: Tag<T, I>, f: (x: T) => B) {
6
- // return Effect.serviceWith(self)(f)
7
- // }
8
- export const makeLayer = Layer.succeed;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrR0FBa0c7QUFDbEcsNkNBQTZDO0FBQzdDLElBQUk7QUFFSixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRTlCLHNFQUFzRTtBQUN0RSx1Q0FBdUM7QUFDdkMsSUFBSTtBQUVKLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBIn0=
package/dist/Unify.d.ts DELETED
@@ -1,27 +0,0 @@
1
- import type { Chunk, Either, Option } from "effect";
2
- import type { Effect, EffectTypeId } from "effect/Effect";
3
- export declare function unifyEffect<X extends {
4
- readonly [EffectTypeId]: Effect.VarianceStruct<any, any, any>;
5
- }>(self: X): Effect<[
6
- X
7
- ] extends [{
8
- readonly [EffectTypeId]: {
9
- _A: (_: never) => infer A;
10
- };
11
- }] ? A : never, [
12
- X
13
- ] extends [{
14
- readonly [EffectTypeId]: {
15
- _E: (_: never) => infer E;
16
- };
17
- }] ? E : never, [
18
- X
19
- ] extends [{
20
- readonly [EffectTypeId]: {
21
- _R: (_: never) => infer R;
22
- };
23
- }] ? R : never>;
24
- export declare function unifyChunk<X extends Chunk.Chunk<any>>(self: X): Chunk.Chunk<[X] extends [Chunk.Chunk<infer A>] ? A : never>;
25
- export declare function unifyEither<X extends Either.Either<any, any>>(self: X): Either.Either<X extends Either.Right<any, infer AX> ? AX : X extends Either.Left<any, infer AX> ? AX : never, X extends Either.Left<infer EX, any> ? EX : X extends Either.Right<infer EX, any> ? EX : never>;
26
- export declare function unifyOption<X extends Option.Option<any>>(self: X): Option.Option<X extends Option.Some<infer A> ? A : X extends Option.None<infer A> ? A : never>;
27
- //# sourceMappingURL=Unify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Unify.d.ts","sourceRoot":"","sources":["../src/Unify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEzD,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAAE,EACrG,IAAI,EAAE,CAAC,GACN,MAAM,CACP;IAAC,CAAC;CAAC,SAAS,CAAC;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EACpF;IAAC,CAAC;CAAC,SAAS,CAAC;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EACpF;IAAC,CAAC;CAAC,SAAS,CAAC;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CACrF,CAEA;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EACnD,IAAI,EAAE,CAAC,GACN,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAE7D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAC3D,IAAI,EAAE,CAAC,GACN,MAAM,CAAC,MAAM,CACd,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,EAC9F,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAC/F,CAEA;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EACtD,IAAI,EAAE,CAAC,GACN,MAAM,CAAC,MAAM,CACd,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAC9B,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAClC,KAAK,CACV,CAEA"}
package/dist/Unify.js DELETED
@@ -1,15 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- // TODO: Add effect cause/exit etc
3
- export function unifyEffect(self) {
4
- return self;
5
- }
6
- export function unifyChunk(self) {
7
- return self;
8
- }
9
- export function unifyEither(self) {
10
- return self;
11
- }
12
- export function unifyOption(self) {
13
- return self;
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5pZnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVW5pZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELGtDQUFrQztBQUtsQyxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUFPO0lBTVAsT0FBTyxJQUFXLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQU87SUFFUCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUFPO0lBS1AsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBTztJQU1QLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyJ9