@aws/nx-plugin 0.113.0 → 0.114.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.
Files changed (60) hide show
  1. package/generators.json +33 -1
  2. package/package.json +1 -1
  3. package/src/connection/generator.d.ts +2 -2
  4. package/src/connection/generator.js +19 -0
  5. package/src/connection/generator.js.map +1 -1
  6. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +6 -6
  7. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  8. package/src/py/strands-agent/files/ag-ui/main.py.template +17 -0
  9. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -2
  10. package/src/smithy/project/files/build.Dockerfile.template +1 -1
  11. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +4 -4
  12. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +6 -6
  13. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  14. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +4 -3
  15. package/src/ts/mcp-server/files/http.ts.template +1 -1
  16. package/src/ts/mcp-server/files/server.ts.template +1 -1
  17. package/src/ts/mcp-server/files/stdio.ts.template +2 -1
  18. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +3 -2
  19. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +54 -44
  20. package/src/ts/rdb/files/src/prisma.ts.template +54 -46
  21. package/src/ts/rdb/generator.js +3 -0
  22. package/src/ts/rdb/generator.js.map +1 -1
  23. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +117 -0
  24. package/src/ts/rdb/mcp-server-connection/generator.d.ts +10 -0
  25. package/src/ts/rdb/mcp-server-connection/generator.js +59 -0
  26. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -0
  27. package/src/ts/rdb/mcp-server-connection/schema.d.ts +14 -0
  28. package/src/ts/rdb/mcp-server-connection/schema.json +22 -0
  29. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +286 -0
  30. package/src/ts/rdb/smithy-connection/generator.d.ts +10 -0
  31. package/src/ts/rdb/smithy-connection/generator.js +72 -0
  32. package/src/ts/rdb/smithy-connection/generator.js.map +1 -0
  33. package/src/ts/rdb/smithy-connection/schema.d.ts +12 -0
  34. package/src/ts/rdb/smithy-connection/schema.json +18 -0
  35. package/src/ts/rdb/strands-agent-connection/__snapshots__/generator.spec.ts.snap +183 -0
  36. package/src/ts/rdb/strands-agent-connection/generator.d.ts +10 -0
  37. package/src/ts/rdb/strands-agent-connection/generator.js +65 -0
  38. package/src/ts/rdb/strands-agent-connection/generator.js.map +1 -0
  39. package/src/ts/rdb/strands-agent-connection/schema.d.ts +14 -0
  40. package/src/ts/rdb/strands-agent-connection/schema.json +22 -0
  41. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +75 -0
  42. package/src/ts/rdb/trpc-connection/files/src/middleware/__rdbNameKebab__.ts.template +32 -0
  43. package/src/ts/rdb/trpc-connection/generator.d.ts +10 -0
  44. package/src/ts/rdb/trpc-connection/generator.js +41 -0
  45. package/src/ts/rdb/trpc-connection/generator.js.map +1 -0
  46. package/src/ts/rdb/trpc-connection/schema.d.ts +12 -0
  47. package/src/ts/rdb/trpc-connection/schema.json +18 -0
  48. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +4 -13
  49. package/src/ts/strands-agent/files/http/init.ts.template +1 -12
  50. package/src/ts/strands-agent/files/http/router.ts.template +3 -1
  51. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -1
  52. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -1
  53. package/src/utils/ast.js +9 -2
  54. package/src/utils/ast.js.map +1 -1
  55. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__functionNameKebabCase__/__functionNameKebabCase__.tf.template +1 -1
  56. package/src/utils/pnpm-workspace.d.ts +11 -0
  57. package/src/utils/pnpm-workspace.js +28 -1
  58. package/src/utils/pnpm-workspace.js.map +1 -1
  59. package/src/utils/shared-shadcn.js +2 -19
  60. package/src/utils/shared-shadcn.js.map +1 -1
@@ -265,7 +265,7 @@ export const handler = async () => {
265
265
  exports[`ts#rdb generator > should add mysql prisma dependencies when engine is MySQL > packages/db/src/prisma.ts 1`] = `
266
266
  "import { PrismaMariaDb } from '@prisma/adapter-mariadb';
267
267
  import { Signer } from '@aws-sdk/rds-signer';
268
- import { PrismaClient } from '../generated/prisma/client.js';
268
+ import { Prisma, PrismaClient } from '../generated/prisma/client.js';
269
269
  import {
270
270
  DB_PACKAGE_NAME,
271
271
  LOCAL_DB_HOST,
@@ -276,7 +276,9 @@ import {
276
276
  } from './constants.js';
277
277
  import { getDatabaseConfig } from './utils.js';
278
278
 
279
- export const getPrisma = async (): Promise<PrismaClient> => {
279
+ export const getPrisma = async <LogOpts extends Prisma.LogLevel>(
280
+ log: LogOpts[] = ['warn', 'error'] as LogOpts[],
281
+ ): Promise<PrismaClient<LogOpts>> => {
280
282
  if (process.env.SERVE_LOCAL === 'true') {
281
283
  const adapter = new PrismaMariaDb({
282
284
  host: LOCAL_DB_HOST,
@@ -286,7 +288,10 @@ export const getPrisma = async (): Promise<PrismaClient> => {
286
288
  password: LOCAL_DB_PASSWORD,
287
289
  allowPublicKeyRetrieval: true,
288
290
  });
289
- return new PrismaClient({ adapter });
291
+ return new PrismaClient({
292
+ adapter,
293
+ log,
294
+ }) as unknown as PrismaClient<LogOpts>;
290
295
  }
291
296
 
292
297
  const { hostname, port, database, dbUser, region } =
@@ -309,7 +314,10 @@ export const getPrisma = async (): Promise<PrismaClient> => {
309
314
  },
310
315
  });
311
316
 
312
- return new PrismaClient({ adapter });
317
+ return new PrismaClient({
318
+ adapter,
319
+ log,
320
+ }) as unknown as PrismaClient<LogOpts>;
313
321
  };
314
322
  "
315
323
  `;
@@ -4078,8 +4086,8 @@ export const handler = async () => {
4078
4086
  exports[`ts#rdb generator > should generate the aurora shared construct > packages/db/src/prisma.ts 1`] = `
4079
4087
  "import { PrismaPg } from '@prisma/adapter-pg';
4080
4088
  import { Signer } from '@aws-sdk/rds-signer';
4089
+ import { Prisma, PrismaClient } from '../generated/prisma/client.js';
4081
4090
  import { Pool } from 'pg';
4082
- import { PrismaClient } from '../generated/prisma/client.js';
4083
4091
  import {
4084
4092
  DB_PACKAGE_NAME,
4085
4093
  LOCAL_DB_HOST,
@@ -4090,52 +4098,54 @@ import {
4090
4098
  } from './constants.js';
4091
4099
  import { getDatabaseConfig } from './utils.js';
4092
4100
 
4093
- let prismaPromise: Promise<PrismaClient> | undefined;
4094
-
4095
- export const getPrisma = (): Promise<PrismaClient> => {
4096
- prismaPromise ??= (async () => {
4097
- if (process.env.SERVE_LOCAL === 'true') {
4098
- const adapter = new PrismaPg(
4099
- new Pool({
4100
- host: LOCAL_DB_HOST,
4101
- port: LOCAL_DB_PORT,
4102
- database: LOCAL_DB_NAME,
4103
- user: LOCAL_DB_USER,
4104
- password: LOCAL_DB_PASSWORD,
4105
- allowExitOnIdle: true,
4106
- }),
4107
- );
4108
- return new PrismaClient({ adapter });
4109
- }
4110
-
4111
- const { hostname, port, database, dbUser, region } =
4112
- await getDatabaseConfig(DB_PACKAGE_NAME);
4101
+ export const getPrisma = async <LogOpts extends Prisma.LogLevel>(
4102
+ log: LogOpts[] = ['warn', 'error'] as LogOpts[],
4103
+ ): Promise<PrismaClient<LogOpts>> => {
4104
+ if (process.env.SERVE_LOCAL === 'true') {
4113
4105
  const adapter = new PrismaPg(
4114
4106
  new Pool({
4115
- host: hostname,
4116
- port,
4117
- database,
4118
- user: dbUser,
4119
- ssl: {
4120
- rejectUnauthorized: true,
4121
- },
4107
+ host: LOCAL_DB_HOST,
4108
+ port: LOCAL_DB_PORT,
4109
+ database: LOCAL_DB_NAME,
4110
+ user: LOCAL_DB_USER,
4111
+ password: LOCAL_DB_PASSWORD,
4122
4112
  allowExitOnIdle: true,
4123
- password: async () => {
4124
- const token = await new Signer({
4125
- hostname,
4126
- port,
4127
- region,
4128
- username: dbUser,
4129
- }).getAuthToken();
4130
- return token;
4131
- },
4132
4113
  }),
4133
4114
  );
4115
+ return new PrismaClient({
4116
+ adapter,
4117
+ log,
4118
+ }) as unknown as PrismaClient<LogOpts>;
4119
+ }
4134
4120
 
4135
- return new PrismaClient({ adapter });
4136
- })();
4121
+ const { hostname, port, database, dbUser, region } =
4122
+ await getDatabaseConfig(DB_PACKAGE_NAME);
4123
+ const adapter = new PrismaPg(
4124
+ new Pool({
4125
+ host: hostname,
4126
+ port,
4127
+ database,
4128
+ user: dbUser,
4129
+ ssl: {
4130
+ rejectUnauthorized: true,
4131
+ },
4132
+ allowExitOnIdle: true,
4133
+ password: async () => {
4134
+ const token = await new Signer({
4135
+ hostname,
4136
+ port,
4137
+ region,
4138
+ username: dbUser,
4139
+ }).getAuthToken();
4140
+ return token;
4141
+ },
4142
+ }),
4143
+ );
4137
4144
 
4138
- return prismaPromise;
4145
+ return new PrismaClient({
4146
+ adapter,
4147
+ log,
4148
+ }) as unknown as PrismaClient<LogOpts>;
4139
4149
  };
4140
4150
  "
4141
4151
  `;
@@ -1,10 +1,8 @@
1
1
  import { <%= prismaAdapterClassName %> } from '<%= prismaAdapterPackage %>';
2
2
  import { Signer } from '@aws-sdk/rds-signer';
3
- <%_ if (engine === 'MySQL') { _%>
4
- import { PrismaClient } from '../generated/prisma/client.js';
5
- <%_ } else { _%>
3
+ import { Prisma, PrismaClient } from '../generated/prisma/client.js';
4
+ <%_ if (engine === 'PostgreSQL') { _%>
6
5
  import { Pool } from 'pg';
7
- import { PrismaClient } from '../generated/prisma/client.js';
8
6
  <%_ } _%>
9
7
  import {
10
8
  DB_PACKAGE_NAME,
@@ -17,7 +15,9 @@ import {
17
15
  import { getDatabaseConfig } from './utils.js';
18
16
  <%_ if (engine === 'MySQL') { _%>
19
17
 
20
- export const getPrisma = async (): Promise<PrismaClient> => {
18
+ export const getPrisma = async <LogOpts extends Prisma.LogLevel>(
19
+ log: LogOpts[] = ['warn', 'error'] as LogOpts[],
20
+ ): Promise<PrismaClient<LogOpts>> => {
21
21
  if (process.env.SERVE_LOCAL === 'true') {
22
22
  const adapter = new PrismaMariaDb({
23
23
  host: LOCAL_DB_HOST,
@@ -27,7 +27,10 @@ export const getPrisma = async (): Promise<PrismaClient> => {
27
27
  password: LOCAL_DB_PASSWORD,
28
28
  allowPublicKeyRetrieval: true,
29
29
  });
30
- return new PrismaClient({ adapter });
30
+ return new PrismaClient({
31
+ adapter,
32
+ log,
33
+ }) as unknown as PrismaClient<LogOpts>;
31
34
  }
32
35
 
33
36
  const { hostname, port, database, dbUser, region } =
@@ -50,55 +53,60 @@ export const getPrisma = async (): Promise<PrismaClient> => {
50
53
  },
51
54
  });
52
55
 
53
- return new PrismaClient({ adapter });
56
+ return new PrismaClient({
57
+ adapter,
58
+ log,
59
+ }) as unknown as PrismaClient<LogOpts>;
54
60
  };
55
61
  <%_ } else { _%>
56
62
 
57
- let prismaPromise: Promise<PrismaClient> | undefined;
58
-
59
- export const getPrisma = (): Promise<PrismaClient> => {
60
- prismaPromise ??= (async () => {
61
- if (process.env.SERVE_LOCAL === 'true') {
62
- const adapter = new PrismaPg(
63
- new Pool({
64
- host: LOCAL_DB_HOST,
65
- port: LOCAL_DB_PORT,
66
- database: LOCAL_DB_NAME,
67
- user: LOCAL_DB_USER,
68
- password: LOCAL_DB_PASSWORD,
69
- allowExitOnIdle: true,
70
- }),
71
- );
72
- return new PrismaClient({ adapter });
73
- }
74
-
75
- const { hostname, port, database, dbUser, region } =
76
- await getDatabaseConfig(DB_PACKAGE_NAME);
63
+ export const getPrisma = async <LogOpts extends Prisma.LogLevel>(
64
+ log: LogOpts[] = ['warn', 'error'] as LogOpts[],
65
+ ): Promise<PrismaClient<LogOpts>> => {
66
+ if (process.env.SERVE_LOCAL === 'true') {
77
67
  const adapter = new PrismaPg(
78
68
  new Pool({
79
- host: hostname,
80
- port,
81
- database,
82
- user: dbUser,
83
- ssl: {
84
- rejectUnauthorized: true,
85
- },
69
+ host: LOCAL_DB_HOST,
70
+ port: LOCAL_DB_PORT,
71
+ database: LOCAL_DB_NAME,
72
+ user: LOCAL_DB_USER,
73
+ password: LOCAL_DB_PASSWORD,
86
74
  allowExitOnIdle: true,
87
- password: async () => {
88
- const token = await new Signer({
89
- hostname,
90
- port,
91
- region,
92
- username: dbUser,
93
- }).getAuthToken();
94
- return token;
95
- },
96
75
  }),
97
76
  );
77
+ return new PrismaClient({
78
+ adapter,
79
+ log,
80
+ }) as unknown as PrismaClient<LogOpts>;
81
+ }
98
82
 
99
- return new PrismaClient({ adapter });
100
- })();
83
+ const { hostname, port, database, dbUser, region } =
84
+ await getDatabaseConfig(DB_PACKAGE_NAME);
85
+ const adapter = new PrismaPg(
86
+ new Pool({
87
+ host: hostname,
88
+ port,
89
+ database,
90
+ user: dbUser,
91
+ ssl: {
92
+ rejectUnauthorized: true,
93
+ },
94
+ allowExitOnIdle: true,
95
+ password: async () => {
96
+ const token = await new Signer({
97
+ hostname,
98
+ port,
99
+ region,
100
+ username: dbUser,
101
+ }).getAuthToken();
102
+ return token;
103
+ },
104
+ }),
105
+ );
101
106
 
102
- return prismaPromise;
107
+ return new PrismaClient({
108
+ adapter,
109
+ log,
110
+ }) as unknown as PrismaClient<LogOpts>;
103
111
  };
104
112
  <%_ } _%>
@@ -155,6 +155,9 @@ const tsRdbGenerator = async (tree, options) => {
155
155
  }
156
156
  (0, nx_1.addDependencyToTargetIfNotPresent)(projectConfig, 'compile', 'generate');
157
157
  (0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, projectConfig);
158
+ (0, nx_1.addGeneratorMetadata)(tree, fullyQualifiedName, exports.TS_RDB_GENERATOR_INFO, {
159
+ engine: options.engine,
160
+ });
158
161
  await (0, shared_constructs_1.sharedConstructsGenerator)(tree, { iacProvider });
159
162
  await (0, rdb_constructs_1.addRdbInfra)(tree, {
160
163
  iacProvider,
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/rdb/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/rdb/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`ts#rdb mcp-server-connection generator > should add rdb serve-local dependency to the mcp-server prefixed serve-local 1`] = `
4
+ {
5
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
6
+ "metadata": {
7
+ "components": [
8
+ {
9
+ "generator": "ts#mcp-server",
10
+ "name": "my-mcp",
11
+ "path": "src/my-mcp",
12
+ },
13
+ ],
14
+ },
15
+ "name": "my-service",
16
+ "root": "packages/my-service",
17
+ "targets": {
18
+ "my-mcp-serve-local": {
19
+ "continuous": true,
20
+ "dependsOn": [
21
+ {
22
+ "projects": [
23
+ "db",
24
+ ],
25
+ "target": "serve-local",
26
+ },
27
+ ],
28
+ "executor": "nx:run-commands",
29
+ },
30
+ },
31
+ }
32
+ `;
33
+
34
+ exports[`ts#rdb mcp-server-connection generator > should be idempotent for server.ts 1`] = `
35
+ "import { getPrisma as getDb } from 'db';
36
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
37
+
38
+ export const createServer = async () => {
39
+ const db = await getDb();
40
+ db.$on('error', console.error);
41
+ const server = new McpServer({
42
+ name: 'my-service',
43
+ version: '1.0.0',
44
+ });
45
+
46
+ return server;
47
+ };
48
+ "
49
+ `;
50
+
51
+ exports[`ts#rdb mcp-server-connection generator > should fall back to mcp-server-serve-local when no component name 1`] = `
52
+ {
53
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
54
+ "metadata": {
55
+ "components": [
56
+ {
57
+ "generator": "ts#mcp-server",
58
+ "name": "mcp-server",
59
+ "path": "src/mcp-server",
60
+ },
61
+ ],
62
+ },
63
+ "name": "my-service",
64
+ "root": "packages/my-service",
65
+ "targets": {
66
+ "mcp-server-serve-local": {
67
+ "continuous": true,
68
+ "dependsOn": [
69
+ {
70
+ "projects": [
71
+ "db",
72
+ ],
73
+ "target": "serve-local",
74
+ },
75
+ ],
76
+ "executor": "nx:run-commands",
77
+ },
78
+ },
79
+ }
80
+ `;
81
+
82
+ exports[`ts#rdb mcp-server-connection generator > should inject db into server.ts 1`] = `
83
+ "import { getPrisma as getDb } from 'db';
84
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
85
+
86
+ export const createServer = async () => {
87
+ const db = await getDb();
88
+ db.$on('error', console.error);
89
+ const server = new McpServer({
90
+ name: 'my-service',
91
+ version: '1.0.0',
92
+ });
93
+
94
+ return server;
95
+ };
96
+ "
97
+ `;
98
+
99
+ exports[`ts#rdb mcp-server-connection generator > should support multiple rdb connections 1`] = `
100
+ "import { getPrisma as getMysqlDb } from 'mysql-db';
101
+ import { getPrisma as getPostgresDb } from 'postgres-db';
102
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
103
+
104
+ export const createServer = async () => {
105
+ const mysqlDb = await getMysqlDb();
106
+ mysqlDb.$on('error', console.error);
107
+ const postgresDb = await getPostgresDb();
108
+ postgresDb.$on('error', console.error);
109
+ const server = new McpServer({
110
+ name: 'my-service',
111
+ version: '1.0.0',
112
+ });
113
+
114
+ return server;
115
+ };
116
+ "
117
+ `;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { Tree } from '@nx/devkit';
6
+ import { TsRdbMcpServerConnectionGeneratorSchema } from './schema';
7
+ import { NxGeneratorInfo } from '../../../utils/nx';
8
+ export declare const TS_RDB_MCP_SERVER_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
9
+ export declare const tsRdbMcpServerConnectionGenerator: (tree: Tree, options: TsRdbMcpServerConnectionGeneratorSchema) => Promise<void>;
10
+ export default tsRdbMcpServerConnectionGenerator;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tsRdbMcpServerConnectionGenerator = exports.TS_RDB_MCP_SERVER_CONNECTION_GENERATOR_INFO = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
10
+ const nx_1 = require("../../../utils/nx");
11
+ const metrics_1 = require("../../../utils/metrics");
12
+ const format_1 = require("../../../utils/format");
13
+ const names_1 = require("../../../utils/names");
14
+ const lodash_camelcase_1 = tslib_1.__importDefault(require("lodash.camelcase"));
15
+ const npm_scope_1 = require("../../../utils/npm-scope");
16
+ const ast_1 = require("../../../utils/ast");
17
+ exports.TS_RDB_MCP_SERVER_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
18
+ const tsRdbMcpServerConnectionGenerator = async (tree, options) => {
19
+ const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
20
+ const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
21
+ const mcpServerName = options.sourceComponent?.name ?? 'mcp-server';
22
+ const serveLocalTarget = `${mcpServerName}-serve-local`;
23
+ if (sourceProject.targets?.[serveLocalTarget]) {
24
+ (0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTarget, {
25
+ projects: [targetProject.name],
26
+ target: 'serve-local',
27
+ });
28
+ (0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
29
+ }
30
+ const rdbBaseName = targetProject.name.split('/').pop();
31
+ const rdbNameCamel = (0, lodash_camelcase_1.default)(rdbBaseName);
32
+ const rdbNamePascal = (0, names_1.pascalCase)(rdbBaseName);
33
+ const rdbPackageAlias = (0, npm_scope_1.toScopeAlias)(targetProject.name);
34
+ const getterAlias = `getPrisma as get${rdbNamePascal}`;
35
+ const serverPath = (0, devkit_1.joinPathFragments)(sourceProject.root, 'src', mcpServerName, 'server.ts');
36
+ // server.ts: inject db inside createServer body
37
+ if (tree.exists(serverPath)) {
38
+ await (0, ast_1.addDestructuredImport)(tree, serverPath, [getterAlias], rdbPackageAlias);
39
+ await (0, ast_1.applyGritQL)(tree, serverPath, `\`export const createServer = async () => { $body }\` => raw\`export const createServer = async () => {
40
+ const ${rdbNameCamel} = await get${rdbNamePascal}();
41
+ $body
42
+ }\` where { $body <: not some \`const ${rdbNameCamel} = await get${rdbNamePascal}()\` }`);
43
+ // Add $on error handler after the db declaration.
44
+ // Done via string replacement because GritQL treats $on as a metavariable.
45
+ const dbDecl = `const ${rdbNameCamel} = await get${rdbNamePascal}();`;
46
+ const onCall = `${rdbNameCamel}.$on('error', console.error);`;
47
+ const content = tree.read(serverPath, 'utf-8');
48
+ if (content.includes(dbDecl) && !content.includes(`${rdbNameCamel}.$on`)) {
49
+ tree.write(serverPath, content.replace(dbDecl, `${dbDecl}\n ${onCall}`));
50
+ }
51
+ }
52
+ await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
53
+ exports.TS_RDB_MCP_SERVER_CONNECTION_GENERATOR_INFO,
54
+ ]);
55
+ await (0, format_1.formatFilesInSubtree)(tree);
56
+ };
57
+ exports.tsRdbMcpServerConnectionGenerator = tsRdbMcpServerConnectionGenerator;
58
+ exports.default = exports.tsRdbMcpServerConnectionGenerator;
59
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/rdb/mcp-server-connection/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAIoB;AAEpB,0CAK2B;AAC3B,oDAAyE;AACzE,kDAA6D;AAC7D,gDAAkD;AAClD,gFAAyC;AACzC,wDAAwD;AACxD,4CAAwE;AAE3D,QAAA,2CAA2C,GACtD,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,iCAAiC,GAAG,KAAK,EACpD,IAAU,EACV,OAAgD,EACjC,EAAE;IACjB,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,IAAI,YAAY,CAAC;IACpE,MAAM,gBAAgB,GAAG,GAAG,aAAa,cAAc,CAAC;IAExD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,IAAA,sCAAiC,EAAC,aAAa,EAAE,gBAAgB,EAAE;YACjE,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,IAAA,mCAA0B,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,IAAA,0BAAS,EAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAA,wBAAY,EAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,mBAAmB,aAAa,EAAE,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAClC,aAAa,CAAC,IAAI,EAClB,KAAK,EACL,aAAa,EACb,WAAW,CACZ,CAAC;IAEF,gDAAgD;IAChD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAA,2BAAqB,EACzB,IAAI,EACJ,UAAU,EACV,CAAC,WAAW,CAAC,EACb,eAAe,CAChB,CAAC;QAEF,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,UAAU,EACV;UACI,YAAY,eAAe,aAAa;;wCAEV,YAAY,eAAe,aAAa,QAAQ,CACnF,CAAC;QAEF,kDAAkD;QAClD,2EAA2E;QAC3E,MAAM,MAAM,GAAG,SAAS,YAAY,eAAe,aAAa,KAAK,CAAC;QACtE,MAAM,MAAM,GAAG,GAAG,YAAY,+BAA+B,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAE,CAAC;QAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,MAAM,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;QAC1C,mDAA2C;KAC5C,CAAC,CAAC;IACH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AArEW,QAAA,iCAAiC,qCAqE5C;AAEF,kBAAe,yCAAiC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { ComponentMetadata } from '../../../utils/nx';
6
+
7
+ /**
8
+ * TypeScript types for options defined in schema.json
9
+ */
10
+ export interface TsRdbMcpServerConnectionGeneratorSchema {
11
+ sourceProject: string;
12
+ targetProject: string;
13
+ sourceComponent?: ComponentMetadata;
14
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "ts#rdb#mcp-server-connection",
4
+ "title": "ts#rdb#mcp-server-connection",
5
+ "description": "Connect a ts#mcp-server to a ts#rdb project",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The project containing the ts#mcp-server to connect from"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The ts#rdb project to connect to"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The MCP server component name"
19
+ }
20
+ },
21
+ "required": ["sourceProject", "targetProject"]
22
+ }