0.1.20 (#21)
All checks were successful
Publish / publish (push) Successful in 12s
Lint / lint (push) Successful in 12s

Co-authored-by: Julien Valverdé <julien.valverde@mailo.com>
Reviewed-on: #21
This commit was merged in pull request #21.
This commit is contained in:
Julien Valverdé
2024-09-09 04:05:14 +02:00
parent 704aa945f7
commit 6713bba164
6 changed files with 41 additions and 26 deletions

BIN
bun.lockb

Binary file not shown.

View File

@@ -1,6 +1,6 @@
{ {
"name": "@thilawyn/thilalib", "name": "@thilawyn/thilalib",
"version": "0.1.19", "version": "0.1.20",
"type": "module", "type": "module",
"files": [ "files": [
"./dist" "./dist"
@@ -53,7 +53,7 @@
}, },
"dependencies": { "dependencies": {
"remeda": "^2.12.0", "remeda": "^2.12.0",
"type-fest": "^4.26.0" "type-fest": "^4.26.1"
}, },
"devDependencies": { "devDependencies": {
"@effect/schema": "^0.72.3", "@effect/schema": "^0.72.3",

View File

@@ -16,11 +16,22 @@ const { TRPCContextCreator, TRPCContextCreatorLive } = TRPC.TRPCContextCreator.m
const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make<Services>() const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make<Services>()
const router = TRPCBuilder.pipe(Effect.map(t => t.router({ const router = Effect.gen(function*() {
const t = yield* TRPCBuilder
return t.router({
ping: t.procedure.query(({ ctx }) => ctx.run( ping: t.procedure.query(({ ctx }) => ctx.run(
Effect.succeed("pong") Effect.succeed("pong")
)), )),
})))
expressOnlyProcedure: t.procedure
.use(yield* TRPC.ExpressOnly)
.query(({ ctx }) => ctx.run(Effect.gen(function*() {
ctx.transaction
}))),
})
})
const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router) const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router)

View File

@@ -23,7 +23,7 @@ export const DecodeInput = <A, I>(
) )
return experimental_standaloneMiddleware<{ return experimental_standaloneMiddleware<{
ctx: TRPCContextRuntime<any> ctx: TRPCContextRuntime<never>
input: I input: I
}>().create( }>().create(
async ({ ctx, input, next }) => next({ async ({ ctx, input, next }) => next({

View File

@@ -9,7 +9,8 @@ export const ExpressOnly = importTRPCServer.pipe(Effect.map(({
}) => experimental_standaloneMiddleware<{ }) => experimental_standaloneMiddleware<{
ctx: TRPCContextTransaction ctx: TRPCContextTransaction
}>().create(({ ctx, next }) => next({ }>().create(({ ctx, next }) => next({
ctx: Match.value(ctx.transaction).pipe( ctx: {
transaction: Match.value(ctx.transaction).pipe(
Match.tag("Express", identity), Match.tag("Express", identity),
Match.orElse(() => { Match.orElse(() => {
@@ -19,4 +20,5 @@ export const ExpressOnly = importTRPCServer.pipe(Effect.map(({
}) })
}), }),
) )
}
})))) }))))

View File

@@ -9,7 +9,8 @@ export const WebSocketOnly = importTRPCServer.pipe(Effect.map(({
}) => experimental_standaloneMiddleware<{ }) => experimental_standaloneMiddleware<{
ctx: TRPCContextTransaction ctx: TRPCContextTransaction
}>().create(({ ctx, next }) => next({ }>().create(({ ctx, next }) => next({
ctx: Match.value(ctx.transaction).pipe( ctx: {
transaction: Match.value(ctx.transaction).pipe(
Match.tag("WebSocket", identity), Match.tag("WebSocket", identity),
Match.orElse(() => { Match.orElse(() => {
@@ -19,4 +20,5 @@ export const WebSocketOnly = importTRPCServer.pipe(Effect.map(({
}) })
}), }),
) )
}
})))) }))))