@aws/nx-plugin 0.4.0 → 0.5.1
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/LICENSE-THIRD-PARTY +21 -0
- package/package.json +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +3 -1
- package/src/infra/app/generator.js +1 -1
- package/src/infra/app/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +317 -6
- package/src/trpc/backend/files/backend/README.md.template +5 -1
- package/src/trpc/backend/files/backend/src/client/index.ts.template +33 -0
- package/src/trpc/backend/files/backend/src/client/sigv4.ts.template +9 -0
- package/src/trpc/backend/files/backend/src/index.ts.template +3 -1
- package/src/trpc/backend/files/backend/src/init.ts.template +18 -0
- package/src/trpc/backend/files/backend/src/local-server.ts.template +17 -0
- package/src/trpc/backend/files/backend/src/middleware/error.ts.template +26 -0
- package/src/trpc/backend/files/backend/src/middleware/index.ts.template +15 -0
- package/src/trpc/backend/files/backend/src/middleware/logger.ts.template +26 -0
- package/src/trpc/backend/files/backend/src/middleware/metrics.ts.template +36 -0
- package/src/trpc/backend/files/backend/src/middleware/tracer.ts.template +44 -0
- package/src/trpc/backend/files/backend/src/procedures/echo.ts.template +8 -0
- package/src/trpc/backend/files/backend/src/router.ts.template +20 -0
- package/src/trpc/backend/files/common/constructs/src/app/trpc-apis/__apiNameKebabCase__.ts.template +1 -1
- package/src/trpc/backend/files/schema/src/index.ts.template +1 -7
- package/src/trpc/backend/files/schema/src/procedures/echo.ts.template +13 -0
- package/src/trpc/backend/generator.js +10 -1
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +0 -2
- package/src/trpc/backend/schema.json +0 -13
- package/src/trpc/react/files/src/hooks/useSigV4.tsx.template +20 -3
- package/src/trpc/react/generator.js +1 -1
- package/src/trpc/react/generator.js.map +1 -1
- package/src/utils/test.d.ts +4 -0
- package/src/utils/test.js +16 -1
- package/src/utils/test.js.map +1 -1
- package/src/utils/versions.d.ts +3 -1
- package/src/utils/versions.js +2 -0
- package/src/utils/versions.js.map +1 -1
- package/src/trpc/backend/files/backend/src/lambdas/index.ts.template +0 -1
- package/src/trpc/backend/files/backend/src/lambdas/middleware.ts.template +0 -146
- package/src/trpc/backend/files/backend/src/lambdas/router.ts.template +0 -36
package/LICENSE-THIRD-PARTY
CHANGED
|
@@ -39247,6 +39247,27 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
39247
39247
|
|
|
39248
39248
|
---
|
|
39249
39249
|
|
|
39250
|
+
The following software may be included in this product: semver (7.7.1)
|
|
39251
|
+
This software contains the following license and notice below:
|
|
39252
|
+
|
|
39253
|
+
The ISC License
|
|
39254
|
+
|
|
39255
|
+
Copyright (c) Isaac Z. Schlueter and Contributors
|
|
39256
|
+
|
|
39257
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
39258
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
39259
|
+
copyright notice and this permission notice appear in all copies.
|
|
39260
|
+
|
|
39261
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
39262
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
39263
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
39264
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
39265
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
39266
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
39267
|
+
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
39268
|
+
|
|
39269
|
+
---
|
|
39270
|
+
|
|
39250
39271
|
The following software may be included in this product: setprototypeof (1.2.0)
|
|
39251
39272
|
This software contains the following license and notice below:
|
|
39252
39273
|
|
package/package.json
CHANGED
|
@@ -147,6 +147,7 @@ exports[`infra generator > should configure project.json with correct targets >
|
|
|
147
147
|
"cache": true,
|
|
148
148
|
"dependsOn": [
|
|
149
149
|
"^build",
|
|
150
|
+
"compile",
|
|
150
151
|
],
|
|
151
152
|
"executor": "nx:run-commands",
|
|
152
153
|
"options": {
|
|
@@ -484,7 +485,7 @@ exports[`infra generator > should generate files with correct content > project-
|
|
|
484
485
|
"cache": true,
|
|
485
486
|
"executor": "nx:run-commands",
|
|
486
487
|
"outputs": ["{workspaceRoot}/dist/packages/test/cdk.out"],
|
|
487
|
-
"dependsOn": ["^build"],
|
|
488
|
+
"dependsOn": ["^build", "compile"],
|
|
488
489
|
"options": {
|
|
489
490
|
"cwd": "packages/test",
|
|
490
491
|
"command": "cdk synth"
|
|
@@ -792,6 +793,7 @@ exports[`infra generator > should handle custom project names correctly > custom
|
|
|
792
793
|
"cache": true,
|
|
793
794
|
"dependsOn": [
|
|
794
795
|
"^build",
|
|
796
|
+
"compile",
|
|
795
797
|
],
|
|
796
798
|
"executor": "nx:run-commands",
|
|
797
799
|
"options": {
|
|
@@ -51,7 +51,7 @@ function infraGenerator(tree, schema) {
|
|
|
51
51
|
cache: true,
|
|
52
52
|
executor: 'nx:run-commands',
|
|
53
53
|
outputs: [`{workspaceRoot}${synthDirFromRoot}`],
|
|
54
|
-
dependsOn: ['^build'],
|
|
54
|
+
dependsOn: ['^build', 'compile'], // compile clobbers dist directory, so ensure synth runs afterwards
|
|
55
55
|
options: {
|
|
56
56
|
cwd: libraryRoot,
|
|
57
57
|
command: 'cdk synth',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,329 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`trpc backend generator > should generate backend and schema projects > backend
|
|
4
|
-
"
|
|
3
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/client/index.ts 1`] = `
|
|
4
|
+
"import {
|
|
5
|
+
createTRPCClient,
|
|
6
|
+
httpBatchLink,
|
|
7
|
+
httpLink,
|
|
8
|
+
HTTPBatchLinkOptions,
|
|
9
|
+
HTTPLinkOptions,
|
|
10
|
+
splitLink,
|
|
11
|
+
} from '@trpc/client';
|
|
12
|
+
|
|
13
|
+
import { AppRouter } from '../router.js';
|
|
14
|
+
import { sigv4Fetch } from './sigv4.js';
|
|
15
|
+
|
|
16
|
+
export interface TestApiClientConfig {
|
|
17
|
+
readonly url: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const createTestApiClient = (config: TestApiClientConfig) => {
|
|
21
|
+
const linkOptions: HTTPLinkOptions<any> & HTTPBatchLinkOptions<any> = {
|
|
22
|
+
url: config.url,
|
|
23
|
+
fetch: sigv4Fetch,
|
|
24
|
+
};
|
|
25
|
+
return createTRPCClient<AppRouter>({
|
|
26
|
+
links: [
|
|
27
|
+
splitLink({
|
|
28
|
+
condition(op) {
|
|
29
|
+
return op.context.skipBatch === true;
|
|
30
|
+
},
|
|
31
|
+
true: httpLink(linkOptions),
|
|
32
|
+
false: httpBatchLink(linkOptions),
|
|
33
|
+
}),
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
"
|
|
38
|
+
`;
|
|
39
|
+
|
|
40
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/client/sigv4.ts 1`] = `
|
|
41
|
+
"import { AwsClient } from 'aws4fetch';
|
|
42
|
+
import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
|
|
43
|
+
|
|
44
|
+
const credentialProvider = fromNodeProviderChain();
|
|
45
|
+
|
|
46
|
+
export const sigv4Fetch = (async (...args) => {
|
|
47
|
+
const client = new AwsClient(await credentialProvider());
|
|
48
|
+
return client.fetch(...args);
|
|
49
|
+
}) satisfies AwsClient['fetch'];
|
|
50
|
+
"
|
|
51
|
+
`;
|
|
52
|
+
|
|
53
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/index.ts 1`] = `
|
|
54
|
+
"export type { AppRouter } from './router.js';
|
|
55
|
+
export type { Context } from './init.js';
|
|
56
|
+
export * from './client/index.js';
|
|
57
|
+
"
|
|
58
|
+
`;
|
|
59
|
+
|
|
60
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/init.ts 1`] = `
|
|
61
|
+
"import { initTRPC } from '@trpc/server';
|
|
62
|
+
import {
|
|
63
|
+
createErrorPlugin,
|
|
64
|
+
createLoggerPlugin,
|
|
65
|
+
createMetricsPlugin,
|
|
66
|
+
createTracerPlugin,
|
|
67
|
+
IMiddlewareContext,
|
|
68
|
+
} from './middleware/index.js';
|
|
69
|
+
|
|
70
|
+
export type Context = IMiddlewareContext;
|
|
71
|
+
|
|
72
|
+
export const t = initTRPC.context<Context>().create();
|
|
73
|
+
|
|
74
|
+
export const publicProcedure = t.procedure
|
|
75
|
+
.unstable_concat(createLoggerPlugin())
|
|
76
|
+
.unstable_concat(createTracerPlugin())
|
|
77
|
+
.unstable_concat(createMetricsPlugin())
|
|
78
|
+
.unstable_concat(createErrorPlugin());
|
|
5
79
|
"
|
|
6
80
|
`;
|
|
7
81
|
|
|
8
|
-
exports[`trpc backend generator > should generate backend and schema projects >
|
|
82
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/local-server.ts 1`] = `
|
|
83
|
+
"import { createHTTPServer } from '@trpc/server/adapters/standalone';
|
|
84
|
+
import { appRouter } from './router.js';
|
|
85
|
+
|
|
86
|
+
const PORT = 2022;
|
|
87
|
+
|
|
88
|
+
createHTTPServer({
|
|
89
|
+
router: appRouter,
|
|
90
|
+
createContext() {
|
|
91
|
+
return {
|
|
92
|
+
event: {} as any,
|
|
93
|
+
context: {} as any,
|
|
94
|
+
info: {} as any,
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
}).listen(PORT);
|
|
98
|
+
|
|
99
|
+
console.log(\`Local TRPC server listening on port \${PORT}\`);
|
|
100
|
+
"
|
|
101
|
+
`;
|
|
102
|
+
|
|
103
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/middleware/error.ts 1`] = `
|
|
104
|
+
"import { initTRPC, TRPCError } from '@trpc/server';
|
|
105
|
+
|
|
106
|
+
export const createErrorPlugin = () => {
|
|
107
|
+
const t = initTRPC.context().create();
|
|
108
|
+
return t.procedure.use(async (opts) => {
|
|
109
|
+
const response = await opts.next({
|
|
110
|
+
ctx: {
|
|
111
|
+
...opts.ctx,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (!response.ok) {
|
|
116
|
+
if (response.error instanceof TRPCError) {
|
|
117
|
+
throw response.error;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
throw new TRPCError({
|
|
121
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
122
|
+
message: 'An unexpected error occurred, please try again later.',
|
|
123
|
+
cause: response.error,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return response;
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
"
|
|
131
|
+
`;
|
|
132
|
+
|
|
133
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/middleware/index.ts 1`] = `
|
|
134
|
+
"import { CreateAWSLambdaContextOptions } from '@trpc/server/adapters/aws-lambda';
|
|
135
|
+
import type { APIGatewayProxyEventV2WithIAMAuthorizer } from 'aws-lambda';
|
|
136
|
+
import { ILoggerContext } from './logger.js';
|
|
137
|
+
import { IMetricsContext } from './metrics.js';
|
|
138
|
+
import { ITracerContext } from './tracer.js';
|
|
139
|
+
|
|
140
|
+
export * from './logger.js';
|
|
141
|
+
export * from './metrics.js';
|
|
142
|
+
export * from './tracer.js';
|
|
143
|
+
export * from './error.js';
|
|
144
|
+
|
|
145
|
+
export type IMiddlewareContext =
|
|
146
|
+
CreateAWSLambdaContextOptions<APIGatewayProxyEventV2WithIAMAuthorizer> &
|
|
147
|
+
ILoggerContext &
|
|
148
|
+
IMetricsContext &
|
|
149
|
+
ITracerContext;
|
|
150
|
+
"
|
|
151
|
+
`;
|
|
152
|
+
|
|
153
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/middleware/logger.ts 1`] = `
|
|
154
|
+
"import { initTRPC } from '@trpc/server';
|
|
155
|
+
import { Logger } from '@aws-lambda-powertools/logger';
|
|
156
|
+
|
|
157
|
+
export interface ILoggerContext {
|
|
158
|
+
logger?: Logger;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export const createLoggerPlugin = () => {
|
|
162
|
+
const t = initTRPC.context<ILoggerContext>().create();
|
|
163
|
+
return t.procedure.use(async (opts) => {
|
|
164
|
+
const logger = new Logger();
|
|
165
|
+
|
|
166
|
+
const response = await opts.next({
|
|
167
|
+
ctx: {
|
|
168
|
+
...opts.ctx,
|
|
169
|
+
logger,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
if (!response.ok) {
|
|
174
|
+
logger.error('Unexpected error occured', response.error.cause ?? '');
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return response;
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
"
|
|
181
|
+
`;
|
|
182
|
+
|
|
183
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/middleware/metrics.ts 1`] = `
|
|
184
|
+
"import { initTRPC } from '@trpc/server';
|
|
185
|
+
import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';
|
|
186
|
+
|
|
187
|
+
export interface IMetricsContext {
|
|
188
|
+
metrics?: Metrics;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export const createMetricsPlugin = () => {
|
|
192
|
+
const t = initTRPC.context<IMetricsContext>().create();
|
|
193
|
+
|
|
194
|
+
return t.procedure.use(async (opts) => {
|
|
195
|
+
const metrics = new Metrics();
|
|
196
|
+
metrics.captureColdStartMetric();
|
|
197
|
+
|
|
198
|
+
metrics.addMetric('requestCount', MetricUnit.Count, 1);
|
|
199
|
+
|
|
200
|
+
try {
|
|
201
|
+
const response = await opts.next({
|
|
202
|
+
ctx: {
|
|
203
|
+
...opts.ctx,
|
|
204
|
+
metrics,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
if (!response.ok) {
|
|
209
|
+
metrics.addMetric('errorCount', MetricUnit.Count, 1);
|
|
210
|
+
} else {
|
|
211
|
+
metrics.addMetric('successCount', MetricUnit.Count, 1);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return response;
|
|
215
|
+
} finally {
|
|
216
|
+
metrics.publishStoredMetrics();
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
"
|
|
221
|
+
`;
|
|
222
|
+
|
|
223
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/middleware/tracer.ts 1`] = `
|
|
224
|
+
"import { initTRPC } from '@trpc/server';
|
|
225
|
+
import { Tracer } from '@aws-lambda-powertools/tracer';
|
|
226
|
+
import { Subsegment } from 'aws-xray-sdk-core';
|
|
227
|
+
|
|
228
|
+
export interface ITracerContext {
|
|
229
|
+
tracer?: Tracer;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export const createTracerPlugin = () => {
|
|
233
|
+
const t = initTRPC.context<ITracerContext>().create();
|
|
234
|
+
|
|
235
|
+
return t.procedure.use(async (opts) => {
|
|
236
|
+
const tracer = new Tracer();
|
|
237
|
+
const segment = tracer.getSegment();
|
|
238
|
+
let handlerSegment: Subsegment | undefined;
|
|
239
|
+
|
|
240
|
+
if (segment) {
|
|
241
|
+
handlerSegment = segment.addNewSubsegment(\`## \${opts.path}\`);
|
|
242
|
+
tracer.setSegment(handlerSegment);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
tracer.annotateColdStart();
|
|
246
|
+
tracer.addServiceNameAnnotation();
|
|
247
|
+
|
|
248
|
+
try {
|
|
249
|
+
const response = await opts.next({
|
|
250
|
+
ctx: {
|
|
251
|
+
...opts.ctx,
|
|
252
|
+
tracer,
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
if (!response.ok && response.error.cause instanceof Error) {
|
|
257
|
+
tracer.addErrorAsMetadata(response.error.cause);
|
|
258
|
+
}
|
|
259
|
+
return response;
|
|
260
|
+
} finally {
|
|
261
|
+
if (segment && handlerSegment) {
|
|
262
|
+
handlerSegment.close();
|
|
263
|
+
tracer.setSegment(segment);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
};
|
|
268
|
+
"
|
|
269
|
+
`;
|
|
270
|
+
|
|
271
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/procedures/echo.ts 1`] = `
|
|
272
|
+
"import { publicProcedure } from '../init.js';
|
|
273
|
+
import { EchoInputSchema, EchoOutputSchema } from ':proj/test-api-schema';
|
|
274
|
+
|
|
275
|
+
export const echo = publicProcedure
|
|
276
|
+
.input(EchoInputSchema)
|
|
277
|
+
.output(EchoOutputSchema)
|
|
278
|
+
.query((opts) => ({ result: opts.input.message }));
|
|
279
|
+
"
|
|
280
|
+
`;
|
|
281
|
+
|
|
282
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/backend/src/router.ts 1`] = `
|
|
283
|
+
"import {
|
|
284
|
+
awsLambdaRequestHandler,
|
|
285
|
+
CreateAWSLambdaContextOptions,
|
|
286
|
+
} from '@trpc/server/adapters/aws-lambda';
|
|
287
|
+
import { echo } from './procedures/echo.js';
|
|
288
|
+
import { t } from './init.js';
|
|
289
|
+
import { APIGatewayProxyEventV2WithIAMAuthorizer } from 'aws-lambda';
|
|
290
|
+
|
|
291
|
+
export const router = t.router;
|
|
292
|
+
|
|
293
|
+
export const appRouter = router({
|
|
294
|
+
echo,
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
export const handler = awsLambdaRequestHandler({
|
|
298
|
+
router: appRouter,
|
|
299
|
+
createContext: (
|
|
300
|
+
ctx: CreateAWSLambdaContextOptions<APIGatewayProxyEventV2WithIAMAuthorizer>,
|
|
301
|
+
) => ctx,
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
export type AppRouter = typeof appRouter;
|
|
305
|
+
"
|
|
306
|
+
`;
|
|
307
|
+
|
|
308
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/schema/src/index.ts 1`] = `
|
|
309
|
+
"export * from './procedures/echo.js';
|
|
310
|
+
"
|
|
311
|
+
`;
|
|
312
|
+
|
|
313
|
+
exports[`trpc backend generator > should generate backend and schema projects > apps/test-api/schema/src/procedures/echo.ts 1`] = `
|
|
9
314
|
"import { z } from 'zod';
|
|
10
315
|
|
|
11
|
-
export const
|
|
316
|
+
export const EchoInputSchema = z.object({
|
|
317
|
+
message: z.string(),
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
export type IEchoInput = z.TypeOf<typeof EchoInputSchema>;
|
|
321
|
+
|
|
322
|
+
export const EchoOutputSchema = z.object({
|
|
12
323
|
result: z.string(),
|
|
13
324
|
});
|
|
14
325
|
|
|
15
|
-
export type
|
|
326
|
+
export type IEchoOutput = z.TypeOf<typeof EchoOutputSchema>;
|
|
16
327
|
"
|
|
17
328
|
`;
|
|
18
329
|
|
|
@@ -33,7 +344,7 @@ export class TestApi extends TrpcApi {
|
|
|
33
344
|
defaultAuthorizer: new HttpIamAuthorizer(),
|
|
34
345
|
handlerFilePath: url.fileURLToPath(
|
|
35
346
|
new URL(
|
|
36
|
-
'../../../../../../apps/test-api/backend/src/
|
|
347
|
+
'../../../../../../apps/test-api/backend/src/router.ts',
|
|
37
348
|
import.meta.url,
|
|
38
349
|
),
|
|
39
350
|
),
|
|
@@ -6,6 +6,10 @@ This library was generated with [@aws/nx-plugin](https://github.com/awslabs/nx-p
|
|
|
6
6
|
|
|
7
7
|
Run `<%= pkgMgrCmd %> nx build <%= backendProjectName %> [--skip-nx-cache]` to build the application.
|
|
8
8
|
|
|
9
|
+
## Running local server
|
|
10
|
+
|
|
11
|
+
Run `<%= pkgMgrCmd %> nx serve <%= backendProjectName %>` to start a local server
|
|
12
|
+
|
|
9
13
|
## Running unit tests
|
|
10
14
|
|
|
11
15
|
Run `<%= pkgMgrCmd %> nx test <%= backendProjectName %>` to execute the unit tests via Vitest.
|
|
@@ -28,6 +32,6 @@ You can also automatiaclly fix some lint errors by running the following command
|
|
|
28
32
|
|
|
29
33
|
## Useful links
|
|
30
34
|
|
|
31
|
-
- [
|
|
35
|
+
- [tRPC reference docs](https://trpc.io/docs/)
|
|
32
36
|
- [Learn more about NX](https://nx.dev/getting-started/intro)
|
|
33
37
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createTRPCClient,
|
|
3
|
+
httpBatchLink,
|
|
4
|
+
httpLink,
|
|
5
|
+
HTTPBatchLinkOptions,
|
|
6
|
+
HTTPLinkOptions,
|
|
7
|
+
splitLink,
|
|
8
|
+
} from '@trpc/client';
|
|
9
|
+
|
|
10
|
+
import { AppRouter } from "../router.js";
|
|
11
|
+
import { sigv4Fetch } from './sigv4.js';
|
|
12
|
+
|
|
13
|
+
export interface <%= apiNameClassName %>ClientConfig {
|
|
14
|
+
readonly url: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const create<%= apiNameClassName %>Client = (config: <%= apiNameClassName %>ClientConfig) => {
|
|
18
|
+
const linkOptions: HTTPLinkOptions<any> & HTTPBatchLinkOptions<any> = {
|
|
19
|
+
url: config.url,
|
|
20
|
+
fetch: sigv4Fetch,
|
|
21
|
+
};
|
|
22
|
+
return createTRPCClient<AppRouter>({
|
|
23
|
+
links: [
|
|
24
|
+
splitLink({
|
|
25
|
+
condition(op) {
|
|
26
|
+
return op.context.skipBatch === true;
|
|
27
|
+
},
|
|
28
|
+
true: httpLink(linkOptions),
|
|
29
|
+
false: httpBatchLink(linkOptions),
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AwsClient } from 'aws4fetch';
|
|
2
|
+
import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
|
|
3
|
+
|
|
4
|
+
const credentialProvider = fromNodeProviderChain();
|
|
5
|
+
|
|
6
|
+
export const sigv4Fetch = (async (...args) => {
|
|
7
|
+
const client = new AwsClient(await credentialProvider());
|
|
8
|
+
return client.fetch(...args);
|
|
9
|
+
}) satisfies AwsClient['fetch'];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { initTRPC } from '@trpc/server';
|
|
2
|
+
import {
|
|
3
|
+
createErrorPlugin,
|
|
4
|
+
createLoggerPlugin,
|
|
5
|
+
createMetricsPlugin,
|
|
6
|
+
createTracerPlugin,
|
|
7
|
+
IMiddlewareContext,
|
|
8
|
+
} from './middleware/index.js';
|
|
9
|
+
|
|
10
|
+
export type Context = IMiddlewareContext;
|
|
11
|
+
|
|
12
|
+
export const t = initTRPC.context<Context>().create();
|
|
13
|
+
|
|
14
|
+
export const publicProcedure = t.procedure
|
|
15
|
+
.unstable_concat(createLoggerPlugin())
|
|
16
|
+
.unstable_concat(createTracerPlugin())
|
|
17
|
+
.unstable_concat(createMetricsPlugin())
|
|
18
|
+
.unstable_concat(createErrorPlugin());
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createHTTPServer } from '@trpc/server/adapters/standalone';
|
|
2
|
+
import { appRouter } from './router.js';
|
|
3
|
+
|
|
4
|
+
const PORT = 2022;
|
|
5
|
+
|
|
6
|
+
createHTTPServer({
|
|
7
|
+
router: appRouter,
|
|
8
|
+
createContext() {
|
|
9
|
+
return {
|
|
10
|
+
event: {} as any,
|
|
11
|
+
context: {} as any,
|
|
12
|
+
info: {} as any,
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
}).listen(PORT);
|
|
16
|
+
|
|
17
|
+
console.log(`Local TRPC server listening on port ${PORT}`);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { initTRPC, TRPCError } from '@trpc/server';
|
|
2
|
+
|
|
3
|
+
export const createErrorPlugin = () => {
|
|
4
|
+
const t = initTRPC.context().create();
|
|
5
|
+
return t.procedure.use(async (opts) => {
|
|
6
|
+
const response = await opts.next({
|
|
7
|
+
ctx: {
|
|
8
|
+
...opts.ctx,
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
if (!response.ok) {
|
|
13
|
+
if (response.error instanceof TRPCError) {
|
|
14
|
+
throw response.error;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
throw new TRPCError({
|
|
18
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
19
|
+
message: 'An unexpected error occurred, please try again later.',
|
|
20
|
+
cause: response.error,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return response;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CreateAWSLambdaContextOptions } from '@trpc/server/adapters/aws-lambda';
|
|
2
|
+
import type { APIGatewayProxyEventV2WithIAMAuthorizer } from 'aws-lambda';
|
|
3
|
+
import { ILoggerContext } from './logger.js';
|
|
4
|
+
import { IMetricsContext } from './metrics.js';
|
|
5
|
+
import { ITracerContext } from './tracer.js';
|
|
6
|
+
|
|
7
|
+
export * from './logger.js';
|
|
8
|
+
export * from './metrics.js';
|
|
9
|
+
export * from './tracer.js';
|
|
10
|
+
export * from './error.js';
|
|
11
|
+
|
|
12
|
+
export type IMiddlewareContext = CreateAWSLambdaContextOptions<APIGatewayProxyEventV2WithIAMAuthorizer>
|
|
13
|
+
& ILoggerContext
|
|
14
|
+
& IMetricsContext
|
|
15
|
+
& ITracerContext;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { initTRPC } from '@trpc/server';
|
|
2
|
+
import { Logger } from '@aws-lambda-powertools/logger';
|
|
3
|
+
|
|
4
|
+
export interface ILoggerContext {
|
|
5
|
+
logger?: Logger;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const createLoggerPlugin = () => {
|
|
9
|
+
const t = initTRPC.context<ILoggerContext>().create();
|
|
10
|
+
return t.procedure.use(async (opts) => {
|
|
11
|
+
const logger = new Logger();
|
|
12
|
+
|
|
13
|
+
const response = await opts.next({
|
|
14
|
+
ctx: {
|
|
15
|
+
...opts.ctx,
|
|
16
|
+
logger,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
if (!response.ok) {
|
|
21
|
+
logger.error('Unexpected error occured', response.error.cause ?? '');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return response;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { initTRPC } from '@trpc/server';
|
|
2
|
+
import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';
|
|
3
|
+
|
|
4
|
+
export interface IMetricsContext {
|
|
5
|
+
metrics?: Metrics;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const createMetricsPlugin = () => {
|
|
9
|
+
const t = initTRPC.context<IMetricsContext>().create();
|
|
10
|
+
|
|
11
|
+
return t.procedure.use(async (opts) => {
|
|
12
|
+
const metrics = new Metrics();
|
|
13
|
+
metrics.captureColdStartMetric();
|
|
14
|
+
|
|
15
|
+
metrics.addMetric('requestCount', MetricUnit.Count, 1);
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
const response = await opts.next({
|
|
19
|
+
ctx: {
|
|
20
|
+
...opts.ctx,
|
|
21
|
+
metrics,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
metrics.addMetric('errorCount', MetricUnit.Count, 1);
|
|
27
|
+
} else {
|
|
28
|
+
metrics.addMetric('successCount', MetricUnit.Count, 1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return response;
|
|
32
|
+
} finally {
|
|
33
|
+
metrics.publishStoredMetrics();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { initTRPC } from '@trpc/server';
|
|
2
|
+
import { Tracer } from '@aws-lambda-powertools/tracer';
|
|
3
|
+
import { Subsegment } from 'aws-xray-sdk-core';
|
|
4
|
+
|
|
5
|
+
export interface ITracerContext {
|
|
6
|
+
tracer?: Tracer;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const createTracerPlugin = () => {
|
|
10
|
+
const t = initTRPC.context<ITracerContext>().create();
|
|
11
|
+
|
|
12
|
+
return t.procedure.use(async (opts) => {
|
|
13
|
+
const tracer = new Tracer();
|
|
14
|
+
const segment = tracer.getSegment();
|
|
15
|
+
let handlerSegment: Subsegment | undefined;
|
|
16
|
+
|
|
17
|
+
if (segment) {
|
|
18
|
+
handlerSegment = segment.addNewSubsegment(`## ${opts.path}`);
|
|
19
|
+
tracer.setSegment(handlerSegment);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
tracer.annotateColdStart();
|
|
23
|
+
tracer.addServiceNameAnnotation();
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
const response = await opts.next({
|
|
27
|
+
ctx: {
|
|
28
|
+
...opts.ctx,
|
|
29
|
+
tracer,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
if (!response.ok && response.error.cause instanceof Error) {
|
|
34
|
+
tracer.addErrorAsMetadata(response.error.cause);
|
|
35
|
+
}
|
|
36
|
+
return response;
|
|
37
|
+
} finally {
|
|
38
|
+
if (segment && handlerSegment) {
|
|
39
|
+
handlerSegment.close();
|
|
40
|
+
tracer.setSegment(segment);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { publicProcedure } from '../init.js';
|
|
2
|
+
import { EchoInputSchema, EchoOutputSchema } from '<%= schemaProjectAlias %>';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export const echo = publicProcedure
|
|
6
|
+
.input(EchoInputSchema)
|
|
7
|
+
.output(EchoOutputSchema)
|
|
8
|
+
.query((opts) => ({ result: opts.input.message }));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
awsLambdaRequestHandler,
|
|
3
|
+
CreateAWSLambdaContextOptions,
|
|
4
|
+
} from '@trpc/server/adapters/aws-lambda';
|
|
5
|
+
import { echo } from './procedures/echo.js';
|
|
6
|
+
import { t } from './init.js';
|
|
7
|
+
import { APIGatewayProxyEventV2WithIAMAuthorizer } from 'aws-lambda';
|
|
8
|
+
|
|
9
|
+
export const router = t.router;
|
|
10
|
+
|
|
11
|
+
export const appRouter = router({
|
|
12
|
+
echo,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const handler = awsLambdaRequestHandler({
|
|
16
|
+
router: appRouter,
|
|
17
|
+
createContext: (ctx: CreateAWSLambdaContextOptions<APIGatewayProxyEventV2WithIAMAuthorizer>) => ctx,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export type AppRouter = typeof appRouter;
|
package/src/trpc/backend/files/common/constructs/src/app/trpc-apis/__apiNameKebabCase__.ts.template
CHANGED
|
@@ -9,7 +9,7 @@ export class <%= apiNameClassName %> extends TrpcApi {
|
|
|
9
9
|
defaultAuthorizer: new HttpIamAuthorizer(),
|
|
10
10
|
handlerFilePath: url.fileURLToPath(
|
|
11
11
|
new URL(
|
|
12
|
-
'../../../<%= relativePathToProjectRoot %>/backend/src/
|
|
12
|
+
'../../../<%= relativePathToProjectRoot %>/backend/src/router.ts',
|
|
13
13
|
import.meta.url
|
|
14
14
|
)
|
|
15
15
|
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export const EchoInputSchema = z.object({
|
|
4
|
+
message: z.string(),
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
export type IEchoInput = z.TypeOf<typeof EchoInputSchema>;
|
|
8
|
+
|
|
9
|
+
export const EchoOutputSchema = z.object({
|
|
10
|
+
result: z.string(),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export type IEchoOutput = z.TypeOf<typeof EchoOutputSchema>;
|
|
@@ -64,6 +64,13 @@ function trpcBackendGenerator(tree, options) {
|
|
|
64
64
|
config.metadata = {
|
|
65
65
|
apiName: options.apiName,
|
|
66
66
|
};
|
|
67
|
+
config.targets = Object.assign(Object.assign({}, config.targets), { serve: {
|
|
68
|
+
executor: 'nx:run-commands',
|
|
69
|
+
options: {
|
|
70
|
+
commands: ['tsx src/local-server.ts'],
|
|
71
|
+
cwd: backendRoot,
|
|
72
|
+
},
|
|
73
|
+
} });
|
|
67
74
|
return config;
|
|
68
75
|
});
|
|
69
76
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'backend'), backendRoot, enhancedOptions, {
|
|
@@ -81,7 +88,9 @@ function trpcBackendGenerator(tree, options) {
|
|
|
81
88
|
'@aws-lambda-powertools/metrics',
|
|
82
89
|
'@aws-lambda-powertools/tracer',
|
|
83
90
|
'@trpc/server',
|
|
84
|
-
|
|
91
|
+
'aws4fetch',
|
|
92
|
+
'@aws-sdk/credential-providers',
|
|
93
|
+
]), (0, versions_1.withVersions)(['@types/aws-lambda', 'tsx']));
|
|
85
94
|
tree.delete((0, devkit_1.joinPathFragments)(backendRoot, 'package.json'));
|
|
86
95
|
tree.delete((0, devkit_1.joinPathFragments)(schemaRoot, 'package.json'));
|
|
87
96
|
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":";;AA6BA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":";;AA6BA,oDAmMC;;AAhOD;;;GAGG;AACH,uCAUoB;AAEpB,gFAAyC;AACzC,qEAIuC;AACvC,+EAAoD;AACpD,qDAAwE;AACxE,mDAAoD;AACpD,6CAA0D;AAC1D,6CAAgD;AAChD,yCAAgD;AAChD,+CAA0D;AAC1D,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAAmC;;;QAEnC,MAAM,IAAA,6CAAyB,EAAC,IAAI,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,IAAA,0BAAS,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAA,0BAAiB,EACnC,MAAA,OAAO,CAAC,SAAS,mCAAI,GAAG,EACxB,gBAAgB,CACjB,CAAC;QACF,MAAM,yBAAyB,GAAG,GAAG,IAAA,0BAAiB,EACpD,IAAA,6BAAqB,EAAC,IAAI,EAAE,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAC1E,WAAW,CACZ,EAAE,CAAC;QACJ,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,GAAG,gBAAgB,UAAU,CAAC;QAClD,MAAM,UAAU,GAAG,GAAG,gBAAgB,SAAS,CAAC;QAChD,MAAM,kBAAkB,GAAG,GAAG,YAAY,GAAG,WAAW,EAAE,CAAC;QAC3D,MAAM,iBAAiB,GAAG,GAAG,YAAY,GAAG,UAAU,EAAE,CAAC;QACzD,MAAM,eAAe,mBACnB,kBAAkB,EAClB,mBAAmB,EAAE,IAAA,wBAAY,EAAC,kBAAkB,CAAC,EACrD,iBAAiB,EACjB,kBAAkB,EAAE,IAAA,wBAAY,EAAC,iBAAiB,CAAC,EACnD,gBAAgB;YAChB,gBAAgB;YAChB,yBAAyB,EACzB,SAAS,EAAE,IAAA,iCAAwB,GAAE,CAAC,IAAI,IACvC,OAAO,CACX,CAAC;QACF,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE;YACzB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QACH,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE;YACzB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;QACH,IACE,CAAC,IAAI,CAAC,MAAM,CACV,IAAA,0BAAiB,EACf,gCAAY,EACZ,yCAAqB,EACrB,KAAK,EACL,KAAK,EACL,WAAW,EACX,GAAG,gBAAgB,KAAK,CACzB,CACF,EACD,CAAC;YACD,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,SAAS,EACT,OAAO,EACP,yCAAqB,EACrB,KAAK,EACL,KAAK,CACN,EACD,IAAA,0BAAiB,EAAC,gCAAY,EAAE,yCAAqB,EAAE,KAAK,EAAE,KAAK,CAAC,EACpE,eAAe,EACf;gBACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;aAClD,CACF,CAAC;YACF,MAAM,kCAAkC,GAAG,CAAC,IAAI,CAAC,MAAM,CACrD,IAAA,0BAAiB,EACf,gCAAY,EACZ,yCAAqB,EACrB,KAAK,EACL,MAAM,EACN,aAAa,CACd,CACF,CAAC;YACF,IAAI,kCAAkC,EAAE,CAAC;gBACvC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,SAAS,EACT,OAAO,EACP,yCAAqB,EACrB,KAAK,EACL,MAAM,CACP,EACD,IAAA,0BAAiB,EAAC,gCAAY,EAAE,yCAAqB,EAAE,KAAK,EAAE,MAAM,CAAC,EACrE,eAAe,EACf;oBACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;iBAClD,CACF,CAAC;YACJ,CAAC;YACD,IAAA,mBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,gCAAY,EACZ,yCAAqB,EACrB,KAAK,EACL,KAAK,EACL,UAAU,CACX,EACD,sBAAsB,CACvB,CAAC;YACF,IAAA,mBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,gCAAY,EACZ,yCAAqB,EACrB,KAAK,EACL,KAAK,EACL,WAAW,EACX,UAAU,CACX,EACD,KAAK,gBAAgB,KAAK,CAC3B,CAAC;YACF,IAAI,kCAAkC,EAAE,CAAC;gBACvC,IAAA,mBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,gCAAY,EACZ,yCAAqB,EACrB,KAAK,EACL,MAAM,EACN,UAAU,CACX,EACD,eAAe,CAChB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,WAAW,EAAE,cAAc,CAAC,EAC9C,CAAC,MAA4B,EAAE,EAAE;YAC/B,MAAM,CAAC,QAAQ,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;aACd,CAAC;YACb,MAAM,CAAC,OAAO,mCACT,MAAM,CAAC,OAAO,KACjB,KAAK,EAAE;oBACL,QAAQ,EAAE,iBAAiB;oBAC3B,OAAO,EAAE;wBACP,QAAQ,EAAE,CAAC,yBAAyB,CAAC;wBACrC,GAAG,EAAE,WAAW;qBACjB;iBACF,GACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;QAEF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAChD,WAAW,EACX,eAAe,EACf;YACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;SAC/C,CACF,CAAC;QACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC/C,UAAU,EACV,eAAe,EACf;YACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;SAC/C,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,IAAA,qCAA4B,EAC1B,IAAI,EACJ,IAAA,uBAAY,EAAC;YACX,mBAAmB;YACnB,KAAK;YACL,+BAA+B;YAC/B,gCAAgC;YAChC,+BAA+B;YAC/B,cAAc;YACd,WAAW;YACX,+BAA+B;SAChC,CAAC,EACF,IAAA,uBAAY,EAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AACD,kBAAe,oBAAoB,CAAC"}
|
|
@@ -20,19 +20,6 @@
|
|
|
20
20
|
"x-priority": "important",
|
|
21
21
|
"default": "packages",
|
|
22
22
|
"x-prompt": "What directory would you like to store your application in?"
|
|
23
|
-
},
|
|
24
|
-
"unitTestRunner": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"enum": ["jest", "vitest", "none"],
|
|
27
|
-
"description": "Test runner to use for unit tests.",
|
|
28
|
-
"x-prompt": "Which unit test runner would you like to use?",
|
|
29
|
-
"default": "vitest"
|
|
30
|
-
},
|
|
31
|
-
"linter": {
|
|
32
|
-
"description": "The tool to use for running lint checks.",
|
|
33
|
-
"type": "string",
|
|
34
|
-
"enum": ["eslint", "none"],
|
|
35
|
-
"default": "eslint"
|
|
36
23
|
}
|
|
37
24
|
},
|
|
38
25
|
"required": ["apiName"]
|
|
@@ -1,14 +1,31 @@
|
|
|
1
1
|
import { AwsClient } from 'aws4fetch';
|
|
2
2
|
import { CognitoIdentityClient } from '@aws-sdk/client-cognito-identity';
|
|
3
3
|
import { fromCognitoIdentityPool } from '@aws-sdk/credential-provider-cognito-identity';
|
|
4
|
-
import { useCallback } from 'react';
|
|
4
|
+
import { useCallback, useState } from 'react';
|
|
5
5
|
import { useAuth } from 'react-oidc-context';
|
|
6
6
|
import { useRuntimeConfig } from './useRuntimeConfig';
|
|
7
|
+
import { AwsCredentialIdentity, AwsCredentialIdentityProvider } from '@smithy/types';
|
|
8
|
+
|
|
9
|
+
// Credential expiration grace time before considering credentials as expired
|
|
10
|
+
const CREDENTIAL_EXPIRY_OFFSET_MILLIS = 30 * 1000;
|
|
7
11
|
|
|
8
12
|
export const useSigV4 = () => {
|
|
9
13
|
const { cognitoProps } = useRuntimeConfig();
|
|
10
14
|
const { user } = useAuth();
|
|
11
15
|
|
|
16
|
+
const [cachedCredentials, setCachedCredentials] = useState<{ [key: string]: AwsCredentialIdentity }>({});
|
|
17
|
+
|
|
18
|
+
const withCachedCredentials = useCallback(async (provider: AwsCredentialIdentityProvider, ...cacheKeys: string[]): Promise<AwsCredentialIdentity> => {
|
|
19
|
+
const key = `sigv4/${cacheKeys.join('/')}`;
|
|
20
|
+
const cachedCreds = cachedCredentials[key];
|
|
21
|
+
if (cachedCreds && cachedCreds.expiration && cachedCreds.expiration.getTime() > Date.now() + CREDENTIAL_EXPIRY_OFFSET_MILLIS) {
|
|
22
|
+
return cachedCreds;
|
|
23
|
+
}
|
|
24
|
+
const credentials = await provider();
|
|
25
|
+
setCachedCredentials((prev) => ({ ...prev, [key]: credentials }));
|
|
26
|
+
return credentials;
|
|
27
|
+
}, [cachedCredentials, setCachedCredentials]);
|
|
28
|
+
|
|
12
29
|
return useCallback(
|
|
13
30
|
async (input: RequestInfo | URL, init?: RequestInit | undefined) => {
|
|
14
31
|
if (!cognitoProps) {
|
|
@@ -29,10 +46,10 @@ export const useSigV4 = () => {
|
|
|
29
46
|
const cognitoidentity = new CognitoIdentityClient({
|
|
30
47
|
credentials: credentialsFromCognitoIdentityPool,
|
|
31
48
|
});
|
|
32
|
-
const credential = await cognitoidentity.config.credentials
|
|
49
|
+
const credential = await withCachedCredentials(cognitoidentity.config.credentials, cognitoProps.identityPoolId, user.profile.sub);
|
|
33
50
|
const awsClient = new AwsClient(credential);
|
|
34
51
|
return awsClient.fetch(input, init);
|
|
35
52
|
},
|
|
36
|
-
[cognitoProps, user?.id_token]
|
|
53
|
+
[cognitoProps, user?.id_token, user.profile.sub, withCachedCredentials]
|
|
37
54
|
);
|
|
38
55
|
};
|
|
@@ -156,7 +156,7 @@ function reactGenerator(tree, options) {
|
|
|
156
156
|
...(options.auth === 'IAM'
|
|
157
157
|
? ['oidc-client-ts', 'react-oidc-context']
|
|
158
158
|
: []),
|
|
159
|
-
]),
|
|
159
|
+
]), (0, versions_1.withVersions)(['@smithy/types']));
|
|
160
160
|
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
161
161
|
return () => {
|
|
162
162
|
(0, devkit_1.installPackagesTask)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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"}
|
package/src/utils/test.d.ts
CHANGED
package/src/utils/test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createTreeUsingTsSolutionSetup = void 0;
|
|
3
|
+
exports.snapshotTreeDir = exports.createTreeUsingTsSolutionSetup = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/**
|
|
6
6
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -8,6 +8,7 @@ const tslib_1 = require("tslib");
|
|
|
8
8
|
*/
|
|
9
9
|
const vitest_1 = require("vitest");
|
|
10
10
|
const testing_1 = require("@nx/devkit/testing");
|
|
11
|
+
const devkit_1 = require("@nx/devkit");
|
|
11
12
|
const ts_solution_setup_1 = tslib_1.__importDefault(require("@nx/js/src/utils/typescript/ts-solution-setup"));
|
|
12
13
|
const createTreeUsingTsSolutionSetup = () => {
|
|
13
14
|
vitest_1.vi.spyOn(ts_solution_setup_1.default, 'isUsingTsSolutionSetup').mockImplementation(() => true);
|
|
@@ -16,4 +17,18 @@ const createTreeUsingTsSolutionSetup = () => {
|
|
|
16
17
|
return tree;
|
|
17
18
|
};
|
|
18
19
|
exports.createTreeUsingTsSolutionSetup = createTreeUsingTsSolutionSetup;
|
|
20
|
+
/**
|
|
21
|
+
* Snapshot all files within a directory in the given tree
|
|
22
|
+
*/
|
|
23
|
+
const snapshotTreeDir = (tree, dir) => {
|
|
24
|
+
if (tree.isFile(dir)) {
|
|
25
|
+
(0, vitest_1.expect)(tree.read(dir, 'utf-8')).toMatchSnapshot(dir);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
tree
|
|
29
|
+
.children(dir)
|
|
30
|
+
.forEach((subDir) => (0, exports.snapshotTreeDir)(tree, (0, devkit_1.joinPathFragments)(dir, subDir)));
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.snapshotTreeDir = snapshotTreeDir;
|
|
19
34
|
//# sourceMappingURL=test.js.map
|
package/src/utils/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,mCAAoC;AACpC,gDAAkE;AAClE,uCAAqD;AACrD,8GAA0E;AAEnE,MAAM,8BAA8B,GAAG,GAAS,EAAE;IACvD,WAAE,CAAC,KAAK,CAAC,2BAAa,EAAE,wBAAwB,CAAC,CAAC,kBAAkB,CAClE,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,sCAA4B,GAAE,CAAC;IAE5C,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,8BAA8B,kCASzC;AAEF;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,GAAW,EAAE,EAAE;IACzD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,IAAI;aACD,QAAQ,CAAC,GAAG,CAAC;aACb,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClB,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CACtD,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare const VERSIONS: {
|
|
|
6
6
|
readonly '@cdklabs/cdk-validator-cfnguard': "^0.0.60";
|
|
7
7
|
readonly '@aws-cdk/aws-cognito-identitypool-alpha': "^2.166.0-alpha.0";
|
|
8
8
|
readonly '@aws-sdk/client-cognito-identity': "^3.721.0";
|
|
9
|
+
readonly '@aws-sdk/credential-providers': "^3.721.0";
|
|
9
10
|
readonly '@aws-sdk/credential-provider-cognito-identity': "^3.721.0";
|
|
10
11
|
readonly '@aws-lambda-powertools/logger': "^2.11.0";
|
|
11
12
|
readonly '@aws-lambda-powertools/metrics': "^2.11.0";
|
|
@@ -20,6 +21,7 @@ export declare const VERSIONS: {
|
|
|
20
21
|
readonly '@trpc/client': "11.0.0-rc.700";
|
|
21
22
|
readonly '@trpc/server': "11.0.0-rc.700";
|
|
22
23
|
readonly '@types/aws-lambda': "^8.10.145";
|
|
24
|
+
readonly '@smithy/types': "^4.1.0";
|
|
23
25
|
readonly aws4fetch: "^1.0.20";
|
|
24
26
|
readonly 'aws-cdk': "^2.166.0";
|
|
25
27
|
readonly 'aws-cdk-lib': "^2.166.0";
|
|
@@ -39,5 +41,5 @@ export declare const VERSIONS: {
|
|
|
39
41
|
* Add versions to the given dependencies
|
|
40
42
|
*/
|
|
41
43
|
export declare const withVersions: (deps: (keyof typeof VERSIONS)[]) => {
|
|
42
|
-
[k: string]: "^0.0.60" | "^2.166.0-alpha.0" | "^3.721.0" | "^2.11.0" | "^1.99.7" | "^3.0.84" | "^3.0.823" | "^1.0.34" | "^5.59.20" | "11.0.0-rc.700" | "^8.10.145" | "^1.0.20" | "^2.166.0" | "^3.10.2" | "^10.4.2" | "^0.24.0" | "^5.2.2" | "^2.4.0" | "^3.1.0" | "^3.4.2" | "^3.2.0" | "^0.5.21" | "^4.19.2" | "^3.23.8";
|
|
44
|
+
[k: string]: "^0.0.60" | "^2.166.0-alpha.0" | "^3.721.0" | "^2.11.0" | "^1.99.7" | "^3.0.84" | "^3.0.823" | "^1.0.34" | "^5.59.20" | "11.0.0-rc.700" | "^8.10.145" | "^4.1.0" | "^1.0.20" | "^2.166.0" | "^3.10.2" | "^10.4.2" | "^0.24.0" | "^5.2.2" | "^2.4.0" | "^3.1.0" | "^3.4.2" | "^3.2.0" | "^0.5.21" | "^4.19.2" | "^3.23.8";
|
|
43
45
|
};
|
package/src/utils/versions.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.VERSIONS = {
|
|
|
9
9
|
'@cdklabs/cdk-validator-cfnguard': '^0.0.60',
|
|
10
10
|
'@aws-cdk/aws-cognito-identitypool-alpha': '^2.166.0-alpha.0',
|
|
11
11
|
'@aws-sdk/client-cognito-identity': '^3.721.0',
|
|
12
|
+
'@aws-sdk/credential-providers': '^3.721.0',
|
|
12
13
|
'@aws-sdk/credential-provider-cognito-identity': '^3.721.0',
|
|
13
14
|
'@aws-lambda-powertools/logger': '^2.11.0',
|
|
14
15
|
'@aws-lambda-powertools/metrics': '^2.11.0',
|
|
@@ -23,6 +24,7 @@ exports.VERSIONS = {
|
|
|
23
24
|
'@trpc/client': '11.0.0-rc.700',
|
|
24
25
|
'@trpc/server': '11.0.0-rc.700',
|
|
25
26
|
'@types/aws-lambda': '^8.10.145',
|
|
27
|
+
'@smithy/types': '^4.1.0',
|
|
26
28
|
aws4fetch: '^1.0.20',
|
|
27
29
|
'aws-cdk': '^2.166.0',
|
|
28
30
|
'aws-cdk-lib': '^2.166.0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,iCAAiC,EAAE,SAAS;IAC5C,yCAAyC,EAAE,kBAAkB;IAC7D,kCAAkC,EAAE,UAAU;IAC9C,+CAA+C,EAAE,UAAU;IAC3D,+BAA+B,EAAE,SAAS;IAC1C,gCAAgC,EAAE,SAAS;IAC3C,+BAA+B,EAAE,SAAS;IAC1C,wBAAwB,EAAE,SAAS;IACnC,yBAAyB,EAAE,SAAS;IACpC,qCAAqC,EAAE,SAAS;IAChD,+BAA+B,EAAE,UAAU;IAC3C,kCAAkC,EAAE,SAAS;IAC7C,uBAAuB,EAAE,UAAU;IACnC,mBAAmB,EAAE,eAAe;IACpC,cAAc,EAAE,eAAe;IAC/B,cAAc,EAAE,eAAe;IAC/B,mBAAmB,EAAE,WAAW;IAChC,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,QAAQ;IAClC,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,QAAQ,EAAE,QAAQ;IAClB,oBAAoB,EAAE,QAAQ;IAC9B,oBAAoB,EAAE,SAAS;IAC/B,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;CACN,CAAC;AACX;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAE,EAAE,CAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AADjD,QAAA,YAAY,gBACqC"}
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,iCAAiC,EAAE,SAAS;IAC5C,yCAAyC,EAAE,kBAAkB;IAC7D,kCAAkC,EAAE,UAAU;IAC9C,+BAA+B,EAAE,UAAU;IAC3C,+CAA+C,EAAE,UAAU;IAC3D,+BAA+B,EAAE,SAAS;IAC1C,gCAAgC,EAAE,SAAS;IAC3C,+BAA+B,EAAE,SAAS;IAC1C,wBAAwB,EAAE,SAAS;IACnC,yBAAyB,EAAE,SAAS;IACpC,qCAAqC,EAAE,SAAS;IAChD,+BAA+B,EAAE,UAAU;IAC3C,kCAAkC,EAAE,SAAS;IAC7C,uBAAuB,EAAE,UAAU;IACnC,mBAAmB,EAAE,eAAe;IACpC,cAAc,EAAE,eAAe;IAC/B,cAAc,EAAE,eAAe;IAC/B,mBAAmB,EAAE,WAAW;IAChC,eAAe,EAAE,QAAQ;IACzB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,QAAQ;IAClC,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,QAAQ,EAAE,QAAQ;IAClB,oBAAoB,EAAE,QAAQ;IAC9B,oBAAoB,EAAE,SAAS;IAC/B,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;CACN,CAAC;AACX;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAE,EAAE,CAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AADjD,QAAA,YAAY,gBACqC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './router.js';
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { Logger } from '@aws-lambda-powertools/logger';
|
|
2
|
-
import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';
|
|
3
|
-
import { Tracer } from '@aws-lambda-powertools/tracer';
|
|
4
|
-
import { initTRPC, TRPCError } from '@trpc/server';
|
|
5
|
-
import { Context as APIGWContext } from 'aws-lambda';
|
|
6
|
-
import { Subsegment } from 'aws-xray-sdk-core';
|
|
7
|
-
|
|
8
|
-
export type IMiddlewareContext = ILoggerContext &
|
|
9
|
-
IMetricsContext &
|
|
10
|
-
ITracerContext;
|
|
11
|
-
|
|
12
|
-
interface ILoggerContext extends APIGWContext {
|
|
13
|
-
logger: Logger;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
interface IMetricsContext extends APIGWContext {
|
|
17
|
-
metrics: Metrics;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface ITracerContext extends APIGWContext {
|
|
21
|
-
tracer: Tracer;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export const createLoggerPlugin = () => {
|
|
25
|
-
const t = initTRPC.context<ILoggerContext>().create();
|
|
26
|
-
return {
|
|
27
|
-
loggerPlugin: t.procedure.use(async (opts) => {
|
|
28
|
-
const logger = new Logger();
|
|
29
|
-
|
|
30
|
-
const response = await opts.next({
|
|
31
|
-
ctx: {
|
|
32
|
-
...opts.ctx,
|
|
33
|
-
logger,
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
if (!response.ok) {
|
|
38
|
-
logger.error('Unexpected error occured', response.error.cause ?? '');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return response;
|
|
42
|
-
}),
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const createMetricsPlugin = () => {
|
|
47
|
-
const t = initTRPC.context<IMetricsContext>().create();
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
metricsPlugin: t.procedure.use(async (opts) => {
|
|
51
|
-
const metrics = new Metrics();
|
|
52
|
-
metrics.captureColdStartMetric();
|
|
53
|
-
|
|
54
|
-
metrics.addMetric('requestCount', MetricUnit.Count, 1);
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
const response = await opts.next({
|
|
58
|
-
ctx: {
|
|
59
|
-
...opts.ctx,
|
|
60
|
-
metrics,
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
if (!response.ok) {
|
|
65
|
-
metrics.addMetric('errorCount', MetricUnit.Count, 1);
|
|
66
|
-
} else {
|
|
67
|
-
metrics.addMetric('successCount', MetricUnit.Count, 1);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return response;
|
|
71
|
-
} finally {
|
|
72
|
-
metrics.publishStoredMetrics();
|
|
73
|
-
}
|
|
74
|
-
}),
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export const createTracerPlugin = () => {
|
|
79
|
-
const t = initTRPC.context<ITracerContext>().create();
|
|
80
|
-
|
|
81
|
-
return {
|
|
82
|
-
tracerPlugin: t.procedure.use(async (opts) => {
|
|
83
|
-
const tracer = new Tracer();
|
|
84
|
-
const segment = tracer.getSegment();
|
|
85
|
-
let handlerSegment: Subsegment | undefined;
|
|
86
|
-
|
|
87
|
-
if (segment) {
|
|
88
|
-
handlerSegment = segment.addNewSubsegment(`## ${opts.path}`);
|
|
89
|
-
tracer.setSegment(handlerSegment);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
tracer.annotateColdStart();
|
|
93
|
-
tracer.addServiceNameAnnotation();
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
const response = await opts.next({
|
|
97
|
-
ctx: {
|
|
98
|
-
...opts.ctx,
|
|
99
|
-
tracer,
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
if (!response.ok && response.error.cause instanceof Error) {
|
|
104
|
-
tracer.addErrorAsMetadata(response.error.cause);
|
|
105
|
-
}
|
|
106
|
-
return response;
|
|
107
|
-
} finally {
|
|
108
|
-
if (segment && handlerSegment) {
|
|
109
|
-
handlerSegment.close();
|
|
110
|
-
tracer.setSegment(segment);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}),
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export const createErrorPlugin = () => {
|
|
118
|
-
const t = initTRPC.context().create();
|
|
119
|
-
return {
|
|
120
|
-
errorPlugin: t.procedure.use(async (opts) => {
|
|
121
|
-
const response = await opts.next({
|
|
122
|
-
ctx: {
|
|
123
|
-
...opts.ctx,
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
if (!response.ok) {
|
|
128
|
-
let trpcError: TRPCError;
|
|
129
|
-
|
|
130
|
-
if (response.error.cause instanceof TRPCError) {
|
|
131
|
-
trpcError = response.error.cause;
|
|
132
|
-
} else {
|
|
133
|
-
trpcError = new TRPCError({
|
|
134
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
135
|
-
message: 'An unexpected error occurred, please try again later.',
|
|
136
|
-
cause: response.error.cause,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
throw trpcError;
|
|
141
|
-
} else {
|
|
142
|
-
return response;
|
|
143
|
-
}
|
|
144
|
-
}),
|
|
145
|
-
};
|
|
146
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { initTRPC } from '@trpc/server';
|
|
2
|
-
import {
|
|
3
|
-
awsLambdaRequestHandler,
|
|
4
|
-
} from '@trpc/server/adapters/aws-lambda';
|
|
5
|
-
import { EchoSchema } from '<%= schemaProjectAlias %>';
|
|
6
|
-
import {
|
|
7
|
-
createErrorPlugin,
|
|
8
|
-
createLoggerPlugin,
|
|
9
|
-
createMetricsPlugin,
|
|
10
|
-
createTracerPlugin,
|
|
11
|
-
IMiddlewareContext,
|
|
12
|
-
} from './middleware.js';
|
|
13
|
-
import { z } from 'zod';
|
|
14
|
-
|
|
15
|
-
export type Context = IMiddlewareContext;
|
|
16
|
-
|
|
17
|
-
const t = initTRPC.context<Context>().create();
|
|
18
|
-
export const router = t.router;
|
|
19
|
-
export const publicProcedure = t.procedure
|
|
20
|
-
.unstable_concat(createLoggerPlugin().loggerPlugin)
|
|
21
|
-
.unstable_concat(createTracerPlugin().tracerPlugin)
|
|
22
|
-
.unstable_concat(createMetricsPlugin().metricsPlugin)
|
|
23
|
-
.unstable_concat(createErrorPlugin().errorPlugin);
|
|
24
|
-
|
|
25
|
-
const appRouter = router({
|
|
26
|
-
echo: publicProcedure
|
|
27
|
-
.input(z.string())
|
|
28
|
-
.output(EchoSchema)
|
|
29
|
-
.query((opts) => ({ result: opts.input })),
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
export const handler = awsLambdaRequestHandler({
|
|
33
|
-
router: appRouter
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
export type AppRouter = typeof appRouter;
|