add srv params in handler + upgrade deps #7
8 changed files with 18 additions and 22 deletions
|
@ -3,11 +3,7 @@ when:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
build:
|
build:
|
||||||
image: oven/bun:${BUN_VERSION}-slim
|
image: oven/bun:1.1.3-slim
|
||||||
commands:
|
commands:
|
||||||
- bun install
|
- bun install
|
||||||
- bun run build
|
- bun run build
|
||||||
|
|
||||||
matrix:
|
|
||||||
BUN_VERSION:
|
|
||||||
- 1.1.0
|
|
|
@ -3,7 +3,7 @@ when:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
lint:
|
lint:
|
||||||
image: oven/bun:1.0.33-slim
|
image: oven/bun:1.1.3-slim
|
||||||
commands:
|
commands:
|
||||||
- bun install
|
- bun install
|
||||||
- bun run ci
|
- bun run ci
|
||||||
|
|
|
@ -13,7 +13,10 @@ steps:
|
||||||
matrix:
|
matrix:
|
||||||
BUN_VERSION:
|
BUN_VERSION:
|
||||||
- 1.1.0
|
- 1.1.0
|
||||||
|
- 1.1.1
|
||||||
|
- 1.1.2
|
||||||
|
- 1.1.3
|
||||||
|
|
||||||
services:
|
services:
|
||||||
nats:
|
nats:
|
||||||
image: nats
|
image: nats:2-alpine
|
BIN
bun.lockb
BIN
bun.lockb
Binary file not shown.
|
@ -12,7 +12,7 @@
|
||||||
"build": "tsc --project tsconfig.build.json"
|
"build": "tsc --project tsconfig.build.json"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "1.6.3",
|
"@biomejs/biome": "1.6.4",
|
||||||
"@types/bun": "latest",
|
"@types/bun": "latest",
|
||||||
"typescript": "^5.0.0"
|
"typescript": "^5.0.0"
|
||||||
},
|
},
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
"typescript": "^5.0.0"
|
"typescript": "^5.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nats": "^2.19.0",
|
"nats": "^2.22.0",
|
||||||
"zod": "^3.22.4"
|
"zod": "^3.22.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default class Service {
|
||||||
adaptor: string,
|
adaptor: string,
|
||||||
subject: string,
|
subject: string,
|
||||||
fn: RouteSubscribeTypeFn<z.infer<T>, U>,
|
fn: RouteSubscribeTypeFn<z.infer<T>, U>,
|
||||||
schema: T | undefined = undefined,
|
schema?: T,
|
||||||
) {
|
) {
|
||||||
this.adaptors[adaptor].subscribe(
|
this.adaptors[adaptor].subscribe(
|
||||||
`${this.name}.${subject}`,
|
`${this.name}.${subject}`,
|
||||||
|
@ -64,7 +64,7 @@ export default class Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await fn(req);
|
const res = await fn(this, req);
|
||||||
const internalResponse = {
|
const internalResponse = {
|
||||||
statusCode: res.statusCode,
|
statusCode: res.statusCode,
|
||||||
data: res.data,
|
data: res.data,
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import type { Request, Response } from "./messages.ts";
|
import type { Request, Response } from "./messages.ts";
|
||||||
|
import type Service from "./service.ts";
|
||||||
|
|
||||||
export type AdaptorSubscribeTypeFn = (msg: string) => Promise<string>;
|
export type AdaptorSubscribeTypeFn = (msg: string) => Promise<string>;
|
||||||
export type RouteSubscribeTypeFn<T, U> = (
|
export type RouteSubscribeTypeFn<T, U> = (
|
||||||
|
srv: Service,
|
||||||
msg: Request<T>,
|
msg: Request<T>,
|
||||||
) => Promise<Response<U>>;
|
) => Promise<Response<U>>;
|
||||||
|
|
|
@ -27,7 +27,7 @@ test("request success", async () => {
|
||||||
srv.subscribe(
|
srv.subscribe(
|
||||||
adaptorName,
|
adaptorName,
|
||||||
subject,
|
subject,
|
||||||
async (msg) => {
|
async (srv, msg) => {
|
||||||
return { data: msg.data, statusCode: statusCodeExpected };
|
return { data: msg.data, statusCode: statusCodeExpected };
|
||||||
},
|
},
|
||||||
z.string(),
|
z.string(),
|
||||||
|
@ -54,14 +54,9 @@ test("request error", async () => {
|
||||||
const statusCodeExpected = 500;
|
const statusCodeExpected = 500;
|
||||||
|
|
||||||
srv.addAdaptor(adaptorName, new NatsAdaptor({ servers: [natsServer] }));
|
srv.addAdaptor(adaptorName, new NatsAdaptor({ servers: [natsServer] }));
|
||||||
srv.subscribe(
|
srv.subscribe(adaptorName, subject, async (srv, msg) => {
|
||||||
adaptorName,
|
throw new RequestError("request error", 500);
|
||||||
subject,
|
});
|
||||||
async (msg) => {
|
|
||||||
throw new RequestError("request error", 500);
|
|
||||||
},
|
|
||||||
z.string(),
|
|
||||||
);
|
|
||||||
|
|
||||||
await srv.listen();
|
await srv.listen();
|
||||||
expect(() => {
|
expect(() => {
|
||||||
|
@ -82,7 +77,7 @@ test("request adaptor not found", async () => {
|
||||||
const statusCodeExpected = 200;
|
const statusCodeExpected = 200;
|
||||||
|
|
||||||
srv.addAdaptor(adaptorName, new NatsAdaptor({ servers: [natsServer] }));
|
srv.addAdaptor(adaptorName, new NatsAdaptor({ servers: [natsServer] }));
|
||||||
srv.subscribe(adaptorName, subject, async (msg) => {
|
srv.subscribe(adaptorName, subject, async (srv, msg) => {
|
||||||
return { data: msg.data, statusCode: statusCodeExpected };
|
return { data: msg.data, statusCode: statusCodeExpected };
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue