@geekmidas/constructs 3.0.8 → 3.0.9
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/{Endpoint-C991gK3T.d.cts → Endpoint-CE7qHX5S.d.cts} +14 -2
- package/dist/Endpoint-CE7qHX5S.d.cts.map +1 -0
- package/dist/{Endpoint-CRHpLPV3.d.mts → Endpoint-NvjIednd.d.mts} +14 -2
- package/dist/Endpoint-NvjIednd.d.mts.map +1 -0
- package/dist/{HonoEndpointAdaptor-BDz1qM4z.cjs → HonoEndpointAdaptor-Dl8BW_9u.cjs} +12 -3
- package/dist/HonoEndpointAdaptor-Dl8BW_9u.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DPBfEPZj.mjs → HonoEndpointAdaptor-nHYMdbBi.mjs} +12 -3
- package/dist/HonoEndpointAdaptor-nHYMdbBi.mjs.map +1 -0
- package/dist/adaptors/aws.cjs +8 -3
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +1 -1
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +1 -1
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +8 -3
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +2 -2
- package/dist/adaptors/hono.d.cts +1 -1
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +1 -1
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +2 -2
- package/dist/adaptors/testing.cjs +2 -2
- package/dist/adaptors/testing.d.cts +1 -1
- package/dist/adaptors/testing.d.mts +1 -1
- package/dist/adaptors/testing.mjs +2 -2
- package/dist/crons/index.d.cts +4 -4
- package/dist/endpoints/index.cjs +26 -2
- package/dist/endpoints/index.cjs.map +1 -1
- package/dist/endpoints/index.d.cts +23 -3
- package/dist/endpoints/index.d.cts.map +1 -1
- package/dist/endpoints/index.d.mts +21 -1
- package/dist/endpoints/index.d.mts.map +1 -1
- package/dist/endpoints/index.mjs +26 -2
- package/dist/endpoints/index.mjs.map +1 -1
- package/dist/{lazyAccessors-CJZYs9uM.mjs → lazyAccessors-5h-aWohM.mjs} +10 -3
- package/dist/{lazyAccessors-CJZYs9uM.mjs.map → lazyAccessors-5h-aWohM.mjs.map} +1 -1
- package/dist/{lazyAccessors-DHvDeww0.cjs → lazyAccessors-Bc1u42WC.cjs} +10 -3
- package/dist/{lazyAccessors-DHvDeww0.cjs.map → lazyAccessors-Bc1u42WC.cjs.map} +1 -1
- package/package.json +10 -10
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +23 -4
- package/src/endpoints/Endpoint.ts +14 -1
- package/src/endpoints/EndpointBuilder.ts +25 -0
- package/src/endpoints/HonoEndpointAdaptor.ts +24 -1
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.responseType.spec.ts +111 -0
- package/src/endpoints/__tests__/Endpoint.spec.ts +29 -0
- package/src/endpoints/__tests__/EndpointBuilder.responseType.spec.ts +47 -0
- package/src/endpoints/__tests__/HonoEndpointAdaptor.responseType.spec.ts +128 -0
- package/dist/Endpoint-C991gK3T.d.cts.map +0 -1
- package/dist/Endpoint-CRHpLPV3.d.mts.map +0 -1
- package/dist/HonoEndpointAdaptor-BDz1qM4z.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-DPBfEPZj.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/constructs",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.9",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -83,31 +83,31 @@
|
|
|
83
83
|
"zod": "~4.1.13",
|
|
84
84
|
"@geekmidas/audit": "^2.0.0",
|
|
85
85
|
"@geekmidas/cache": "^1.1.0",
|
|
86
|
+
"@geekmidas/envkit": "^1.0.5",
|
|
86
87
|
"@geekmidas/db": "^1.0.1",
|
|
87
88
|
"@geekmidas/errors": "^1.0.0",
|
|
88
|
-
"@geekmidas/envkit": "^1.0.5",
|
|
89
89
|
"@geekmidas/events": "^1.1.0",
|
|
90
90
|
"@geekmidas/logger": "^1.0.1",
|
|
91
91
|
"@geekmidas/rate-limit": "^2.0.0",
|
|
92
|
-
"@geekmidas/
|
|
92
|
+
"@geekmidas/services": "^1.0.1",
|
|
93
93
|
"@geekmidas/testkit": "^1.0.5",
|
|
94
|
-
"@geekmidas/
|
|
94
|
+
"@geekmidas/schema": "^1.0.0"
|
|
95
95
|
},
|
|
96
96
|
"peerDependencies": {
|
|
97
97
|
"@middy/core": ">=6.3.1",
|
|
98
98
|
"@types/aws-lambda": ">=8.10.92",
|
|
99
99
|
"hono": ">=4.8.2",
|
|
100
100
|
"msw": ">=2.0.0",
|
|
101
|
-
"@geekmidas/audit": "^2.0.0",
|
|
102
|
-
"@geekmidas/cache": "^1.1.0",
|
|
103
|
-
"@geekmidas/db": "^1.0.1",
|
|
104
101
|
"@geekmidas/envkit": "^1.0.5",
|
|
105
102
|
"@geekmidas/errors": "^1.0.0",
|
|
106
|
-
"@geekmidas/
|
|
103
|
+
"@geekmidas/audit": "^2.0.0",
|
|
107
104
|
"@geekmidas/logger": "^1.0.1",
|
|
108
|
-
"@geekmidas/
|
|
105
|
+
"@geekmidas/events": "^1.1.0",
|
|
109
106
|
"@geekmidas/schema": "^1.0.0",
|
|
110
|
-
"@geekmidas/
|
|
107
|
+
"@geekmidas/rate-limit": "^2.0.0",
|
|
108
|
+
"@geekmidas/services": "^1.0.1",
|
|
109
|
+
"@geekmidas/cache": "^1.1.0",
|
|
110
|
+
"@geekmidas/db": "^1.0.1"
|
|
111
111
|
},
|
|
112
112
|
"peerDependenciesMeta": {
|
|
113
113
|
"@geekmidas/audit": {
|
|
@@ -474,7 +474,15 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
474
474
|
);
|
|
475
475
|
|
|
476
476
|
const { output, metadata } = result;
|
|
477
|
-
const
|
|
477
|
+
const isJsonResponse = this.endpoint.responseType === 'application/json';
|
|
478
|
+
const body =
|
|
479
|
+
output === undefined
|
|
480
|
+
? undefined
|
|
481
|
+
: isJsonResponse
|
|
482
|
+
? JSON.stringify(output)
|
|
483
|
+
: typeof output === 'string'
|
|
484
|
+
? output
|
|
485
|
+
: String(output);
|
|
478
486
|
|
|
479
487
|
// Store response for middleware access
|
|
480
488
|
(event as any).__response = output;
|
|
@@ -485,9 +493,20 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
485
493
|
body,
|
|
486
494
|
};
|
|
487
495
|
|
|
488
|
-
//
|
|
489
|
-
|
|
490
|
-
|
|
496
|
+
// Compose headers. For non-JSON responseType, emit a default
|
|
497
|
+
// Content-Type header which metadata.headers (r.header()) can override.
|
|
498
|
+
const baseHeaders: Record<string, string> | undefined = isJsonResponse
|
|
499
|
+
? undefined
|
|
500
|
+
: { 'content-type': this.endpoint.responseType };
|
|
501
|
+
|
|
502
|
+
if (
|
|
503
|
+
baseHeaders ||
|
|
504
|
+
(metadata.headers && Object.keys(metadata.headers).length > 0)
|
|
505
|
+
) {
|
|
506
|
+
lambdaResponse.headers = {
|
|
507
|
+
...(baseHeaders ?? {}),
|
|
508
|
+
...(metadata.headers ?? {}),
|
|
509
|
+
};
|
|
491
510
|
}
|
|
492
511
|
|
|
493
512
|
// Format cookies as Set-Cookie headers
|
|
@@ -107,6 +107,12 @@ export class Endpoint<
|
|
|
107
107
|
tags?: string[];
|
|
108
108
|
/** The HTTP success status code to return (default: 200) */
|
|
109
109
|
public readonly status: SuccessStatus;
|
|
110
|
+
/**
|
|
111
|
+
* Response content type for this endpoint. Defaults to `'application/json'`.
|
|
112
|
+
* Non-JSON types cause adaptors to emit the body as-is with the declared
|
|
113
|
+
* Content-Type header instead of JSON-serializing.
|
|
114
|
+
*/
|
|
115
|
+
public readonly responseType: string;
|
|
110
116
|
/** Default headers to apply to all responses */
|
|
111
117
|
public readonly defaultHeaders: Record<string, string> = {};
|
|
112
118
|
/** Function to extract session data from the request context */
|
|
@@ -465,7 +471,7 @@ export class Endpoint<
|
|
|
465
471
|
if (responseSchema) {
|
|
466
472
|
set(
|
|
467
473
|
operation,
|
|
468
|
-
['responses', '200', 'content',
|
|
474
|
+
['responses', '200', 'content', this.responseType, 'schema'],
|
|
469
475
|
responseSchema,
|
|
470
476
|
);
|
|
471
477
|
}
|
|
@@ -606,6 +612,7 @@ export class Endpoint<
|
|
|
606
612
|
databaseService,
|
|
607
613
|
rlsConfig,
|
|
608
614
|
rlsBypass,
|
|
615
|
+
responseType,
|
|
609
616
|
}: EndpointOptions<
|
|
610
617
|
TRoute,
|
|
611
618
|
TMethod,
|
|
@@ -642,6 +649,7 @@ export class Endpoint<
|
|
|
642
649
|
this.description = description;
|
|
643
650
|
this.tags = tags;
|
|
644
651
|
this.status = status;
|
|
652
|
+
this.responseType = responseType ?? 'application/json';
|
|
645
653
|
this.endpointFn = fn;
|
|
646
654
|
|
|
647
655
|
if (getSession) {
|
|
@@ -802,6 +810,11 @@ export interface EndpointOptions<
|
|
|
802
810
|
rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
|
|
803
811
|
/** Whether to bypass RLS for this endpoint */
|
|
804
812
|
rlsBypass?: boolean;
|
|
813
|
+
/**
|
|
814
|
+
* Response content type (e.g. `'application/json'`, `'text/html'`).
|
|
815
|
+
* Defaults to `'application/json'` when omitted.
|
|
816
|
+
*/
|
|
817
|
+
responseType?: string;
|
|
805
818
|
}
|
|
806
819
|
|
|
807
820
|
/**
|
|
@@ -61,6 +61,7 @@ export class EndpointBuilder<
|
|
|
61
61
|
protected _status?: SuccessStatus;
|
|
62
62
|
protected _tags?: string[];
|
|
63
63
|
protected _memorySize?: number;
|
|
64
|
+
protected _responseType: string = 'application/json';
|
|
64
65
|
_getSession: SessionFn<TServices, TLogger, TSession, TDatabase> = () =>
|
|
65
66
|
({}) as TSession;
|
|
66
67
|
_authorize: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase> =
|
|
@@ -127,6 +128,29 @@ export class EndpointBuilder<
|
|
|
127
128
|
return this;
|
|
128
129
|
}
|
|
129
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Set the response content type for this endpoint.
|
|
133
|
+
*
|
|
134
|
+
* Defaults to `'application/json'`. When set to any other value
|
|
135
|
+
* (e.g. `'text/html'`, `'text/plain'`), the response body is emitted
|
|
136
|
+
* as-is rather than JSON-serialized, and the `Content-Type` header
|
|
137
|
+
* reflects the declared value. Runtime overrides via `r.header()` still win.
|
|
138
|
+
*
|
|
139
|
+
* @param type - The MIME type to return (e.g. `'text/html'`)
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* e.get('/checkout-page')
|
|
144
|
+
* .output(z.string())
|
|
145
|
+
* .responseType('text/html')
|
|
146
|
+
* .handle(async () => '<html>...</html>');
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
responseType(type: string): this {
|
|
150
|
+
this._responseType = type;
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
|
|
130
154
|
override publisher<T extends EventPublisher<any>, TName extends string>(
|
|
131
155
|
publisher: Service<TName, T>,
|
|
132
156
|
): EndpointBuilder<
|
|
@@ -728,6 +752,7 @@ export class EndpointBuilder<
|
|
|
728
752
|
databaseService: this._databaseService,
|
|
729
753
|
rlsConfig: this._rlsConfig,
|
|
730
754
|
rlsBypass: this._rlsBypass,
|
|
755
|
+
responseType: this._responseType,
|
|
731
756
|
});
|
|
732
757
|
}
|
|
733
758
|
}
|
|
@@ -68,6 +68,16 @@ interface EndpointFeatures {
|
|
|
68
68
|
hasRls: boolean;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Case-insensitive check for a `content-type` header in a metadata headers map.
|
|
73
|
+
*/
|
|
74
|
+
function hasContentTypeHeader(headers: Record<string, string>): boolean {
|
|
75
|
+
for (const key of Object.keys(headers)) {
|
|
76
|
+
if (key.toLowerCase() === 'content-type') return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
|
|
71
81
|
/**
|
|
72
82
|
* Analyze endpoint features at registration time (not per-request)
|
|
73
83
|
*/
|
|
@@ -591,8 +601,21 @@ export class HonoEndpoint<
|
|
|
591
601
|
logger.info({ status, body: output }, 'Outgoing response');
|
|
592
602
|
}
|
|
593
603
|
|
|
604
|
+
// Respect the endpoint's declared responseType. For JSON (default)
|
|
605
|
+
// we use c.json() which sets Content-Type and serializes. For any
|
|
606
|
+
// other type, emit the body as-is and set the header explicitly —
|
|
607
|
+
// metadata.headers (from r.header()) applied above still wins.
|
|
608
|
+
if (endpoint.responseType === 'application/json') {
|
|
609
|
+
// @ts-expect-error
|
|
610
|
+
return c.json(output, status);
|
|
611
|
+
}
|
|
612
|
+
if (
|
|
613
|
+
!(metadata.headers && hasContentTypeHeader(metadata.headers))
|
|
614
|
+
) {
|
|
615
|
+
c.header('content-type', endpoint.responseType);
|
|
616
|
+
}
|
|
594
617
|
// @ts-expect-error
|
|
595
|
-
return c.
|
|
618
|
+
return c.body(output as any, status);
|
|
596
619
|
} catch (validationError: any) {
|
|
597
620
|
logger.error(validationError, 'Output validation failed');
|
|
598
621
|
const error = wrapError(
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { EnvironmentParser } from '@geekmidas/envkit';
|
|
2
|
+
import { createMockContext, createMockV2Event } from '@geekmidas/testkit/aws';
|
|
3
|
+
import type { Context } from 'aws-lambda';
|
|
4
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { AmazonApiGatewayV2Endpoint } from '../AmazonApiGatewayV2EndpointAdaptor';
|
|
7
|
+
import { e } from '../EndpointFactory';
|
|
8
|
+
|
|
9
|
+
describe('AmazonApiGatewayV2Endpoint — responseType', () => {
|
|
10
|
+
let envParser: EnvironmentParser<{}>;
|
|
11
|
+
let mockContext: Context;
|
|
12
|
+
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
envParser = new EnvironmentParser({});
|
|
15
|
+
mockContext = createMockContext();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('JSON-stringifies body with no content-type header when responseType is default', async () => {
|
|
19
|
+
const endpoint = e
|
|
20
|
+
.get('/users/:id')
|
|
21
|
+
.params(z.object({ id: z.string() }))
|
|
22
|
+
.output(z.object({ id: z.string() }))
|
|
23
|
+
.handle(async ({ params }) => ({ id: params.id }));
|
|
24
|
+
|
|
25
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
26
|
+
|
|
27
|
+
const event = createMockV2Event({
|
|
28
|
+
routeKey: 'GET /users/{id}',
|
|
29
|
+
rawPath: '/users/123',
|
|
30
|
+
pathParameters: { id: '123' },
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const response = await adapter.handler(event, mockContext);
|
|
34
|
+
|
|
35
|
+
expect(response.statusCode).toBe(200);
|
|
36
|
+
expect(response.body).toBe(JSON.stringify({ id: '123' }));
|
|
37
|
+
// Default JSON responseType should not inject a default content-type
|
|
38
|
+
expect(response.headers?.['content-type']).toBeUndefined();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('emits raw string body and text/html header when responseType is text/html', async () => {
|
|
42
|
+
const html = '<html><body>Checkout</body></html>';
|
|
43
|
+
const endpoint = e
|
|
44
|
+
.get('/checkout-page')
|
|
45
|
+
.output(z.string())
|
|
46
|
+
.responseType('text/html')
|
|
47
|
+
.handle(async () => html);
|
|
48
|
+
|
|
49
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
50
|
+
|
|
51
|
+
const event = createMockV2Event({
|
|
52
|
+
routeKey: 'GET /checkout-page',
|
|
53
|
+
rawPath: '/checkout-page',
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const response = await adapter.handler(event, mockContext);
|
|
57
|
+
|
|
58
|
+
expect(response.statusCode).toBe(200);
|
|
59
|
+
// Body emitted as-is, NOT JSON-encoded (would be `"<html>..."`)
|
|
60
|
+
expect(response.body).toBe(html);
|
|
61
|
+
expect(response.body?.startsWith('"')).toBe(false);
|
|
62
|
+
expect(response.headers?.['content-type']).toBe('text/html');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('emits raw plain text for text/plain', async () => {
|
|
66
|
+
const endpoint = e
|
|
67
|
+
.get('/robots.txt')
|
|
68
|
+
.output(z.string())
|
|
69
|
+
.responseType('text/plain')
|
|
70
|
+
.handle(async () => 'User-agent: *');
|
|
71
|
+
|
|
72
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
73
|
+
|
|
74
|
+
const event = createMockV2Event({
|
|
75
|
+
routeKey: 'GET /robots.txt',
|
|
76
|
+
rawPath: '/robots.txt',
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const response = await adapter.handler(event, mockContext);
|
|
80
|
+
|
|
81
|
+
expect(response.statusCode).toBe(200);
|
|
82
|
+
expect(response.body).toBe('User-agent: *');
|
|
83
|
+
expect(response.headers?.['content-type']).toBe('text/plain');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('lets r.header() runtime override win over endpoint.responseType', async () => {
|
|
87
|
+
const endpoint = e
|
|
88
|
+
.get('/dynamic')
|
|
89
|
+
.output(z.string())
|
|
90
|
+
.responseType('text/html')
|
|
91
|
+
.handle(async (_ctx, r) => {
|
|
92
|
+
r.header('content-type', 'text/xml');
|
|
93
|
+
return r.send('<xml></xml>');
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
97
|
+
|
|
98
|
+
const event = createMockV2Event({
|
|
99
|
+
routeKey: 'GET /dynamic',
|
|
100
|
+
rawPath: '/dynamic',
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const response = await adapter.handler(event, mockContext);
|
|
104
|
+
|
|
105
|
+
expect(response.statusCode).toBe(200);
|
|
106
|
+
// Body still emitted raw because responseType is not JSON
|
|
107
|
+
expect(response.body).toBe('<xml></xml>');
|
|
108
|
+
// Runtime r.header() wins over the declared responseType default
|
|
109
|
+
expect(response.headers?.['content-type']).toBe('text/xml');
|
|
110
|
+
});
|
|
111
|
+
});
|
|
@@ -77,6 +77,35 @@ describe('Endpoint', () => {
|
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
79
|
|
|
80
|
+
it('should use the endpoint responseType as the OpenAPI content key', async () => {
|
|
81
|
+
const endpoint = new Endpoint({
|
|
82
|
+
route: '/checkout-page',
|
|
83
|
+
method: 'GET',
|
|
84
|
+
description: 'Hosted checkout page',
|
|
85
|
+
fn: async () => '<html></html>',
|
|
86
|
+
input: undefined,
|
|
87
|
+
output: z.string(),
|
|
88
|
+
authorize: undefined,
|
|
89
|
+
services: [],
|
|
90
|
+
status: undefined,
|
|
91
|
+
getSession: undefined,
|
|
92
|
+
logger: {} as any,
|
|
93
|
+
timeout: undefined,
|
|
94
|
+
memorySize: undefined,
|
|
95
|
+
responseType: 'text/html',
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const spec = await endpoint.toOpenApi3Route();
|
|
99
|
+
const response200 = (spec['/checkout-page'].get.responses?.['200'] ??
|
|
100
|
+
{}) as any;
|
|
101
|
+
|
|
102
|
+
expect(response200.content).toHaveProperty('text/html');
|
|
103
|
+
expect(response200.content).not.toHaveProperty('application/json');
|
|
104
|
+
expect(response200.content['text/html'].schema).toMatchObject({
|
|
105
|
+
type: 'string',
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
80
109
|
it('should include request body for POST endpoint', async () => {
|
|
81
110
|
const bodySchema = z.object({
|
|
82
111
|
name: z.string(),
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { EndpointBuilder } from '../EndpointBuilder';
|
|
4
|
+
|
|
5
|
+
describe('EndpointBuilder.responseType', () => {
|
|
6
|
+
it("defaults to 'application/json' when not set", () => {
|
|
7
|
+
const endpoint = new EndpointBuilder('/users', 'GET')
|
|
8
|
+
.output(z.object({ id: z.string() }))
|
|
9
|
+
.handle(async () => ({ id: '1' }));
|
|
10
|
+
|
|
11
|
+
expect(endpoint.responseType).toBe('application/json');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('stores a custom response type on the built Endpoint', () => {
|
|
15
|
+
const endpoint = new EndpointBuilder('/checkout-page', 'GET')
|
|
16
|
+
.output(z.string())
|
|
17
|
+
.responseType('text/html')
|
|
18
|
+
.handle(async () => '<html></html>');
|
|
19
|
+
|
|
20
|
+
expect(endpoint.responseType).toBe('text/html');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('returns the builder for chaining', () => {
|
|
24
|
+
const builder = new EndpointBuilder('/users', 'GET');
|
|
25
|
+
const result = builder.responseType('text/plain');
|
|
26
|
+
|
|
27
|
+
expect(result).toBe(builder);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('supports any arbitrary MIME type', () => {
|
|
31
|
+
const endpoint = new EndpointBuilder('/export.csv', 'GET')
|
|
32
|
+
.output(z.string())
|
|
33
|
+
.responseType('text/csv')
|
|
34
|
+
.handle(async () => 'a,b,c\n1,2,3');
|
|
35
|
+
|
|
36
|
+
expect(endpoint.responseType).toBe('text/csv');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('last call wins when chained multiple times', () => {
|
|
40
|
+
const endpoint = new EndpointBuilder('/pdf', 'GET')
|
|
41
|
+
.responseType('text/html')
|
|
42
|
+
.responseType('application/pdf')
|
|
43
|
+
.handle(async () => 'pdf-bytes');
|
|
44
|
+
|
|
45
|
+
expect(endpoint.responseType).toBe('application/pdf');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { EnvironmentParser } from '@geekmidas/envkit';
|
|
2
|
+
import type { Logger } from '@geekmidas/logger';
|
|
3
|
+
import { ServiceDiscovery } from '@geekmidas/services';
|
|
4
|
+
import { Hono } from 'hono';
|
|
5
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { Endpoint } from '../Endpoint';
|
|
8
|
+
import { HonoEndpoint } from '../HonoEndpointAdaptor';
|
|
9
|
+
|
|
10
|
+
const mockLogger: Logger = {
|
|
11
|
+
debug: vi.fn(),
|
|
12
|
+
info: vi.fn(),
|
|
13
|
+
warn: vi.fn(),
|
|
14
|
+
error: vi.fn(),
|
|
15
|
+
fatal: vi.fn(),
|
|
16
|
+
trace: vi.fn(),
|
|
17
|
+
child: vi.fn(() => mockLogger),
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function makeEndpoint<T>(overrides: {
|
|
21
|
+
route: string;
|
|
22
|
+
method: 'GET';
|
|
23
|
+
output: any;
|
|
24
|
+
fn: () => Promise<T> | T;
|
|
25
|
+
responseType?: string;
|
|
26
|
+
}) {
|
|
27
|
+
return new Endpoint({
|
|
28
|
+
route: overrides.route,
|
|
29
|
+
method: overrides.method,
|
|
30
|
+
fn: overrides.fn as any,
|
|
31
|
+
input: undefined,
|
|
32
|
+
output: overrides.output,
|
|
33
|
+
services: [],
|
|
34
|
+
logger: mockLogger,
|
|
35
|
+
timeout: undefined,
|
|
36
|
+
memorySize: undefined,
|
|
37
|
+
status: undefined,
|
|
38
|
+
getSession: undefined,
|
|
39
|
+
authorize: undefined,
|
|
40
|
+
description: undefined,
|
|
41
|
+
responseType: overrides.responseType,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
describe('HonoEndpointAdaptor — responseType', () => {
|
|
46
|
+
const envParser = new EnvironmentParser({});
|
|
47
|
+
const serviceDiscovery = ServiceDiscovery.getInstance(envParser);
|
|
48
|
+
|
|
49
|
+
it('defaults to application/json and JSON-encodes the output', async () => {
|
|
50
|
+
const endpoint = makeEndpoint({
|
|
51
|
+
route: '/users/:id',
|
|
52
|
+
method: 'GET',
|
|
53
|
+
output: z.object({ id: z.string() }),
|
|
54
|
+
fn: async () => ({ id: '123' }),
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const app = new Hono();
|
|
58
|
+
new HonoEndpoint(endpoint).addRoute(serviceDiscovery, app);
|
|
59
|
+
|
|
60
|
+
const response = await app.request('/users/123');
|
|
61
|
+
expect(response.status).toBe(200);
|
|
62
|
+
expect(response.headers.get('content-type')).toMatch(/application\/json/);
|
|
63
|
+
expect(await response.json()).toEqual({ id: '123' });
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('emits raw HTML body when responseType is text/html', async () => {
|
|
67
|
+
const html = '<html><body><h1>Checkout</h1></body></html>';
|
|
68
|
+
const endpoint = makeEndpoint({
|
|
69
|
+
route: '/checkout-page',
|
|
70
|
+
method: 'GET',
|
|
71
|
+
output: z.string(),
|
|
72
|
+
fn: async () => html,
|
|
73
|
+
responseType: 'text/html',
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const app = new Hono();
|
|
77
|
+
new HonoEndpoint(endpoint).addRoute(serviceDiscovery, app);
|
|
78
|
+
|
|
79
|
+
const response = await app.request('/checkout-page');
|
|
80
|
+
expect(response.status).toBe(200);
|
|
81
|
+
expect(response.headers.get('content-type')).toMatch(/text\/html/);
|
|
82
|
+
|
|
83
|
+
const body = await response.text();
|
|
84
|
+
// The body is emitted as-is, NOT JSON-encoded (would be `"<html>..."`)
|
|
85
|
+
expect(body).toBe(html);
|
|
86
|
+
expect(body.startsWith('"')).toBe(false);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('emits raw plain text when responseType is text/plain', async () => {
|
|
90
|
+
const endpoint = makeEndpoint({
|
|
91
|
+
route: '/robots.txt',
|
|
92
|
+
method: 'GET',
|
|
93
|
+
output: z.string(),
|
|
94
|
+
fn: async () => 'User-agent: *\nDisallow:',
|
|
95
|
+
responseType: 'text/plain',
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const app = new Hono();
|
|
99
|
+
new HonoEndpoint(endpoint).addRoute(serviceDiscovery, app);
|
|
100
|
+
|
|
101
|
+
const response = await app.request('/robots.txt');
|
|
102
|
+
expect(response.status).toBe(200);
|
|
103
|
+
expect(response.headers.get('content-type')).toMatch(/text\/plain/);
|
|
104
|
+
expect(await response.text()).toBe('User-agent: *\nDisallow:');
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('lets r.header() runtime override win over the declared responseType header', async () => {
|
|
108
|
+
const endpoint = makeEndpoint({
|
|
109
|
+
route: '/dynamic',
|
|
110
|
+
method: 'GET',
|
|
111
|
+
output: z.string(),
|
|
112
|
+
fn: async (_ctx: any, r: any) => {
|
|
113
|
+
r.header('content-type', 'text/xml; charset=utf-8');
|
|
114
|
+
return r.send('<xml></xml>');
|
|
115
|
+
},
|
|
116
|
+
responseType: 'text/html',
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
const app = new Hono();
|
|
120
|
+
new HonoEndpoint(endpoint).addRoute(serviceDiscovery, app);
|
|
121
|
+
|
|
122
|
+
const response = await app.request('/dynamic');
|
|
123
|
+
expect(response.status).toBe(200);
|
|
124
|
+
// Runtime header via r.header() takes precedence over endpoint.responseType
|
|
125
|
+
expect(response.headers.get('content-type')).toMatch(/text\/xml/);
|
|
126
|
+
expect(await response.text()).toBe('<xml></xml>');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Endpoint-C991gK3T.d.cts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/Endpoint.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Endpoint-CRHpLPV3.d.mts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/Endpoint.ts"],"sourcesContent":[],"mappings":"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"}
|