@aws/nx-plugin 0.7.0 → 0.7.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 +1682 -108
- package/generators.json +6 -0
- package/package.json +9 -1
- package/src/cloudscape-website/app/generator.js +2 -2
- package/src/cloudscape-website/app/generator.js.map +1 -1
- package/src/infra/app/files/common/constructs/src/core/cfn-guard.ts.template +5 -1
- package/src/infra/app/generator.js +1 -1
- package/src/infra/app/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.d.ts +11 -0
- package/src/open-api/ts-hooks/generator.js +17 -0
- package/src/open-api/ts-hooks/generator.js.map +1 -0
- package/src/open-api/ts-hooks/schema.d.ts +9 -0
- package/src/open-api/ts-hooks/schema.json +20 -0
- package/src/open-api/utils/codegen-data/languages.d.ts +10 -0
- package/src/open-api/utils/codegen-data/languages.js +175 -0
- package/src/open-api/utils/codegen-data/languages.js.map +1 -0
- package/src/open-api/utils/codegen-data/types.d.ts +20 -0
- package/src/open-api/utils/codegen-data/types.js +19 -0
- package/src/open-api/utils/codegen-data/types.js.map +1 -0
- package/src/open-api/utils/codegen-data.d.ts +6 -0
- package/src/open-api/utils/codegen-data.js +434 -0
- package/src/open-api/utils/codegen-data.js.map +1 -0
- package/src/open-api/utils/normalise.d.ts +6 -0
- package/src/open-api/utils/normalise.js +213 -0
- package/src/open-api/utils/normalise.js.map +1 -0
- package/src/open-api/utils/parse.d.ts +10 -0
- package/src/open-api/utils/parse.js +38 -0
- package/src/open-api/utils/parse.js.map +1 -0
- package/src/open-api/utils/refs.d.ts +23 -0
- package/src/open-api/utils/refs.js +41 -0
- package/src/open-api/utils/refs.js.map +1 -0
- package/src/open-api/utils/types.d.ts +6 -0
- package/src/open-api/utils/types.js +3 -0
- package/src/open-api/utils/types.js.map +1 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +33 -0
- package/src/py/fast-api/files/app/__name__/main.py.template +3 -1
- package/src/py/fast-api/generator.js +3 -2
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/project/generator.js +1 -1
- package/src/py/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +7 -3
- package/src/trpc/backend/files/backend/src/init.ts.template +2 -0
- package/src/trpc/backend/generator.js +17 -3
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/ts/lib/generator.js +1 -2
- package/src/ts/lib/generator.js.map +1 -1
- package/src/utils/files/http-api/common/constructs/src/core/http-api.ts.template +5 -3
- package/src/utils/names.d.ts +2 -0
- package/src/utils/names.js +6 -1
- package/src/utils/names.js.map +1 -1
- package/src/utils/nx.d.ts +1 -1
- package/src/utils/nx.js +3 -3
- package/src/utils/nx.js.map +1 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normaliseOpenApiSpecForCodeGen = 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 lodash_clonedeepwith_1 = tslib_1.__importDefault(require("lodash.clonedeepwith"));
|
|
10
|
+
const refs_1 = require("./refs");
|
|
11
|
+
const names_1 = require("../../utils/names");
|
|
12
|
+
const isCompositeSchema = (schema) => !!schema.allOf || !!schema.anyOf || !!schema.oneOf;
|
|
13
|
+
const hasSubSchemasToVisit = (schema) => !!schema &&
|
|
14
|
+
!(0, refs_1.isRef)(schema) &&
|
|
15
|
+
(['object', 'array'].includes(schema.type) ||
|
|
16
|
+
isCompositeSchema(schema) ||
|
|
17
|
+
!!schema.not ||
|
|
18
|
+
(schema.type === 'string' && !!schema.enum));
|
|
19
|
+
const filterInlineCompositeSchemas = (schemas, nameParts, namePartPrefix, propPath) => {
|
|
20
|
+
let inlineSchemaIndex = 0;
|
|
21
|
+
return schemas.flatMap((s, i) => {
|
|
22
|
+
if (hasSubSchemasToVisit(s)) {
|
|
23
|
+
const subSchema = {
|
|
24
|
+
nameParts: s.title
|
|
25
|
+
? [(0, names_1.pascalCase)(s.title)]
|
|
26
|
+
: [
|
|
27
|
+
...nameParts,
|
|
28
|
+
`${namePartPrefix}${inlineSchemaIndex === 0 ? '' : inlineSchemaIndex}`,
|
|
29
|
+
],
|
|
30
|
+
schema: s,
|
|
31
|
+
propPath: [...propPath, i],
|
|
32
|
+
};
|
|
33
|
+
inlineSchemaIndex++;
|
|
34
|
+
return [subSchema];
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
const hoistInlineObjectSubSchemas = (nameParts, schema) => {
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
41
|
+
// Find all the inline subschemas we should visit
|
|
42
|
+
const inlineSubSchemas = [
|
|
43
|
+
...(hasSubSchemasToVisit(schema.not)
|
|
44
|
+
? [
|
|
45
|
+
{
|
|
46
|
+
nameParts: ((_a = schema.not) === null || _a === void 0 ? void 0 : _a.title)
|
|
47
|
+
? [(0, names_1.pascalCase)((_b = schema.not) === null || _b === void 0 ? void 0 : _b.title)]
|
|
48
|
+
: [...nameParts, 'Not'],
|
|
49
|
+
schema: schema.not,
|
|
50
|
+
propPath: ['not'],
|
|
51
|
+
},
|
|
52
|
+
]
|
|
53
|
+
: []),
|
|
54
|
+
...(schema.anyOf
|
|
55
|
+
? filterInlineCompositeSchemas(schema.anyOf, nameParts, 'AnyOf', [
|
|
56
|
+
'anyOf',
|
|
57
|
+
])
|
|
58
|
+
: []),
|
|
59
|
+
...(schema.allOf
|
|
60
|
+
? filterInlineCompositeSchemas(schema.allOf, nameParts, 'AllOf', [
|
|
61
|
+
'allOf',
|
|
62
|
+
])
|
|
63
|
+
: []),
|
|
64
|
+
...(schema.oneOf
|
|
65
|
+
? filterInlineCompositeSchemas(schema.oneOf, nameParts, 'OneOf', [
|
|
66
|
+
'oneOf',
|
|
67
|
+
])
|
|
68
|
+
: []),
|
|
69
|
+
...('items' in schema && hasSubSchemasToVisit(schema.items)
|
|
70
|
+
? [
|
|
71
|
+
{
|
|
72
|
+
nameParts: ((_c = schema.items) === null || _c === void 0 ? void 0 : _c.title)
|
|
73
|
+
? [(0, names_1.pascalCase)((_d = schema.items) === null || _d === void 0 ? void 0 : _d.title)]
|
|
74
|
+
: [...nameParts, 'Item'],
|
|
75
|
+
schema: schema.items,
|
|
76
|
+
propPath: ['items'],
|
|
77
|
+
},
|
|
78
|
+
]
|
|
79
|
+
: []),
|
|
80
|
+
...Object.entries((_e = schema.properties) !== null && _e !== void 0 ? _e : {})
|
|
81
|
+
.filter(([, s]) => hasSubSchemasToVisit(s))
|
|
82
|
+
.map(([name, s]) => ({
|
|
83
|
+
nameParts: s.title
|
|
84
|
+
? [(0, names_1.pascalCase)(s.title)]
|
|
85
|
+
: [...nameParts, name],
|
|
86
|
+
schema: s,
|
|
87
|
+
propPath: ['properties', name],
|
|
88
|
+
})),
|
|
89
|
+
...(typeof schema.additionalProperties !== 'boolean' &&
|
|
90
|
+
hasSubSchemasToVisit(schema.additionalProperties)
|
|
91
|
+
? [
|
|
92
|
+
{
|
|
93
|
+
nameParts: ((_f = schema.additionalProperties) === null || _f === void 0 ? void 0 : _f.title)
|
|
94
|
+
? [(0, names_1.pascalCase)((_g = schema.additionalProperties) === null || _g === void 0 ? void 0 : _g.title)]
|
|
95
|
+
: [...nameParts, 'Value'],
|
|
96
|
+
schema: schema.additionalProperties,
|
|
97
|
+
propPath: ['additionalProperties'],
|
|
98
|
+
},
|
|
99
|
+
]
|
|
100
|
+
: []),
|
|
101
|
+
];
|
|
102
|
+
// Hoist these recursively first (ie depth first search) so that we don't miss refs
|
|
103
|
+
const recursiveRefs = inlineSubSchemas.flatMap((s) => hoistInlineObjectSubSchemas(s.nameParts, s.schema));
|
|
104
|
+
// Clone the object subschemas to build the refs. Note that only objects with "properties" are hoisted as these are non-dictionary types
|
|
105
|
+
const refs = inlineSubSchemas
|
|
106
|
+
.filter((s) => (s.schema.type === 'object' && s.schema.properties) ||
|
|
107
|
+
isCompositeSchema(s.schema) ||
|
|
108
|
+
(s.schema.type === 'string' && s.schema.enum))
|
|
109
|
+
.map((s) => {
|
|
110
|
+
const name = s.nameParts.map(names_1.upperFirst).join('');
|
|
111
|
+
const $ref = `#/components/schemas/${name}`;
|
|
112
|
+
const ref = {
|
|
113
|
+
$ref,
|
|
114
|
+
name,
|
|
115
|
+
schema: structuredClone(Object.assign(Object.assign({}, s.schema), { 'x-aws-nx-hoisted': true })),
|
|
116
|
+
};
|
|
117
|
+
// Replace each subschema with a ref in the spec
|
|
118
|
+
const schemaWithPropToReplace = s.propPath
|
|
119
|
+
.slice(0, -1)
|
|
120
|
+
.reduce((resolvedInSchema, pathPart) => resolvedInSchema === null || resolvedInSchema === void 0 ? void 0 : resolvedInSchema[pathPart], schema);
|
|
121
|
+
if (schemaWithPropToReplace) {
|
|
122
|
+
schemaWithPropToReplace[s.propPath[s.propPath.length - 1]] = { $ref };
|
|
123
|
+
}
|
|
124
|
+
return ref;
|
|
125
|
+
});
|
|
126
|
+
return [...refs, ...recursiveRefs];
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* In order to ensure we generate models consistently whether or not users used refs or inline schemas,
|
|
130
|
+
* we hoist any inline refs to non-primitives
|
|
131
|
+
*/
|
|
132
|
+
const normaliseOpenApiSpecForCodeGen = (inSpec) => {
|
|
133
|
+
var _a, _b, _c, _d;
|
|
134
|
+
// Clone the spec so we're free to mutate it
|
|
135
|
+
let spec = (0, lodash_clonedeepwith_1.default)(inSpec);
|
|
136
|
+
// Ensure spec has schemas set
|
|
137
|
+
if (!((_a = spec === null || spec === void 0 ? void 0 : spec.components) === null || _a === void 0 ? void 0 : _a.schemas)) {
|
|
138
|
+
spec.components = Object.assign({}, spec.components);
|
|
139
|
+
spec.components.schemas = Object.assign({}, spec.components.schemas);
|
|
140
|
+
}
|
|
141
|
+
// "Hoist" inline request and response schemas
|
|
142
|
+
Object.entries((_b = spec.paths) !== null && _b !== void 0 ? _b : {}).forEach(([path, pathOps]) => Object.entries(pathOps !== null && pathOps !== void 0 ? pathOps : {}).forEach(([method, op]) => {
|
|
143
|
+
var _a, _b, _c, _d;
|
|
144
|
+
const operation = (0, refs_1.resolveIfRef)(spec, op);
|
|
145
|
+
if (operation && typeof operation === 'object') {
|
|
146
|
+
if ('responses' in operation) {
|
|
147
|
+
Object.entries((_a = operation.responses) !== null && _a !== void 0 ? _a : {}).forEach(([code, res]) => {
|
|
148
|
+
var _a, _b, _c;
|
|
149
|
+
const response = (0, refs_1.resolveIfRef)(spec, res);
|
|
150
|
+
const jsonResponseSchema = (_b = (_a = response === null || response === void 0 ? void 0 : response.content) === null || _a === void 0 ? void 0 : _a['application/json']) === null || _b === void 0 ? void 0 : _b.schema;
|
|
151
|
+
if (jsonResponseSchema &&
|
|
152
|
+
!(0, refs_1.isRef)(jsonResponseSchema) &&
|
|
153
|
+
['object', 'array'].includes(jsonResponseSchema.type)) {
|
|
154
|
+
const schemaName = `${(0, names_1.pascalCase)((_c = operation.operationId) !== null && _c !== void 0 ? _c : `${method}-${path}`)}${code}Response`;
|
|
155
|
+
spec.components.schemas[schemaName] = jsonResponseSchema;
|
|
156
|
+
response.content['application/json'].schema = {
|
|
157
|
+
$ref: `#/components/schemas/${schemaName}`,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
if ('requestBody' in operation) {
|
|
163
|
+
const requestBody = (0, refs_1.resolveIfRef)(spec, operation.requestBody);
|
|
164
|
+
const jsonRequestSchema = (_c = (_b = requestBody === null || requestBody === void 0 ? void 0 : requestBody.content) === null || _b === void 0 ? void 0 : _b['application/json']) === null || _c === void 0 ? void 0 : _c.schema;
|
|
165
|
+
if (jsonRequestSchema &&
|
|
166
|
+
!(0, refs_1.isRef)(jsonRequestSchema) &&
|
|
167
|
+
['object', 'array'].includes(jsonRequestSchema.type)) {
|
|
168
|
+
const schemaName = `${(0, names_1.pascalCase)((_d = operation.operationId) !== null && _d !== void 0 ? _d : `${method}-${path}`)}RequestContent`;
|
|
169
|
+
spec.components.schemas[schemaName] = jsonRequestSchema;
|
|
170
|
+
requestBody.content['application/json'].schema = {
|
|
171
|
+
$ref: `#/components/schemas/${schemaName}`,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
// "Hoist" any nested object definitions in arrays/maps that aren't already refs, as parseOpenapi will treat the
|
|
178
|
+
// type as "any" if they're defined inline (and not a ref)
|
|
179
|
+
Object.entries((_d = (_c = spec.components) === null || _c === void 0 ? void 0 : _c.schemas) !== null && _d !== void 0 ? _d : {}).forEach(([name, schema]) => {
|
|
180
|
+
if (!(0, refs_1.isRef)(schema)) {
|
|
181
|
+
const refs = hoistInlineObjectSubSchemas([name], schema);
|
|
182
|
+
refs.forEach((ref) => {
|
|
183
|
+
spec.components.schemas[ref.name] = ref.schema;
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
// "Inline" any refs to non objects/enums
|
|
188
|
+
const inlinedRefs = new Set();
|
|
189
|
+
spec = (0, lodash_clonedeepwith_1.default)(spec, (v) => {
|
|
190
|
+
if (v && typeof v === 'object' && v.$ref) {
|
|
191
|
+
const resolved = (0, refs_1.resolveRef)(spec, v.$ref);
|
|
192
|
+
if (resolved &&
|
|
193
|
+
resolved.type &&
|
|
194
|
+
resolved.type !== 'object' &&
|
|
195
|
+
!(resolved.type === 'string' && resolved.enum)) {
|
|
196
|
+
inlinedRefs.add(v.$ref);
|
|
197
|
+
return resolved;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
// Delete the non object schemas that were inlined
|
|
202
|
+
[...inlinedRefs].forEach((ref) => {
|
|
203
|
+
const parts = (0, refs_1.splitRef)(ref);
|
|
204
|
+
if (parts.length === 3 &&
|
|
205
|
+
parts[0] === 'components' &&
|
|
206
|
+
parts[1] === 'schemas') {
|
|
207
|
+
delete spec.components.schemas[parts[2]];
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
return spec;
|
|
211
|
+
};
|
|
212
|
+
exports.normaliseOpenApiSpecForCodeGen = normaliseOpenApiSpecForCodeGen;
|
|
213
|
+
//# sourceMappingURL=normalise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalise.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/open-api/utils/normalise.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 { Spec } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Parse an OpenAPI specification given its path within the tree
|
|
9
|
+
*/
|
|
10
|
+
export declare const parseOpenApiSpec: (tree: Tree, specPath: string) => Promise<Spec>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseOpenApiSpec = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const swagger_parser_1 = tslib_1.__importDefault(require("@apidevtools/swagger-parser"));
|
|
6
|
+
const TREE_PROTOCOL_PREFIX = 'workspace://';
|
|
7
|
+
/**
|
|
8
|
+
* Parse an OpenAPI specification given its path within the tree
|
|
9
|
+
*/
|
|
10
|
+
const parseOpenApiSpec = (tree, specPath) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
11
|
+
// Use a custom protocol prefix to ensure that the swagger parser doesn't try and read from the filesystem itself
|
|
12
|
+
const spec = yield swagger_parser_1.default.bundle(`${TREE_PROTOCOL_PREFIX}/${specPath}`, {
|
|
13
|
+
resolve: {
|
|
14
|
+
// Use a custom resolver which reads files from the tree rather than directly from the filesystem
|
|
15
|
+
file: {
|
|
16
|
+
order: 1,
|
|
17
|
+
read: (file) => {
|
|
18
|
+
const path = file.url.slice(TREE_PROTOCOL_PREFIX.length);
|
|
19
|
+
if (!tree.exists(path)) {
|
|
20
|
+
const message = `Unable to find ${specPath} in workspace ${tree.root}`;
|
|
21
|
+
// Write an error to console as swagger parser's error message may be confusing with our custom protocol prefix
|
|
22
|
+
console.error(message);
|
|
23
|
+
throw new Error(message);
|
|
24
|
+
}
|
|
25
|
+
return tree.read(path);
|
|
26
|
+
},
|
|
27
|
+
canRead: (file) => file.url.startsWith(TREE_PROTOCOL_PREFIX),
|
|
28
|
+
},
|
|
29
|
+
http: false,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
if ('swagger' in spec) {
|
|
33
|
+
throw new Error(`OpenAPI v2 specifications are not supported. Please use OpenAPI v3`);
|
|
34
|
+
}
|
|
35
|
+
return spec;
|
|
36
|
+
});
|
|
37
|
+
exports.parseOpenApiSpec = parseOpenApiSpec;
|
|
38
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/open-api/utils/parse.ts"],"names":[],"mappings":";;;;AAKA,yFAAwD;AAGxD,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAE5C;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAC9B,IAAU,EACV,QAAgB,EACD,EAAE;IACjB,iHAAiH;IACjH,MAAM,IAAI,GAAG,MAAM,wBAAa,CAAC,MAAM,CACrC,GAAG,oBAAoB,IAAI,QAAQ,EAAE,EACrC;QACE,OAAO,EAAE;YACP,iGAAiG;YACjG,IAAI,EAAE;gBACJ,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvB,MAAM,OAAO,GAAG,kBAAkB,QAAQ,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC;wBAEvE,+GAA+G;wBAC/G,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACvB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3B,CAAC;oBACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;gBACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC;aAC7D;YACD,IAAI,EAAE,KAAK;SACZ;KACF,CACF,CAAC;IAEF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA,CAAC;AApCW,QAAA,gBAAgB,oBAoC3B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
6
|
+
import { Spec } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Return whether or not the given OpenAPI object is a reference
|
|
9
|
+
*/
|
|
10
|
+
export declare const isRef: (obj: unknown) => obj is OpenAPIV3.ReferenceObject;
|
|
11
|
+
/**
|
|
12
|
+
* Split a reference into its component parts
|
|
13
|
+
* eg: #/components/schemas/Foo -> ["components", "schemas", "Foo"]
|
|
14
|
+
*/
|
|
15
|
+
export declare const splitRef: (ref: string) => string[];
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the given reference in the spec
|
|
18
|
+
*/
|
|
19
|
+
export declare const resolveRef: (spec: Spec, ref: string) => any;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the given object in an openapi spec if it's a ref
|
|
22
|
+
*/
|
|
23
|
+
export declare const resolveIfRef: <T>(spec: Spec, possibleRef: T | OpenAPIV3.ReferenceObject) => T;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveIfRef = exports.resolveRef = exports.splitRef = exports.isRef = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Return whether or not the given OpenAPI object is a reference
|
|
6
|
+
*/
|
|
7
|
+
const isRef = (obj) => !!obj && typeof obj === 'object' && '$ref' in obj;
|
|
8
|
+
exports.isRef = isRef;
|
|
9
|
+
/**
|
|
10
|
+
* Split a reference into its component parts
|
|
11
|
+
* eg: #/components/schemas/Foo -> ["components", "schemas", "Foo"]
|
|
12
|
+
*/
|
|
13
|
+
const splitRef = (ref) => ref
|
|
14
|
+
.slice(2)
|
|
15
|
+
.split('/')
|
|
16
|
+
.map((p) => p.replace(/~0/g, '~').replace(/~1/g, '/'));
|
|
17
|
+
exports.splitRef = splitRef;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the given reference in the spec
|
|
20
|
+
*/
|
|
21
|
+
const resolveRef = (spec, ref) => {
|
|
22
|
+
const refParts = (0, exports.splitRef)(ref);
|
|
23
|
+
const resolved = refParts.reduce((resolvedInSpec, refPart) => resolvedInSpec === null || resolvedInSpec === void 0 ? void 0 : resolvedInSpec[refPart], spec);
|
|
24
|
+
if (!resolved) {
|
|
25
|
+
throw new Error(`Unable to resolve ref ${ref} in spec`);
|
|
26
|
+
}
|
|
27
|
+
return resolved;
|
|
28
|
+
};
|
|
29
|
+
exports.resolveRef = resolveRef;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the given object in an openapi spec if it's a ref
|
|
32
|
+
*/
|
|
33
|
+
const resolveIfRef = (spec, possibleRef) => {
|
|
34
|
+
let resolved = possibleRef;
|
|
35
|
+
if ((0, exports.isRef)(possibleRef)) {
|
|
36
|
+
resolved = (0, exports.resolveRef)(spec, possibleRef.$ref);
|
|
37
|
+
}
|
|
38
|
+
return resolved;
|
|
39
|
+
};
|
|
40
|
+
exports.resolveIfRef = resolveIfRef;
|
|
41
|
+
//# sourceMappingURL=refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/open-api/utils/refs.ts"],"names":[],"mappings":";;;AAOA;;GAEG;AACI,MAAM,KAAK,GAAG,CAAC,GAAY,EAAoC,EAAE,CACtE,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC;AADvC,QAAA,KAAK,SACkC;AAEpD;;;GAGG;AACI,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAY,EAAE,CAChD,GAAG;KACA,KAAK,CAAC,CAAC,CAAC;KACR,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAJ9C,QAAA,QAAQ,YAIsC;AAE3D;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,GAAW,EAAO,EAAE;IACzD,MAAM,QAAQ,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,OAAO,CAAC,EACtD,IAAI,CACL,CAAC;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEF;;GAEG;AACI,MAAM,YAAY,GAAG,CAC1B,IAAU,EACV,WAA0C,EACvC,EAAE;IACL,IAAI,QAAQ,GAAG,WAAW,CAAC;IAC3B,IAAI,IAAA,aAAK,EAAC,WAAW,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAA,kBAAU,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAa,CAAC;AACvB,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/open-api/utils/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`fastapi project generator > should match snapshot > main-snapshot 1`] = `
|
|
4
|
+
{
|
|
5
|
+
"apps/test_api/test_api/__init__.py": """"Automatically generated by Nx."""
|
|
6
|
+
",
|
|
7
|
+
"apps/test_api/test_api/main.py": "from fastapi import FastAPI
|
|
8
|
+
from mangum import Mangum
|
|
9
|
+
|
|
10
|
+
app = FastAPI(
|
|
11
|
+
title="TestApi"
|
|
12
|
+
)
|
|
13
|
+
handler = Mangum(app)
|
|
14
|
+
|
|
15
|
+
@app.get("/")
|
|
16
|
+
def read_root():
|
|
17
|
+
return {"Hello": "World"}",
|
|
18
|
+
"apps/test_api/tests/__init__.py": """"unit tests."""
|
|
19
|
+
",
|
|
20
|
+
"apps/test_api/tests/conftest.py": """"Unit tests configuration module."""
|
|
21
|
+
|
|
22
|
+
pytest_plugins = []
|
|
23
|
+
",
|
|
24
|
+
"apps/test_api/tests/test_main.py": "#
|
|
25
|
+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
26
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
27
|
+
#
|
|
28
|
+
|
|
29
|
+
def test_main():
|
|
30
|
+
pass
|
|
31
|
+
",
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
@@ -48,7 +48,7 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
|
|
|
48
48
|
options: {
|
|
49
49
|
commands: [
|
|
50
50
|
`uv export --frozen --no-dev --no-editable --project ${normalizedName} -o dist/${dir}/bundle/requirements.txt`,
|
|
51
|
-
`uv pip install --no-installer-metadata --no-compile-bytecode --python-platform x86_64-manylinux2014 --python \`uv python pin\` --target dist/${dir}/bundle -r dist/${dir}/bundle/requirements.txt
|
|
51
|
+
`uv pip install -n --no-installer-metadata --no-compile-bytecode --python-platform x86_64-manylinux2014 --python \`uv python pin\` --target dist/${dir}/bundle -r dist/${dir}/bundle/requirements.txt`,
|
|
52
52
|
],
|
|
53
53
|
parallel: false,
|
|
54
54
|
},
|
|
@@ -69,7 +69,7 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
|
|
|
69
69
|
apiName: schema.name,
|
|
70
70
|
apiType: 'fast-api',
|
|
71
71
|
};
|
|
72
|
-
projectConfig.targets = (0, nx_1.
|
|
72
|
+
projectConfig.targets = (0, nx_1.sortObjectKeys)(projectConfig.targets);
|
|
73
73
|
(0, devkit_1.updateProjectConfiguration)(tree, normalizedName, projectConfig);
|
|
74
74
|
[
|
|
75
75
|
(0, devkit_1.joinPathFragments)(dir, normalizedModuleName !== null && normalizedModuleName !== void 0 ? normalizedModuleName : normalizedName, 'hello.py'),
|
|
@@ -80,6 +80,7 @@ const fastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void
|
|
|
80
80
|
dir, // destination path of the files
|
|
81
81
|
{
|
|
82
82
|
name: normalizedName,
|
|
83
|
+
apiNameClassName,
|
|
83
84
|
}, {
|
|
84
85
|
overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
|
|
85
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAWoB;AAEpB,oEAAmE;AACnE,oEAAiE;AACjE,0EAA+E;AAC/E,sCAA+C;AAE/C,qEAIuC;AACvC,6CAA0E;AAC1E,yCAAgD;AAChD,+CAA0D;AAC1D,mDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
92
92
|
outputPath,
|
|
93
93
|
},
|
|
94
94
|
};
|
|
95
|
-
projectConfiguration.targets = (0, nx_1.
|
|
95
|
+
projectConfiguration.targets = (0, nx_1.sortObjectKeys)(projectConfiguration.targets);
|
|
96
96
|
(0, devkit_1.updateProjectConfiguration)(tree, normalizedName, projectConfiguration);
|
|
97
97
|
return () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
98
98
|
yield new provider_1.UVProvider(tree.root, new logger_1.Logger(), tree).install();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,qHAAwG;AACxG,yGAAkF;AAClF,oEAAmE;AACnE,oEAAiE;AACjE,mDAAoD;AACpD,qDAAoD;AACpD,6CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,8 @@ import {
|
|
|
67
67
|
IMiddlewareContext,
|
|
68
68
|
} from './middleware/index.js';
|
|
69
69
|
|
|
70
|
+
process.env.POWERTOOLS_SERVICE_NAME = 'TestApi';
|
|
71
|
+
|
|
70
72
|
export type Context = IMiddlewareContext;
|
|
71
73
|
|
|
72
74
|
export const t = initTRPC.context<Context>().create();
|
|
@@ -337,7 +339,7 @@ import {
|
|
|
337
339
|
IHttpRouteAuthorizer,
|
|
338
340
|
} from 'aws-cdk-lib/aws-apigatewayv2';
|
|
339
341
|
import { HttpLambdaIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
|
|
340
|
-
import { Code, Function, Runtime } from 'aws-cdk-lib/aws-lambda';
|
|
342
|
+
import { Code, Function, Runtime, Tracing } from 'aws-cdk-lib/aws-lambda';
|
|
341
343
|
import { Effect, IRole, PolicyStatement } from 'aws-cdk-lib/aws-iam';
|
|
342
344
|
import { RuntimeConfig } from './runtime-config.js';
|
|
343
345
|
|
|
@@ -352,15 +354,17 @@ export interface HttpApiProps {
|
|
|
352
354
|
|
|
353
355
|
export class HttpApi extends Construct {
|
|
354
356
|
public readonly api: _HttpApi;
|
|
357
|
+
public readonly routerFunction: Function;
|
|
355
358
|
|
|
356
359
|
constructor(scope: Construct, id: string, props: HttpApiProps) {
|
|
357
360
|
super(scope, id);
|
|
358
361
|
|
|
359
|
-
|
|
362
|
+
this.routerFunction = new Function(this, \`\${id}Handler\`, {
|
|
360
363
|
timeout: Duration.seconds(30),
|
|
361
364
|
runtime: props.runtime,
|
|
362
365
|
handler: props.handler,
|
|
363
366
|
code: Code.fromAsset(props.handlerFilePath),
|
|
367
|
+
tracing: Tracing.ACTIVE,
|
|
364
368
|
environment: {
|
|
365
369
|
AWS_CONNECTION_REUSE_ENABLED: '1',
|
|
366
370
|
},
|
|
@@ -393,7 +397,7 @@ export class HttpApi extends Construct {
|
|
|
393
397
|
],
|
|
394
398
|
integration: new HttpLambdaIntegration(
|
|
395
399
|
'RouterIntegration',
|
|
396
|
-
routerFunction,
|
|
400
|
+
this.routerFunction,
|
|
397
401
|
),
|
|
398
402
|
});
|
|
399
403
|
|
|
@@ -70,14 +70,28 @@ function trpcBackendGenerator(tree, options) {
|
|
|
70
70
|
executor: 'nx:run-commands',
|
|
71
71
|
outputs: [`{workspaceRoot}/dist/${backendRoot}/bundle`],
|
|
72
72
|
options: {
|
|
73
|
-
command: `esbuild ${backendRoot}/src/
|
|
74
|
-
}
|
|
73
|
+
command: `esbuild ${backendRoot}/src/router.ts --bundle --outfile=dist/${backendRoot}/bundle/index.js --platform=node --format=cjs`,
|
|
74
|
+
},
|
|
75
75
|
};
|
|
76
76
|
config.targets.build.dependsOn = [
|
|
77
77
|
...((_a = config.targets.build.dependsOn) !== null && _a !== void 0 ? _a : []),
|
|
78
78
|
'bundle',
|
|
79
79
|
];
|
|
80
|
-
config.targets = (0, nx_1.
|
|
80
|
+
config.targets = (0, nx_1.sortObjectKeys)(config.targets);
|
|
81
|
+
return config;
|
|
82
|
+
});
|
|
83
|
+
(0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_1.PACKAGES_DIR, shared_constructs_1.SHARED_CONSTRUCTS_DIR, 'project.json'), (config) => {
|
|
84
|
+
var _a;
|
|
85
|
+
if (!config.targets) {
|
|
86
|
+
config.targets = {};
|
|
87
|
+
}
|
|
88
|
+
if (!config.targets.build) {
|
|
89
|
+
config.targets.build = {};
|
|
90
|
+
}
|
|
91
|
+
config.targets.build.dependsOn = [
|
|
92
|
+
...((_a = config.targets.build.dependsOn) !== null && _a !== void 0 ? _a : []),
|
|
93
|
+
`${backendProjectName}:build`,
|
|
94
|
+
];
|
|
81
95
|
return config;
|
|
82
96
|
});
|
|
83
97
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'backend'), backendRoot, enhancedOptions, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":";;AA8BA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":"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"}
|
package/src/ts/lib/generator.js
CHANGED
|
@@ -65,8 +65,7 @@ const tsLibGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, void
|
|
|
65
65
|
},
|
|
66
66
|
};
|
|
67
67
|
delete targets['lint'];
|
|
68
|
-
projectConfiguration.targets = (0, nx_1.
|
|
69
|
-
;
|
|
68
|
+
projectConfiguration.targets = (0, nx_1.sortObjectKeys)(targets);
|
|
70
69
|
(0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, projectConfiguration);
|
|
71
70
|
(0, devkit_1.updateJson)(tree, 'nx.json', (nxJson) => {
|
|
72
71
|
nxJson.plugins = nxJson.plugins.map((p) => {
|