@cdktn/provider-generator 0.25.0-pre.6 → 0.25.0-pre.61
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/README.md +12 -0
- package/build/__tests__/edge-provider-schema/builder.js +3 -3
- package/build/__tests__/edge-provider-schema/cli.js +18 -8
- package/build/__tests__/edge-provider-schema.test.js +18 -8
- package/build/__tests__/provider.test.js +44 -16
- package/build/get/__tests__/constructs-maker.test.js +91 -8
- package/build/get/__tests__/generator/complex-computed-types.test.js +18 -8
- package/build/get/__tests__/generator/deep-nested-attributes.test.js +18 -8
- package/build/get/__tests__/generator/description-escaping.test.js +18 -8
- package/build/get/__tests__/generator/empty-provider-resources.test.js +18 -8
- package/build/get/__tests__/generator/ephemeral-resources.test.js +18 -8
- package/build/get/__tests__/generator/export-sharding.test.js +18 -8
- package/build/get/__tests__/generator/import-style.test.js +18 -8
- package/build/get/__tests__/generator/module-generator.test.js +18 -8
- package/build/get/__tests__/generator/nested-types.test.js +18 -8
- package/build/get/__tests__/generator/provider-functions-name-collision.test.d.ts +2 -0
- package/build/get/__tests__/generator/provider-functions-name-collision.test.js +89 -0
- package/build/get/__tests__/generator/provider-functions.test.js +18 -8
- package/build/get/__tests__/generator/provider.test.js +18 -8
- package/build/get/__tests__/generator/resource-types.test.js +18 -8
- package/build/get/__tests__/generator/skipped-attributes.test.js +18 -8
- package/build/get/__tests__/generator/types.test.js +18 -8
- package/build/get/__tests__/generator/versions-file.test.js +25 -10
- package/build/get/__tests__/generator/write-only.test.js +18 -8
- package/build/get/__tests__/target-versions.test.js +18 -8
- package/build/get/__tests__/util.js +20 -11
- package/build/get/constructs-maker.d.ts +17 -0
- package/build/get/constructs-maker.js +68 -10
- package/build/get/generator/emitter/struct-emitter.js +20 -10
- package/build/get/generator/loop-detection.js +2 -3
- package/build/get/generator/models/attribute-model.js +3 -3
- package/build/get/generator/models/attribute-type-model.js +3 -3
- package/build/get/generator/models/provider-function-model.js +3 -4
- package/build/get/generator/models/resource-model.d.ts +5 -1
- package/build/get/generator/models/resource-model.js +20 -10
- package/build/get/generator/models/supported-stored-classes.js +2 -3
- package/build/get/generator/provider-generator.d.ts +15 -1
- package/build/get/generator/provider-generator.js +20 -5
- package/build/get/generator/resource-parser.d.ts +3 -1
- package/build/get/generator/resource-parser.js +16 -7
- package/build/get/generator/sanitized-comments.js +2 -3
- package/build/get/generator/skipped-attributes.js +2 -3
- package/build/index.js +3 -3
- package/build/util.js +3 -4
- package/package.json +36 -13
- package/src/__tests__/__snapshots__/provider.test.ts.snap +1309 -3206
- package/src/__tests__/provider.test.ts +31 -8
- package/src/get/__tests__/constructs-maker.test.ts +125 -1
- package/src/get/__tests__/generator/fixtures/provider-functions-name-collision.test.fixture.json +42 -0
- package/src/get/__tests__/generator/provider-functions-name-collision.test.ts +84 -0
- package/src/get/__tests__/generator/versions-file.test.ts +10 -5
- package/src/get/constructs-maker.ts +65 -0
- package/src/get/generator/emitter/struct-emitter.ts +2 -2
- package/src/get/generator/models/attribute-type-model.ts +1 -2
- package/src/get/generator/models/resource-model.ts +32 -9
- package/src/get/generator/provider-generator.ts +27 -4
- package/src/get/generator/resource-parser.ts +21 -3
- package/tsconfig.json +4 -0
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
isAttributeNestedType,
|
|
12
12
|
isNestedTypeAttribute,
|
|
13
13
|
Schema,
|
|
14
|
+
TerraformTargetVersions,
|
|
14
15
|
} from "@cdktn/commons";
|
|
15
16
|
import { ProviderName, FQPN, parseFQPN } from "@cdktn/provider-schema";
|
|
16
17
|
import {
|
|
@@ -82,8 +83,17 @@ export function sanitizeClassOrNamespaceName(
|
|
|
82
83
|
isProvider = false,
|
|
83
84
|
) {
|
|
84
85
|
const resourceIsNamedProvider = !isProvider && baseName === "provider";
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
// A resource named `<provider>_provider_functions` maps to the same
|
|
87
|
+
// providers/<provider>/provider-functions/ directory that the provider's
|
|
88
|
+
// functions submodule is emitted to, and would silently overwrite it.
|
|
89
|
+
const resourceIsNamedProviderFunctions =
|
|
90
|
+
!isProvider && baseName === "provider_functions";
|
|
91
|
+
|
|
92
|
+
if (
|
|
93
|
+
isReservedClassOrNamespaceName(baseName) ||
|
|
94
|
+
resourceIsNamedProvider ||
|
|
95
|
+
resourceIsNamedProviderFunctions
|
|
96
|
+
) {
|
|
87
97
|
return `${baseName}_resource`;
|
|
88
98
|
} else {
|
|
89
99
|
return baseName;
|
|
@@ -114,6 +124,7 @@ class Parser {
|
|
|
114
124
|
constructor(
|
|
115
125
|
private classNames: string[],
|
|
116
126
|
private usedBaseNames: Map<string, string>,
|
|
127
|
+
private targetVersions?: TerraformTargetVersions,
|
|
117
128
|
) {}
|
|
118
129
|
|
|
119
130
|
private uniqueClassName(className: string): string {
|
|
@@ -285,6 +296,7 @@ class Parser {
|
|
|
285
296
|
terraformSchemaType,
|
|
286
297
|
structs: this.structs,
|
|
287
298
|
configStructName,
|
|
299
|
+
targetVersions: this.targetVersions,
|
|
288
300
|
});
|
|
289
301
|
|
|
290
302
|
return resourceModel;
|
|
@@ -718,6 +730,8 @@ export class ResourceParser {
|
|
|
718
730
|
private uniqueBaseNames: Map<string, string> = new Map();
|
|
719
731
|
private resources: Record<string, ResourceModel> = {};
|
|
720
732
|
|
|
733
|
+
constructor(private readonly targetVersions?: TerraformTargetVersions) {}
|
|
734
|
+
|
|
721
735
|
public parse(
|
|
722
736
|
fqpn: FQPN,
|
|
723
737
|
type: string,
|
|
@@ -729,7 +743,11 @@ export class ResourceParser {
|
|
|
729
743
|
return this.resources[type];
|
|
730
744
|
}
|
|
731
745
|
|
|
732
|
-
const parser = new Parser(
|
|
746
|
+
const parser = new Parser(
|
|
747
|
+
this.uniqueClassnames,
|
|
748
|
+
this.uniqueBaseNames,
|
|
749
|
+
this.targetVersions,
|
|
750
|
+
);
|
|
733
751
|
const resource = parser.resourceFrom(
|
|
734
752
|
fqpn,
|
|
735
753
|
type,
|