@aws/nx-plugin 0.20.0 → 0.22.0

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 (79) hide show
  1. package/LICENSE-THIRD-PARTY +531 -21
  2. package/README.md +3 -9
  3. package/generators.json +14 -0
  4. package/package.json +7 -7
  5. package/src/cloudscape-website/cognito-auth/__snapshots__/generator.spec.ts.snap +1 -0
  6. package/src/cloudscape-website/cognito-auth/files/common/constructs/src/core/user-identity.ts.template +1 -0
  7. package/src/infra/app/__snapshots__/generator.spec.ts.snap +54 -12
  8. package/src/infra/app/generator.js +14 -0
  9. package/src/infra/app/generator.js.map +1 -1
  10. package/src/open-api/ts-metadata/__snapshots__/generator.spec.ts.snap +49 -0
  11. package/src/open-api/ts-metadata/files/metadata.gen.ts.template +17 -0
  12. package/src/open-api/ts-metadata/generator.d.ts +16 -0
  13. package/src/open-api/ts-metadata/generator.js +32 -0
  14. package/src/open-api/ts-metadata/generator.js.map +1 -0
  15. package/src/{utils/http-api.d.ts → open-api/ts-metadata/schema.d.ts} +5 -2
  16. package/src/open-api/ts-metadata/schema.json +20 -0
  17. package/src/open-api/utils/codegen-data.js +3 -0
  18. package/src/open-api/utils/codegen-data.js.map +1 -1
  19. package/src/open-api/utils/normalise.js +6 -0
  20. package/src/open-api/utils/normalise.js.map +1 -1
  21. package/src/preset/__snapshots__/generator.spec.ts.snap +199 -0
  22. package/src/preset/files/README.md +107 -0
  23. package/src/preset/generator.d.ts +10 -0
  24. package/src/preset/generator.js +63 -0
  25. package/src/preset/generator.js.map +1 -0
  26. package/src/preset/schema.d.ts +7 -0
  27. package/src/preset/schema.json +14 -0
  28. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +972 -0
  29. package/src/py/fast-api/files/app/__name__/init.py.template +8 -0
  30. package/src/py/fast-api/generator.js +53 -15
  31. package/src/py/fast-api/generator.js.map +1 -1
  32. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +2 -2
  33. package/src/py/fast-api/react/files/website/components/__apiNameClassName__Provider.tsx.template +1 -1
  34. package/src/py/fast-api/react/generator.js +6 -23
  35. package/src/py/fast-api/react/generator.js.map +1 -1
  36. package/src/py/fast-api/react/open-api.d.ts +14 -0
  37. package/src/py/fast-api/react/open-api.js +53 -0
  38. package/src/py/fast-api/react/open-api.js.map +1 -0
  39. package/src/py/fast-api/schema.d.ts +3 -0
  40. package/src/py/fast-api/schema.json +8 -0
  41. package/src/setup-tests.d.ts +2 -0
  42. package/src/setup-tests.js +14 -0
  43. package/src/setup-tests.js.map +1 -0
  44. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1061 -88
  45. package/src/trpc/backend/files/backend/src/client/index.ts.template +2 -13
  46. package/src/trpc/backend/files/backend/src/index.ts.template +1 -0
  47. package/src/trpc/backend/files/backend/src/init.ts.template +4 -4
  48. package/src/trpc/backend/files/backend/src/middleware/index.ts.template +3 -2
  49. package/src/trpc/backend/files/backend/src/router.ts.template +11 -2
  50. package/src/trpc/backend/generator.js +12 -10
  51. package/src/trpc/backend/generator.js.map +1 -1
  52. package/src/trpc/backend/schema.d.ts +1 -1
  53. package/src/trpc/backend/schema.json +8 -0
  54. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -19
  55. package/src/trpc/react/files/src/components/TrpcClients/TrpcProvider.tsx.template +2 -13
  56. package/src/trpc/react/generator.js +1 -1
  57. package/src/trpc/react/generator.js.map +1 -1
  58. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +26 -9
  59. package/src/ts/lib/generator.js +9 -0
  60. package/src/ts/lib/generator.js.map +1 -1
  61. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -4
  62. package/src/ts/nx-generator/generator.js +4 -3
  63. package/src/ts/nx-generator/generator.js.map +1 -1
  64. package/src/utils/api-constructs/api-constructs.d.ts +29 -0
  65. package/src/utils/api-constructs/api-constructs.js +65 -0
  66. package/src/utils/api-constructs/api-constructs.js.map +1 -0
  67. package/src/utils/api-constructs/files/app/apis/http/__apiNameKebabCase__.ts.template +135 -0
  68. package/src/utils/api-constructs/files/app/apis/rest/__apiNameKebabCase__.ts.template +156 -0
  69. package/src/utils/api-constructs/files/core/api/http/http-api.ts.template +112 -0
  70. package/src/utils/api-constructs/files/core/api/rest/rest-api.ts.template +137 -0
  71. package/src/utils/api-constructs/files/core/api/trpc/trpc-utils.ts.template +67 -0
  72. package/src/utils/api-constructs/files/core/api/utils/utils.ts.template +223 -0
  73. package/src/utils/versions.d.ts +3 -3
  74. package/src/utils/versions.js +2 -2
  75. package/src/py/fast-api/files/common/constructs/src/app/http-apis/__apiNameKebabCase__.ts.template +0 -22
  76. package/src/trpc/backend/files/common/constructs/src/app/http-apis/__apiNameKebabCase__.ts.template +0 -22
  77. package/src/utils/files/http-api/common/constructs/src/core/http-api.ts.template +0 -87
  78. package/src/utils/http-api.js +0 -51
  79. package/src/utils/http-api.js.map +0 -1
@@ -5,6 +5,9 @@ from collections.abc import Callable
5
5
  from aws_lambda_powertools import Logger, Metrics, Tracer
6
6
  from aws_lambda_powertools.metrics import MetricUnit
7
7
  from fastapi import FastAPI, Request, Response
8
+ <%_ if (computeType === 'ServerlessApiGatewayRestApi') { _%>
9
+ from fastapi.middleware.cors import CORSMiddleware
10
+ <%_ } _%>
8
11
  from fastapi.openapi.utils import get_openapi
9
12
  from fastapi.responses import JSONResponse
10
13
  from fastapi.routing import APIRoute
@@ -38,6 +41,11 @@ lambda_handler = logger.inject_lambda_context(lambda_handler, clear_state=True)
38
41
  # Add metrics last to properly flush metrics.
39
42
  lambda_handler = metrics.log_metrics(lambda_handler, capture_cold_start_metric=True)
40
43
 
44
+ <%_ if (computeType === 'ServerlessApiGatewayRestApi') { _%>
45
+ # Add cors middleware
46
+ app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_methods=['*'])
47
+
48
+ <%_ } _%>
41
49
  # Add exception middleware(s)
42
50
  app.add_middleware(ExceptionMiddleware, handlers=app.exception_handlers)
43
51
 
@@ -14,12 +14,13 @@ const toml_1 = require("@iarna/toml");
14
14
  const shared_constructs_1 = require("../../utils/shared-constructs");
15
15
  const shared_constructs_constants_1 = require("../../utils/shared-constructs-constants");
16
16
  const names_1 = require("../../utils/names");
17
- const ast_1 = require("../../utils/ast");
18
17
  const format_1 = require("../../utils/format");
19
- const http_api_1 = require("../../utils/http-api");
20
18
  const object_1 = require("../../utils/object");
21
19
  const nx_1 = require("../../utils/nx");
22
20
  const metrics_1 = require("../../utils/metrics");
21
+ const api_constructs_1 = require("../../utils/api-constructs/api-constructs");
22
+ const open_api_1 = require("./react/open-api");
23
+ const git_1 = require("../../utils/git");
23
24
  exports.FAST_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
24
25
  /**
25
26
  * Generates a Python FastAPI project
@@ -34,10 +35,6 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
34
35
  const apiNameSnakeCase = (0, names_1.toSnakeCase)(schema.name);
35
36
  const apiNameKebabCase = (0, names_1.toKebabCase)(schema.name);
36
37
  const apiNameClassName = (0, names_1.toClassName)(schema.name);
37
- const enhancedOptions = Object.assign(Object.assign({}, schema), { dir,
38
- apiNameClassName,
39
- apiNameKebabCase,
40
- apiNameSnakeCase });
41
38
  yield (0, generator_1.default)(tree, {
42
39
  name: normalizedName,
43
40
  directory: schema.directory,
@@ -75,6 +72,8 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
75
72
  };
76
73
  projectConfig.targets = (0, object_1.sortObjectKeys)(projectConfig.targets);
77
74
  (0, devkit_1.updateProjectConfiguration)(tree, normalizedName, projectConfig);
75
+ // Add OpenAPI spec generation to the project, run as part of build
76
+ const { specPath } = (0, open_api_1.addOpenApiGeneration)(tree, { project: projectConfig });
78
77
  [
79
78
  (0, devkit_1.joinPathFragments)(dir, normalizedModuleName !== null && normalizedModuleName !== void 0 ? normalizedModuleName : normalizedName, 'hello.py'),
80
79
  (0, devkit_1.joinPathFragments)(dir, 'tests', 'test_hello.py'),
@@ -85,31 +84,70 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
85
84
  {
86
85
  name: normalizedName,
87
86
  apiNameClassName,
87
+ computeType: schema.computeType,
88
88
  }, {
89
89
  overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
90
90
  });
91
- if (!tree.exists((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'http-apis', `${apiNameKebabCase}.ts`))) {
92
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app'), enhancedOptions, {
93
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
94
- });
95
- (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './http-apis/index.js');
96
- (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'http-apis', 'index.ts'), `./${apiNameKebabCase}.js`);
97
- }
98
- (0, http_api_1.addHttpApi)(tree, apiNameClassName);
91
+ // Add the CDK construct to deploy the FastAPI to shared constructs
92
+ (0, api_constructs_1.addApiGatewayConstruct)(tree, {
93
+ apiNameClassName,
94
+ apiNameKebabCase,
95
+ constructType: schema.computeType === 'ServerlessApiGatewayHttpApi' ? 'http' : 'rest',
96
+ backend: {
97
+ type: 'fastapi',
98
+ dir,
99
+ apiNameSnakeCase,
100
+ },
101
+ });
102
+ const generatedMetadataDir = (0, devkit_1.joinPathFragments)('generated', apiNameKebabCase);
103
+ const generatedMetadataDirFromRoot = (0, devkit_1.joinPathFragments)((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR), 'src', generatedMetadataDir);
99
104
  (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'project.json'), (config) => {
100
- var _a;
105
+ var _a, _b;
101
106
  if (!config.targets) {
102
107
  config.targets = {};
103
108
  }
104
109
  if (!config.targets.build) {
105
110
  config.targets.build = {};
106
111
  }
112
+ // If not already defined, add a target to generate metadata from the OpenAPI spec, used
113
+ // for providing a type-safe CDK construct
114
+ const metadataTargetName = `generate:${apiNameKebabCase}-metadata`;
115
+ if (!config.targets[metadataTargetName]) {
116
+ config.targets[metadataTargetName] = {
117
+ cache: true,
118
+ executor: 'nx:run-commands',
119
+ inputs: [
120
+ {
121
+ dependentTasksOutputFiles: '**/*.json',
122
+ },
123
+ ],
124
+ outputs: [
125
+ (0, devkit_1.joinPathFragments)('{workspaceRoot}', generatedMetadataDirFromRoot),
126
+ ],
127
+ options: {
128
+ commands: [
129
+ `nx g @aws/nx-plugin:open-api#ts-metadata --openApiSpecPath="${specPath}" --outputPath="${generatedMetadataDirFromRoot}" --no-interactive`,
130
+ ],
131
+ },
132
+ dependsOn: [`${projectConfig.name}:openapi`],
133
+ };
134
+ }
107
135
  config.targets.build.dependsOn = [
108
136
  ...((_a = config.targets.build.dependsOn) !== null && _a !== void 0 ? _a : []),
109
137
  `${fullyQualifiedName}:build`,
110
138
  ];
139
+ if (!config.targets.compile) {
140
+ config.targets.compile = {};
141
+ }
142
+ config.targets.compile.dependsOn = [
143
+ ...((_b = config.targets.compile.dependsOn) !== null && _b !== void 0 ? _b : []),
144
+ metadataTargetName,
145
+ ];
111
146
  return config;
112
147
  });
148
+ // Ignore the generated metadata by default
149
+ // Users can safely remove the entry from the .gitignore if they prefer to check it in
150
+ (0, git_1.updateGitIgnore)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR), (patterns) => [...patterns, (0, devkit_1.joinPathFragments)('src', generatedMetadataDir)]);
113
151
  const projectToml = (0, toml_1.parse)(tree.read((0, devkit_1.joinPathFragments)(dir, 'pyproject.toml'), 'utf8'));
114
152
  projectToml.project.dependencies = [
115
153
  'fastapi',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export const TestApiClientContext = createContext<TestApi | undefined>(
44
44
 
45
45
  const useCreateTestApiClient = (): TestApi => {
46
46
  const runtimeConfig = useRuntimeConfig();
47
- const apiUrl = runtimeConfig.httpApis.TestApi;
47
+ const apiUrl = runtimeConfig.apis.TestApi;
48
48
  return useMemo(
49
49
  () =>
50
50
  new TestApi({
@@ -108,7 +108,7 @@ export const TestApiClientContext = createContext<TestApi | undefined>(
108
108
 
109
109
  const useCreateTestApiClient = (): TestApi => {
110
110
  const runtimeConfig = useRuntimeConfig();
111
- const apiUrl = runtimeConfig.httpApis.TestApi;
111
+ const apiUrl = runtimeConfig.apis.TestApi;
112
112
  const sigv4Client = useSigV4();
113
113
  return useMemo(
114
114
  () =>
@@ -10,7 +10,7 @@ export const <%- apiNameClassName %>ClientContext = createContext<<%- apiNameCla
10
10
 
11
11
  const useCreate<%- apiNameClassName %>Client = (): <%- apiNameClassName %> => {
12
12
  const runtimeConfig = useRuntimeConfig();
13
- const apiUrl = runtimeConfig.httpApis.<%- apiNameClassName %>;
13
+ const apiUrl = runtimeConfig.apis.<%- apiNameClassName %>;
14
14
  <%_ if(auth === 'IAM') { _%>
15
15
  const sigv4Client = useSigV4();
16
16
  <%_ } _%>
@@ -9,7 +9,6 @@ const tslib_1 = require("tslib");
9
9
  const devkit_1 = require("@nx/devkit");
10
10
  const generator_1 = require("../../../cloudscape-website/runtime-config/generator");
11
11
  const lodash_snakecase_1 = tslib_1.__importDefault(require("lodash.snakecase"));
12
- const path = tslib_1.__importStar(require("path"));
13
12
  const lodash_kebabcase_1 = tslib_1.__importDefault(require("lodash.kebabcase"));
14
13
  const object_1 = require("../../../utils/object");
15
14
  const names_1 = require("../../../utils/names");
@@ -19,33 +18,17 @@ const git_1 = require("../../../utils/git");
19
18
  const ast_1 = require("../../../utils/ast");
20
19
  const nx_1 = require("../../../utils/nx");
21
20
  const metrics_1 = require("../../../utils/metrics");
21
+ const open_api_1 = require("./open-api");
22
22
  exports.FAST_API_REACT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
23
23
  const fastApiReactGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
- var _a, _b, _c, _d, _e;
24
+ var _a;
25
25
  const frontendProjectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.frontendProjectName);
26
26
  const fastApiProjectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.fastApiProjectName);
27
- const moduleName = getFastApiModuleName(fastApiProjectConfig);
28
- // Add OpenAPI spec generation script to FastAPI spec (if it does not exist already)
29
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files/fast-api'), fastApiProjectConfig.root, {
30
- moduleName,
27
+ // Add OpenAPI spec generation to the project, run as part of build
28
+ const { specPath } = (0, open_api_1.addOpenApiGeneration)(tree, {
29
+ project: fastApiProjectConfig,
31
30
  });
32
- // Instrument the script as part of the fastapi project build
33
- const fastApiOpenApiDist = (0, devkit_1.joinPathFragments)('dist', fastApiProjectConfig.root, 'openapi');
34
- const specPath = (0, devkit_1.joinPathFragments)(fastApiOpenApiDist, 'openapi.json');
35
- (0, devkit_1.updateProjectConfiguration)(tree, options.fastApiProjectName, Object.assign(Object.assign({}, fastApiProjectConfig), { targets: (0, object_1.sortObjectKeys)(Object.assign(Object.assign({}, fastApiProjectConfig.targets), { build: Object.assign(Object.assign({}, (_a = fastApiProjectConfig.targets) === null || _a === void 0 ? void 0 : _a.build), { dependsOn: [
36
- ...((_d = (_c = (_b = fastApiProjectConfig.targets) === null || _b === void 0 ? void 0 : _b.build) === null || _c === void 0 ? void 0 : _c.dependsOn) !== null && _d !== void 0 ? _d : []).filter((t) => t !== 'openapi'),
37
- 'openapi',
38
- ] }), openapi: {
39
- cache: true,
40
- executor: 'nx:run-commands',
41
- outputs: [(0, devkit_1.joinPathFragments)('{workspaceRoot}', fastApiOpenApiDist)],
42
- options: {
43
- commands: [
44
- `uv run python ${(0, devkit_1.joinPathFragments)(fastApiProjectConfig.root, 'scripts', 'generate_open_api.py')} "${specPath}"`,
45
- ],
46
- },
47
- } })) }));
48
- const apiName = (_e = fastApiProjectConfig.metadata) === null || _e === void 0 ? void 0 : _e.apiName;
31
+ const apiName = (_a = fastApiProjectConfig.metadata) === null || _a === void 0 ? void 0 : _a.apiName;
49
32
  const clientGenTarget = `generate:${(0, lodash_kebabcase_1.default)(apiName)}-client`;
50
33
  const generatedClientDir = (0, devkit_1.joinPathFragments)('generated', (0, lodash_kebabcase_1.default)(apiName));
51
34
  const generatedClientDirFromRoot = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, generatedClientDir);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/generator.ts"],"names":[],"mappings":"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"}
@@ -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 { ProjectConfiguration, Tree } from '@nx/devkit';
6
+ export interface AddOpenApiGenerationOptions {
7
+ project: ProjectConfiguration;
8
+ }
9
+ /**
10
+ * Adds FastAPI -> OpenApi spec generation as part of the FastAPI project build
11
+ */
12
+ export declare const addOpenApiGeneration: (tree: Tree, { project }: AddOpenApiGenerationOptions) => {
13
+ specPath: string;
14
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addOpenApiGeneration = 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 lodash_snakecase_1 = tslib_1.__importDefault(require("lodash.snakecase"));
11
+ const object_1 = require("../../../utils/object");
12
+ /**
13
+ * Adds FastAPI -> OpenApi spec generation as part of the FastAPI project build
14
+ */
15
+ const addOpenApiGeneration = (tree, { project }) => {
16
+ var _a, _b, _c, _d;
17
+ const moduleName = getFastApiModuleName(project);
18
+ // Add OpenAPI spec generation script to FastAPI spec (if it does not exist already)
19
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files/fast-api'), project.root, {
20
+ moduleName,
21
+ });
22
+ // Instrument the script as part of the fastapi project build
23
+ const fastApiOpenApiDist = (0, devkit_1.joinPathFragments)('dist', project.root, 'openapi');
24
+ const specPath = (0, devkit_1.joinPathFragments)(fastApiOpenApiDist, 'openapi.json');
25
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, Object.assign(Object.assign({}, project), { targets: (0, object_1.sortObjectKeys)(Object.assign(Object.assign({}, project.targets), { build: Object.assign(Object.assign({}, (_a = project.targets) === null || _a === void 0 ? void 0 : _a.build), { dependsOn: [
26
+ ...((_d = (_c = (_b = project.targets) === null || _b === void 0 ? void 0 : _b.build) === null || _c === void 0 ? void 0 : _c.dependsOn) !== null && _d !== void 0 ? _d : []).filter((t) => t !== 'openapi'),
27
+ 'openapi',
28
+ ] }), openapi: {
29
+ cache: true,
30
+ executor: 'nx:run-commands',
31
+ outputs: [(0, devkit_1.joinPathFragments)('{workspaceRoot}', fastApiOpenApiDist)],
32
+ options: {
33
+ commands: [
34
+ `uv run python ${(0, devkit_1.joinPathFragments)(project.root, 'scripts', 'generate_open_api.py')} "${specPath}"`,
35
+ ],
36
+ },
37
+ } })) }));
38
+ return { specPath };
39
+ };
40
+ exports.addOpenApiGeneration = addOpenApiGeneration;
41
+ const getFastApiModuleName = (projectConfig) => {
42
+ var _a;
43
+ if (projectConfig.sourceRoot) {
44
+ const sourceRootParts = projectConfig.sourceRoot.split('/');
45
+ return sourceRootParts[sourceRootParts.length - 1];
46
+ }
47
+ const apiName = (_a = projectConfig.metadata) === null || _a === void 0 ? void 0 : _a.apiName;
48
+ if (apiName) {
49
+ return (0, lodash_snakecase_1.default)(apiName);
50
+ }
51
+ new Error(`Could not determine sourceRoot for project ${projectConfig.name}`);
52
+ };
53
+ //# sourceMappingURL=open-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-api.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/open-api.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAMoB;AACpB,gFAAyC;AACzC,kDAAuD;AAMvD;;GAEG;AACI,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,EAAE,OAAO,EAA+B,EAClB,EAAE;;IACxB,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEjD,oFAAoF;IACpF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,gBAAgB,CAAC,EAC9C,OAAO,CAAC,IAAI,EACZ;QACE,UAAU;KACX,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACvE,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,kCACxC,OAAO,KACV,OAAO,EAAE,IAAA,uBAAc,kCAClB,OAAO,CAAC,OAAO,KAClB,KAAK,kCACA,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,KACzB,SAAS,EAAE;oBACT,GAAG,CAAC,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB;oBACD,SAAS;iBACV,KAEH,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,CAAC,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;gBACnE,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,iBAAiB,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,sBAAsB,CAAC,KAAK,QAAQ,GAAG;qBACpG;iBACF;aACF,IACD,IACF,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC,CAAC;AA9CW,QAAA,oBAAoB,wBA8C/B;AAEF,MAAM,oBAAoB,GAAG,CAAC,aAAmC,EAAU,EAAE;;IAC3E,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,MAAC,aAAa,CAAC,QAAgB,0CAAE,OAAO,CAAC;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAA,0BAAS,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC"}
@@ -5,5 +5,8 @@
5
5
 
6
6
  export interface FastApiProjectGeneratorSchema {
7
7
  readonly name: string;
8
+ readonly computeType:
9
+ | 'ServerlessApiGatewayRestApi'
10
+ | 'ServerlessApiGatewayHttpApi';
8
11
  readonly directory?: string;
9
12
  }
@@ -15,6 +15,14 @@
15
15
  },
16
16
  "x-prompt": "What name would you like your API to have? i.e: MyApi"
17
17
  },
18
+ "computeType": {
19
+ "type": "string",
20
+ "description": "The type of compute to use to deploy this API. Choose between ServerlessApiGatewayRestApi (default) or ServerlessApiGatewayHttpApi.",
21
+ "default": "ServerlessApiGatewayRestApi",
22
+ "enum": ["ServerlessApiGatewayRestApi", "ServerlessApiGatewayHttpApi"],
23
+ "x-prompt": "What compute type would you like to deploy your API with?",
24
+ "x-priority": "important"
25
+ },
18
26
  "directory": {
19
27
  "type": "string",
20
28
  "description": "The directory to store the application in.",
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Promise<void>;
2
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ const devkit_1 = require("@nx/devkit");
9
+ // Global Setup https://vitest.dev/config/#globalsetup
10
+ exports.default = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
+ // Create the project graph in global setup to ensure it's cached in the daemon
12
+ yield (0, devkit_1.createProjectGraphAsync)();
13
+ });
14
+ //# sourceMappingURL=setup-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-tests.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/src/setup-tests.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAqD;AAErD,sDAAsD;AACtD,kBAAe,GAAS,EAAE;IACxB,+EAA+E;IAC/E,MAAM,IAAA,gCAAuB,GAAE,CAAC;AAClC,CAAC,CAAA,CAAC"}