chore: generate
This commit is contained in:
@@ -50,11 +50,7 @@ export function make<
|
||||
const T extends Tag | undefined = undefined,
|
||||
>(
|
||||
input: MakeInput<Implementation, Items, T>,
|
||||
): Node<
|
||||
Layer.Success<Implementation>,
|
||||
Layer.Error<Implementation> | Error<Items[number]>,
|
||||
T
|
||||
> {
|
||||
): Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, T> {
|
||||
return {
|
||||
kind: "layer",
|
||||
name: input.service !== undefined ? input.service.key : input.name,
|
||||
@@ -65,10 +61,7 @@ export function make<
|
||||
}
|
||||
}
|
||||
|
||||
export function unbound<R, Shape, const T extends Tag>(
|
||||
service: Context.Key<R, Shape>,
|
||||
tag: T,
|
||||
): Node<R, never, T> {
|
||||
export function unbound<R, Shape, const T extends Tag>(service: Context.Key<R, Shape>, tag: T): Node<R, never, T> {
|
||||
return {
|
||||
kind: "unbound",
|
||||
name: service.key,
|
||||
@@ -100,16 +93,12 @@ export interface Tags<Config extends TagConfig> {
|
||||
) => <const Implementation extends Layer.Any, const Items extends NodeList>(
|
||||
input: DistributiveOmit<MakeInput<Implementation, Items, Tag<Name>>, "tag"> &
|
||||
CheckTags<Items, Name | Extract<Config[Name][number], string>>,
|
||||
) => Node<
|
||||
Layer.Success<Implementation>,
|
||||
Layer.Error<Implementation> | Error<Items[number]>,
|
||||
Tag<Name>
|
||||
>
|
||||
) => Node<Layer.Success<Implementation>, Layer.Error<Implementation> | Error<Items[number]>, Tag<Name>>
|
||||
}
|
||||
|
||||
export function tags<
|
||||
const Config extends { readonly [Name in keyof Config]: readonly (keyof Config & string)[] },
|
||||
>(config: Config): Tags<Config> {
|
||||
export function tags<const Config extends { readonly [Name in keyof Config]: readonly (keyof Config & string)[] }>(
|
||||
config: Config,
|
||||
): Tags<Config> {
|
||||
const names = Object.keys(config) as TagNames<Config>[]
|
||||
const values = Object.fromEntries(names.map((name) => [name, makeTag(name)])) as Tags<Config>["values"]
|
||||
return {
|
||||
|
||||
@@ -311,10 +311,7 @@ export const layer = Layer.effect(
|
||||
.select({ seq: SessionMessageTable.seq })
|
||||
.from(SessionMessageTable)
|
||||
.where(
|
||||
and(
|
||||
eq(SessionMessageTable.session_id, input.sessionID),
|
||||
eq(SessionMessageTable.id, input.cursor.id),
|
||||
),
|
||||
and(eq(SessionMessageTable.session_id, input.sessionID), eq(SessionMessageTable.id, input.cursor.id)),
|
||||
)
|
||||
.get()
|
||||
.pipe(Effect.orDie)
|
||||
|
||||
@@ -16,8 +16,7 @@ class OtherError {
|
||||
|
||||
const tags = LayerNode.tags({ app: [] })
|
||||
const make = tags.make("app")
|
||||
const build = <A, E>(root: LayerNode.Node<A, E, any>) =>
|
||||
LayerNodeTree.compile(root) as Layer.Layer<A, E>
|
||||
const build = <A, E>(root: LayerNode.Node<A, E, any>) => LayerNodeTree.compile(root) as Layer.Layer<A, E>
|
||||
const aLayer = Layer.succeed(A, A.of({}))
|
||||
const bLayer = Layer.effect(B, Effect.as(A, B.of({})))
|
||||
const cLayer = Layer.effect(
|
||||
|
||||
@@ -14,10 +14,10 @@ class App extends Context.Service<App, { readonly run: Effect.Effect<string[]> }
|
||||
const tags = LayerNode.tags({ app: [] })
|
||||
const make = tags.make("app")
|
||||
const build = <A, E>(root: LayerNode.Node<A, E, any>, replacements?: readonly LayerNode.Replacement[]) =>
|
||||
LayerNodeTree.compile(
|
||||
root,
|
||||
new Map(replacements?.map((item) => [item.source, item.replacement])),
|
||||
) as Layer.Layer<A, E>
|
||||
LayerNodeTree.compile(root, new Map(replacements?.map((item) => [item.source, item.replacement]))) as Layer.Layer<
|
||||
A,
|
||||
E
|
||||
>
|
||||
const valueLayer = Layer.succeed(Value, Value.of({ value: "production" }))
|
||||
const greetingLayer = Layer.effect(
|
||||
Greeting,
|
||||
|
||||
@@ -111,7 +111,9 @@ describe("LocationServiceMap", () => {
|
||||
}
|
||||
}).pipe(
|
||||
Effect.scoped,
|
||||
Effect.provide(LocationServiceMap.Service.get(Location.Ref.make({ directory: AbsolutePath.make(directory) }))),
|
||||
Effect.provide(
|
||||
LocationServiceMap.Service.get(Location.Ref.make({ directory: AbsolutePath.make(directory) })),
|
||||
),
|
||||
)
|
||||
|
||||
const blockedState = yield* update(blocked.path)
|
||||
|
||||
@@ -447,7 +447,11 @@ export const defaultLayer = layer.pipe(
|
||||
Layer.provide(locationServiceMapLayer),
|
||||
)
|
||||
|
||||
const locationServiceMapNode = LayerNode.make({ service: LocationServiceMap.Service, layer: locationServiceMapLayer, deps: [] })
|
||||
const locationServiceMapNode = LayerNode.make({
|
||||
service: LocationServiceMap.Service,
|
||||
layer: locationServiceMapLayer,
|
||||
deps: [],
|
||||
})
|
||||
|
||||
export const node = LayerNode.make({
|
||||
service: Service,
|
||||
|
||||
@@ -134,7 +134,11 @@ export const defaultLayer = layer.pipe(
|
||||
Layer.provide(locationServiceMapLayer),
|
||||
)
|
||||
|
||||
const locationServiceMapNode = LayerNode.make({ service: LocationServiceMap.Service, layer: locationServiceMapLayer, deps: [] })
|
||||
const locationServiceMapNode = LayerNode.make({
|
||||
service: LocationServiceMap.Service,
|
||||
layer: locationServiceMapLayer,
|
||||
deps: [],
|
||||
})
|
||||
|
||||
export const node = LayerNode.make({
|
||||
service: Service,
|
||||
|
||||
@@ -232,10 +232,7 @@ const fragmentFailureLLM = Layer.succeed(
|
||||
const fragmentFailureEnv = LayerNodeTree.compile(
|
||||
root,
|
||||
new Map(
|
||||
[...replacements, LayerNode.replace(LLM.layer, fragmentFailureLLM)].map((item) => [
|
||||
item.source,
|
||||
item.replacement,
|
||||
]),
|
||||
[...replacements, LayerNode.replace(LLM.layer, fragmentFailureLLM)].map((item) => [item.source, item.replacement]),
|
||||
),
|
||||
)
|
||||
const itFragmentFailure = testEffect(fragmentFailureEnv)
|
||||
|
||||
@@ -45,7 +45,14 @@ function requestLayer(client: HttpClient.HttpClient) {
|
||||
function integrationLayer(client: HttpClient.HttpClient) {
|
||||
const replacement = LayerNode.replace(FetchHttpClient.layer, Layer.succeed(HttpClient.HttpClient, client))
|
||||
return LayerNodeTree.compile(
|
||||
LayerNode.group([ShareNext.node, EventV2Bridge.node, Session.node, SessionProjector.node, AccountRepo.node, Database.node]),
|
||||
LayerNode.group([
|
||||
ShareNext.node,
|
||||
EventV2Bridge.node,
|
||||
Session.node,
|
||||
SessionProjector.node,
|
||||
AccountRepo.node,
|
||||
Database.node,
|
||||
]),
|
||||
new Map([[replacement.source, replacement.replacement]]),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user