@aws/nx-plugin 0.80.0 → 0.81.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.
- package/LICENSE-THIRD-PARTY +28 -299
- package/package.json +1 -1
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +368 -86
- package/src/py/fast-api/generator.js +3 -0
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/schema.d.ts +1 -0
- package/src/py/fast-api/schema.json +22 -0
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +12 -8
- package/src/smithy/ts/api/generator.js +3 -0
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.ts +4 -0
- package/src/smithy/ts/api/schema.json +22 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +392 -102
- package/src/trpc/backend/generator.js +20 -1
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +1 -0
- package/src/trpc/backend/schema.json +22 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +3 -9
- package/src/ts/lib/files/src/index.ts.template +1 -3
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +95 -0
- package/src/ts/react-website/cognito-auth/utils.js +1 -1
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.d.ts +1 -0
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +18 -10
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +28 -16
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +25 -5
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +32 -8
- package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +151 -32
|
@@ -28,6 +28,7 @@ exports.FAST_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
|
28
28
|
* Generates a Python FastAPI project
|
|
29
29
|
*/
|
|
30
30
|
const pyFastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
const integrationPattern = getIntegrationPattern(schema);
|
|
31
32
|
const iacProvider = yield (0, iac_1.resolveIacProvider)(tree, schema.iacProvider);
|
|
32
33
|
yield (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
33
34
|
iacProvider,
|
|
@@ -92,6 +93,7 @@ const pyFastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, vo
|
|
|
92
93
|
type: 'fastapi',
|
|
93
94
|
moduleName: normalizedModuleName,
|
|
94
95
|
bundleOutputDir,
|
|
96
|
+
integrationPattern,
|
|
95
97
|
},
|
|
96
98
|
auth: schema.auth,
|
|
97
99
|
iacProvider,
|
|
@@ -120,5 +122,6 @@ const pyFastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, vo
|
|
|
120
122
|
});
|
|
121
123
|
});
|
|
122
124
|
exports.pyFastApiProjectGenerator = pyFastApiProjectGenerator;
|
|
125
|
+
const getIntegrationPattern = (schema) => { var _a; return (_a = schema.integrationPattern) !== null && _a !== void 0 ? _a : 'isolated'; };
|
|
123
126
|
exports.default = exports.pyFastApiProjectGenerator;
|
|
124
127
|
//# sourceMappingURL=generator.js.map
|
|
@@ -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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"}
|
|
@@ -10,6 +10,7 @@ export interface PyFastApiProjectGeneratorSchema {
|
|
|
10
10
|
readonly computeType:
|
|
11
11
|
| 'ServerlessApiGatewayRestApi'
|
|
12
12
|
| 'ServerlessApiGatewayHttpApi';
|
|
13
|
+
readonly integrationPattern?: 'isolated' | 'shared';
|
|
13
14
|
readonly auth: 'IAM' | 'Cognito' | 'None';
|
|
14
15
|
readonly directory?: string;
|
|
15
16
|
readonly moduleName?: string;
|
|
@@ -23,6 +23,28 @@
|
|
|
23
23
|
"x-prompt": "What compute type would you like to deploy your API with?",
|
|
24
24
|
"x-priority": "important"
|
|
25
25
|
},
|
|
26
|
+
"integrationPattern": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "How API Gateway integrations are generated for the API. Choose between isolated (default) and shared.",
|
|
29
|
+
"default": "isolated",
|
|
30
|
+
"enum": ["isolated", "shared"],
|
|
31
|
+
"x-priority": "important",
|
|
32
|
+
"x-prompt": {
|
|
33
|
+
"message": "How would you like to map integrations to your FastAPI operations?",
|
|
34
|
+
"type": "list",
|
|
35
|
+
"items": [
|
|
36
|
+
{
|
|
37
|
+
"value": "isolated",
|
|
38
|
+
"label": "isolated (one integration per operation)"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"value": "shared",
|
|
42
|
+
"label": "shared (single default integration with optional overrides)"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"default": "isolated"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
26
48
|
"auth": {
|
|
27
49
|
"type": "string",
|
|
28
50
|
"description": "The method used to authenticate with your API. Choose between IAM (default), Cognito or None.",
|
|
@@ -57,6 +57,7 @@ import {
|
|
|
57
57
|
} from 'aws-cdk-lib/aws-iam';
|
|
58
58
|
import { IUserPool } from 'aws-cdk-lib/aws-cognito';
|
|
59
59
|
import {
|
|
60
|
+
ApiIntegrations,
|
|
60
61
|
IntegrationBuilder,
|
|
61
62
|
RestApiIntegration,
|
|
62
63
|
} from '../../core/api/utils.js';
|
|
@@ -72,7 +73,7 @@ import {
|
|
|
72
73
|
* @template TIntegrations - Map of operation names to their integrations
|
|
73
74
|
*/
|
|
74
75
|
export interface TestApiProps<
|
|
75
|
-
TIntegrations extends
|
|
76
|
+
TIntegrations extends ApiIntegrations<Operations, RestApiIntegration>,
|
|
76
77
|
> {
|
|
77
78
|
/**
|
|
78
79
|
* Map of operation names to their API Gateway integrations
|
|
@@ -92,7 +93,7 @@ export interface TestApiProps<
|
|
|
92
93
|
* @template TIntegrations - Map of operation names to their integrations
|
|
93
94
|
*/
|
|
94
95
|
export class TestApi<
|
|
95
|
-
TIntegrations extends
|
|
96
|
+
TIntegrations extends ApiIntegrations<Operations, RestApiIntegration>,
|
|
96
97
|
> extends RestApi<Operations, TIntegrations> {
|
|
97
98
|
/**
|
|
98
99
|
* Creates default integrations for all operations, which implement each operation as
|
|
@@ -103,8 +104,9 @@ export class TestApi<
|
|
|
103
104
|
*/
|
|
104
105
|
public static defaultIntegrations = (scope: Construct) => {
|
|
105
106
|
return IntegrationBuilder.rest({
|
|
107
|
+
pattern: 'isolated',
|
|
106
108
|
operations: OPERATION_DETAILS,
|
|
107
|
-
defaultIntegrationOptions: {
|
|
109
|
+
defaultIntegrationOptions: <FunctionProps>{
|
|
108
110
|
runtime: Runtime.NODEJS_LATEST,
|
|
109
111
|
handler: 'index.handler',
|
|
110
112
|
code: Code.fromAsset(
|
|
@@ -120,7 +122,7 @@ export class TestApi<
|
|
|
120
122
|
environment: {
|
|
121
123
|
AWS_CONNECTION_REUSE_ENABLED: '1',
|
|
122
124
|
},
|
|
123
|
-
}
|
|
125
|
+
},
|
|
124
126
|
buildDefaultIntegration: (op, props: FunctionProps) => {
|
|
125
127
|
const handler = new Function(scope, \`TestApi\${op}Handler\`, props);
|
|
126
128
|
return {
|
|
@@ -224,6 +226,7 @@ import {
|
|
|
224
226
|
Grant,
|
|
225
227
|
} from 'aws-cdk-lib/aws-iam';
|
|
226
228
|
import {
|
|
229
|
+
ApiIntegrations,
|
|
227
230
|
IntegrationBuilder,
|
|
228
231
|
RestApiIntegration,
|
|
229
232
|
} from '../../core/api/utils.js';
|
|
@@ -239,7 +242,7 @@ import {
|
|
|
239
242
|
* @template TIntegrations - Map of operation names to their integrations
|
|
240
243
|
*/
|
|
241
244
|
export interface TestApiProps<
|
|
242
|
-
TIntegrations extends
|
|
245
|
+
TIntegrations extends ApiIntegrations<Operations, RestApiIntegration>,
|
|
243
246
|
> {
|
|
244
247
|
/**
|
|
245
248
|
* Map of operation names to their API Gateway integrations
|
|
@@ -253,7 +256,7 @@ export interface TestApiProps<
|
|
|
253
256
|
* @template TIntegrations - Map of operation names to their integrations
|
|
254
257
|
*/
|
|
255
258
|
export class TestApi<
|
|
256
|
-
TIntegrations extends
|
|
259
|
+
TIntegrations extends ApiIntegrations<Operations, RestApiIntegration>,
|
|
257
260
|
> extends RestApi<Operations, TIntegrations> {
|
|
258
261
|
/**
|
|
259
262
|
* Creates default integrations for all operations, which implement each operation as
|
|
@@ -264,8 +267,9 @@ export class TestApi<
|
|
|
264
267
|
*/
|
|
265
268
|
public static defaultIntegrations = (scope: Construct) => {
|
|
266
269
|
return IntegrationBuilder.rest({
|
|
270
|
+
pattern: 'isolated',
|
|
267
271
|
operations: OPERATION_DETAILS,
|
|
268
|
-
defaultIntegrationOptions: {
|
|
272
|
+
defaultIntegrationOptions: <FunctionProps>{
|
|
269
273
|
runtime: Runtime.NODEJS_LATEST,
|
|
270
274
|
handler: 'index.handler',
|
|
271
275
|
code: Code.fromAsset(
|
|
@@ -281,7 +285,7 @@ export class TestApi<
|
|
|
281
285
|
environment: {
|
|
282
286
|
AWS_CONNECTION_REUSE_ENABLED: '1',
|
|
283
287
|
},
|
|
284
|
-
}
|
|
288
|
+
},
|
|
285
289
|
buildDefaultIntegration: (op, props: FunctionProps) => {
|
|
286
290
|
const handler = new Function(scope, \`TestApi\${op}Handler\`, props);
|
|
287
291
|
return {
|
|
@@ -25,6 +25,7 @@ const api_constructs_1 = require("../../../utils/api-constructs/api-constructs")
|
|
|
25
25
|
const open_api_metadata_1 = require("../../../utils/api-constructs/open-api-metadata");
|
|
26
26
|
exports.TS_SMITHY_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
27
27
|
const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
const integrationPattern = getIntegrationPattern(options);
|
|
28
29
|
const apiNameClassName = (0, names_1.toClassName)(options.name);
|
|
29
30
|
const apiNameKebabCase = (0, names_1.toKebabCase)(options.name);
|
|
30
31
|
const { fullyQualifiedName: backendFullyQualifiedName, dir } = (0, generator_1.getTsLibDetails)(tree, options);
|
|
@@ -74,6 +75,7 @@ const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
74
75
|
backend: {
|
|
75
76
|
type: 'smithy',
|
|
76
77
|
bundleOutputDir: (0, devkit_1.joinPathFragments)('dist', backendProjectConfig.root, 'bundle'),
|
|
78
|
+
integrationPattern,
|
|
77
79
|
},
|
|
78
80
|
});
|
|
79
81
|
(0, open_api_metadata_1.addSharedConstructsOpenApiMetadataGenerateTarget)(tree, {
|
|
@@ -151,5 +153,6 @@ const tsSmithyApiGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
151
153
|
};
|
|
152
154
|
});
|
|
153
155
|
exports.tsSmithyApiGenerator = tsSmithyApiGenerator;
|
|
156
|
+
const getIntegrationPattern = (options) => { var _a; return (_a = options.integrationPattern) !== null && _a !== void 0 ? _a : 'isolated'; };
|
|
154
157
|
exports.default = exports.tsSmithyApiGenerator;
|
|
155
158
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
+
import { TsProjectGeneratorSchema } from '../../../ts/lib/schema';
|
|
6
|
+
import { IacProviderOption } from '../../../utils/iac';
|
|
7
|
+
|
|
5
8
|
export interface TsSmithyApiGeneratorSchema {
|
|
6
9
|
name: string;
|
|
7
10
|
namespace?: string;
|
|
8
11
|
// Only API Gateway REST APIs are supported by Smithy
|
|
9
12
|
// https://smithy.io/2.0/languages/typescript/ts-ssdk/supported-endpoints.html#amazon-api-gateway-rest-apis-and-aws-lambda
|
|
10
13
|
computeType: 'ServerlessApiGatewayRestApi';
|
|
14
|
+
integrationPattern?: 'isolated' | 'shared';
|
|
11
15
|
auth: 'IAM' | 'Cognito' | 'None';
|
|
12
16
|
directory?: TsProjectGeneratorSchema['directory'];
|
|
13
17
|
iacProvider: IacProviderOption;
|
|
@@ -27,6 +27,28 @@
|
|
|
27
27
|
"x-prompt": "What compute type would you like to deploy your API with?",
|
|
28
28
|
"x-priority": "internal"
|
|
29
29
|
},
|
|
30
|
+
"integrationPattern": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "How API Gateway integrations are generated for the API. Choose between isolated (default) and shared.",
|
|
33
|
+
"default": "isolated",
|
|
34
|
+
"enum": ["isolated", "shared"],
|
|
35
|
+
"x-priority": "important",
|
|
36
|
+
"x-prompt": {
|
|
37
|
+
"message": "How would you like to map integrations to your Smithy operations?",
|
|
38
|
+
"type": "list",
|
|
39
|
+
"items": [
|
|
40
|
+
{
|
|
41
|
+
"value": "isolated",
|
|
42
|
+
"label": "isolated (one integration per operation)"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"value": "shared",
|
|
46
|
+
"label": "shared (single default integration with optional overrides)"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"default": "isolated"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
30
52
|
"auth": {
|
|
31
53
|
"type": "string",
|
|
32
54
|
"description": "The method used to authenticate with your API. Choose between IAM (default), Cognito or None.",
|