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.
- package/CHANGELOG.md +6 -0
- package/dist/Array.js +1 -1
- package/dist/Chunk.d.ts +2 -4
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +2 -2
- package/dist/Config/SecretURL.d.ts +2 -12
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +2 -4
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
- package/dist/Config/internal/configSecretURL.js +3 -4
- package/dist/Effect.d.ts +12 -10
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +6 -15
- package/dist/Layer.d.ts +15 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +2 -2
- package/dist/Operations.d.ts +37 -47
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Option.js +3 -3
- package/dist/Pure.d.ts +17 -6
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +35 -17
- package/dist/Schema/Class.d.ts +13 -16
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +5 -27
- package/dist/Schema/brand.d.ts +7 -10
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +3 -2
- package/dist/Schema/email.d.ts +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +2 -2
- package/dist/Schema/ext.d.ts +42 -45
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +49 -63
- package/dist/Schema/moreStrings.d.ts +17 -17
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +10 -10
- package/dist/Schema/numbers.d.ts +14 -14
- package/dist/Schema/numbers.js +5 -5
- package/dist/Schema/phoneNumber.d.ts +1 -1
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +2 -2
- package/dist/Schema/schema.d.ts +2 -3
- package/dist/Schema/schema.d.ts.map +1 -1
- package/dist/Schema/schema.js +3 -4
- package/dist/Schema/strings.d.ts +4 -4
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +4 -4
- package/dist/Schema.d.ts +27 -25
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +22 -21
- package/dist/ServiceMap.d.ts +44 -0
- package/dist/ServiceMap.d.ts.map +1 -0
- package/dist/ServiceMap.js +91 -0
- package/dist/Set.d.ts +4 -4
- package/dist/Set.d.ts.map +1 -1
- package/dist/Set.js +14 -14
- package/dist/Struct.d.ts +4 -4
- package/dist/Struct.d.ts.map +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +4 -4
- package/dist/_ext/misc.d.ts +2 -2
- package/dist/_ext/misc.js +4 -4
- package/dist/_ext/ord.ext.js +2 -2
- package/dist/builtin.d.ts +0 -8
- package/dist/builtin.d.ts.map +1 -1
- package/dist/builtin.js +3 -1
- package/dist/client/apiClientFactory.d.ts +14 -16
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +38 -23
- package/dist/client/clientFor.d.ts +7 -4
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/errors.d.ts +36 -48
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +19 -9
- package/dist/client/makeClient.d.ts +34 -50
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +28 -18
- package/dist/http/Request.d.ts +3 -3
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +5 -8
- package/dist/http/internal/lib.d.ts +12 -13
- package/dist/http/internal/lib.d.ts.map +1 -1
- package/dist/http/internal/lib.js +14 -14
- package/dist/ids.d.ts +9 -9
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/logger.d.ts +1 -1
- package/dist/middleware.d.ts +2 -2
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +3 -3
- package/dist/rpc/MiddlewareMaker.d.ts +17 -16
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +27 -18
- package/dist/rpc/RpcContextMap.d.ts +4 -4
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +24 -40
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +3 -10
- package/dist/utils/effectify.js +2 -2
- package/dist/utils/gen.d.ts +4 -5
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logLevel.d.ts +1 -1
- package/dist/utils/logLevel.d.ts.map +1 -1
- package/dist/utils/logLevel.js +6 -7
- package/dist/utils/logger.d.ts +4 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +10 -9
- package/dist/utils.d.ts +4 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -9
- package/package.json +12 -21
- package/src/Array.ts +1 -1
- package/src/Chunk.ts +2 -2
- package/src/Config/SecretURL.ts +3 -18
- package/src/Config/internal/configSecretURL.ts +2 -3
- package/src/Effect.ts +17 -37
- package/src/Layer.ts +16 -11
- package/src/Option.ts +2 -2
- package/src/Pure.ts +60 -26
- package/src/Schema/Class.ts +17 -73
- package/src/Schema/brand.ts +11 -12
- package/src/Schema/email.ts +2 -2
- package/src/Schema/ext.ts +114 -167
- package/src/Schema/moreStrings.ts +20 -23
- package/src/Schema/numbers.ts +4 -4
- package/src/Schema/phoneNumber.ts +2 -2
- package/src/Schema/schema.ts +2 -3
- package/src/Schema/strings.ts +3 -3
- package/src/Schema.ts +49 -47
- package/src/ServiceMap.ts +187 -0
- package/src/Set.ts +19 -19
- package/src/Struct.ts +4 -4
- package/src/_ext/Array.ts +4 -5
- package/src/_ext/misc.ts +4 -4
- package/src/_ext/ord.ext.ts +2 -2
- package/src/builtin.ts +2 -8
- package/src/client/apiClientFactory.ts +74 -59
- package/src/client/clientFor.ts +10 -7
- package/src/client/errors.ts +28 -22
- package/src/client/makeClient.ts +75 -100
- package/src/http/Request.ts +5 -8
- package/src/http/internal/lib.ts +13 -13
- package/src/ids.ts +1 -1
- package/src/index.ts +10 -1
- package/src/middleware.ts +2 -2
- package/src/rpc/MiddlewareMaker.ts +76 -47
- package/src/rpc/RpcContextMap.ts +7 -7
- package/src/rpc/RpcMiddleware.ts +28 -54
- package/src/utils/effectify.ts +1 -1
- package/src/utils/gen.ts +8 -6
- package/src/utils/logLevel.ts +6 -6
- package/src/utils/logger.ts +15 -20
- package/src/utils.ts +12 -12
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/schema.test.ts +8 -8
- package/test/utils.test.ts +2 -2
- package/tsconfig.json +1 -27
- package/dist/Context.d.ts +0 -67
- package/dist/Context.d.ts.map +0 -1
- package/dist/Context.js +0 -207
- package/dist/Tag.d.ts +0 -6
- package/dist/Tag.d.ts.map +0 -1
- package/dist/Tag.js +0 -9
- package/dist/Unify.d.ts +0 -27
- package/dist/Unify.d.ts.map +0 -1
- package/dist/Unify.js +0 -15
- package/src/Context.ts +0 -351
- package/src/Tag.ts +0 -11
- package/src/Unify.ts +0 -40
package/src/utils/logLevel.ts
CHANGED
|
@@ -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
|
|
5
|
+
case "Debug":
|
|
6
6
|
return "debug" as const
|
|
7
|
-
case
|
|
7
|
+
case "Info":
|
|
8
8
|
return "info" as const
|
|
9
|
-
case
|
|
9
|
+
case "Warn":
|
|
10
10
|
return "warning" as const
|
|
11
|
-
case
|
|
11
|
+
case "Error":
|
|
12
12
|
return "error" as const
|
|
13
|
-
case
|
|
13
|
+
case "Fatal":
|
|
14
14
|
return "fatal" as const
|
|
15
15
|
}
|
|
16
16
|
return "log" as const
|
package/src/utils/logger.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
9
|
-
defaultValue: ()
|
|
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.
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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.
|
|
38
|
-
Effect.logWithLevel(level
|
|
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
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
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:
|
|
143
|
-
if (
|
|
144
|
-
console.error(ei.
|
|
145
|
-
throw ei.
|
|
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.
|
|
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:
|
|
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:
|
|
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(
|
|
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
|
|
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"}
|
package/test/schema.test.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
// import { generateFromArbitrary } from "@effect-app/infra/test"
|
|
2
|
-
import { Array,
|
|
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.
|
|
10
|
-
console.log(S.AST.
|
|
11
|
-
console.log(S.
|
|
12
|
-
console.log(
|
|
13
|
-
console.log(S.
|
|
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.
|
|
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.
|
|
24
|
+
expect(s2.makeUnsafe({}).l).toBe("b")
|
|
25
25
|
})
|
package/test/utils.test.ts
CHANGED
|
@@ -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
|
package/dist/Context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"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"}
|
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
|
package/dist/Unify.d.ts.map
DELETED
|
@@ -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
|