@cdktn/hcl2cdk 0.21.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/README.md +95 -0
- package/ambient.d.ts +14 -0
- package/jest.config.js +16 -0
- package/lib/__tests__/coerceType.test.d.ts +2 -0
- package/lib/__tests__/coerceType.test.js +165 -0
- package/lib/__tests__/expressionToTs.test.d.ts +6 -0
- package/lib/__tests__/expressionToTs.test.js +693 -0
- package/lib/__tests__/expressions.test.d.ts +4 -0
- package/lib/__tests__/expressions.test.js +415 -0
- package/lib/__tests__/findExpressionType.test.d.ts +6 -0
- package/lib/__tests__/findExpressionType.test.js +105 -0
- package/lib/__tests__/functions.test.d.ts +6 -0
- package/lib/__tests__/functions.test.js +605 -0
- package/lib/__tests__/generation.test.d.ts +6 -0
- package/lib/__tests__/generation.test.js +45 -0
- package/lib/__tests__/jsii-rosetta-workarounds.test.d.ts +2 -0
- package/lib/__tests__/jsii-rosetta-workarounds.test.js +86 -0
- package/lib/__tests__/partialCode.test.d.ts +6 -0
- package/lib/__tests__/partialCode.test.js +390 -0
- package/lib/__tests__/terraformSchema.test.d.ts +6 -0
- package/lib/__tests__/terraformSchema.test.js +105 -0
- package/lib/__tests__/testHelpers.d.ts +7 -0
- package/lib/__tests__/testHelpers.js +16 -0
- package/lib/coerceType.d.ts +7 -0
- package/lib/coerceType.js +240 -0
- package/lib/dynamic-blocks.d.ts +8 -0
- package/lib/dynamic-blocks.js +44 -0
- package/lib/expressions.d.ts +9 -0
- package/lib/expressions.js +634 -0
- package/lib/function-bindings/functions.d.ts +31 -0
- package/lib/function-bindings/functions.generated.d.ts +806 -0
- package/lib/function-bindings/functions.generated.js +1142 -0
- package/lib/function-bindings/functions.js +73 -0
- package/lib/generation.d.ts +26 -0
- package/lib/generation.js +676 -0
- package/lib/index.d.ts +136 -0
- package/lib/index.js +364 -0
- package/lib/iteration.d.ts +23 -0
- package/lib/iteration.js +87 -0
- package/lib/jsii-rosetta-workarounds.d.ts +5 -0
- package/lib/jsii-rosetta-workarounds.js +126 -0
- package/lib/partialCode.d.ts +11 -0
- package/lib/partialCode.js +116 -0
- package/lib/provider.d.ts +8 -0
- package/lib/provider.js +40 -0
- package/lib/references.d.ts +11 -0
- package/lib/references.js +141 -0
- package/lib/schema.d.ts +297 -0
- package/lib/schema.js +81 -0
- package/lib/telemetryAllowList.json +24 -0
- package/lib/terraformSchema.d.ts +6 -0
- package/lib/terraformSchema.js +136 -0
- package/lib/types.d.ts +50 -0
- package/lib/types.js +3 -0
- package/lib/utils.d.ts +6 -0
- package/lib/utils.js +25 -0
- package/lib/variables.d.ts +10 -0
- package/lib/variables.js +172 -0
- package/package.json +71 -0
- package/package.sh +9 -0
- package/tsconfig.json +42 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDesiredType = exports.isMapAttribute = exports.getTypeAtPath = void 0;
|
|
4
|
+
const provider_1 = require("./provider");
|
|
5
|
+
function getResourceAtPath(schema, path) {
|
|
6
|
+
var _a;
|
|
7
|
+
const parts = path.split(".");
|
|
8
|
+
if (parts.length < 2) {
|
|
9
|
+
// Too short to be a valid path
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const isDataSource = parts[0] === "data";
|
|
13
|
+
if (isDataSource) {
|
|
14
|
+
parts.shift();
|
|
15
|
+
}
|
|
16
|
+
const providerName = parts.shift();
|
|
17
|
+
const resourceName = parts.shift();
|
|
18
|
+
const fullProviderName = (0, provider_1.getFullProviderName)(schema, providerName);
|
|
19
|
+
// Hack: In the case of 'external', the name of the data source 'external' doesn't have a prefix
|
|
20
|
+
// so we repeat the name as both provider prefix and the data source name
|
|
21
|
+
const fullResourceName = providerName === resourceName
|
|
22
|
+
? providerName
|
|
23
|
+
: `${providerName}_${resourceName}`;
|
|
24
|
+
if (!fullProviderName) {
|
|
25
|
+
// No provider found with that name
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const provider = (_a = schema.provider_schemas) === null || _a === void 0 ? void 0 : _a[fullProviderName];
|
|
29
|
+
if (!provider) {
|
|
30
|
+
// Could not find provider
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (resourceName.endsWith("Provider")) {
|
|
34
|
+
// This is a provider
|
|
35
|
+
return { resource: provider.provider, parts };
|
|
36
|
+
}
|
|
37
|
+
const resources = isDataSource
|
|
38
|
+
? provider.data_source_schemas
|
|
39
|
+
: provider.resource_schemas;
|
|
40
|
+
const resource = resources[fullResourceName];
|
|
41
|
+
if (!resource) {
|
|
42
|
+
// Could not find resource
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return { resource, parts };
|
|
46
|
+
}
|
|
47
|
+
function findType(item, parts) {
|
|
48
|
+
if (!parts.length) {
|
|
49
|
+
return item;
|
|
50
|
+
}
|
|
51
|
+
const [currentPart, ...otherParts] = parts;
|
|
52
|
+
// Promitive attributes can be returned directly
|
|
53
|
+
if (typeof item === "string") {
|
|
54
|
+
return item;
|
|
55
|
+
}
|
|
56
|
+
// Complex attributes
|
|
57
|
+
if (Array.isArray(item)) {
|
|
58
|
+
if (item[0] === "set" || item[0] === "list") {
|
|
59
|
+
if (currentPart === "[]") {
|
|
60
|
+
return findType(item[1], otherParts);
|
|
61
|
+
}
|
|
62
|
+
// Trying to access a property on a list
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
if (item[0] === "object") {
|
|
66
|
+
if (currentPart === "[]") {
|
|
67
|
+
// Trying to access a property on a list
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return findType(item[1][currentPart], otherParts);
|
|
71
|
+
}
|
|
72
|
+
if (item[0] === "map") {
|
|
73
|
+
// We don't care what the key is
|
|
74
|
+
return findType(item[1], otherParts);
|
|
75
|
+
}
|
|
76
|
+
// Unknown type
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
// If we are not in an attribute, we can ignore the [] (since max_item=1 parts don't have [], so we just ignore it)
|
|
80
|
+
if (currentPart === "[]") {
|
|
81
|
+
return findType(item, otherParts);
|
|
82
|
+
}
|
|
83
|
+
// Block
|
|
84
|
+
if (item.block) {
|
|
85
|
+
// Find block type in block
|
|
86
|
+
if (item.block.block_types) {
|
|
87
|
+
const blockType = item.block.block_types[currentPart];
|
|
88
|
+
if (blockType) {
|
|
89
|
+
return findType(blockType, otherParts);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Find attribute in block
|
|
93
|
+
if (item.block.attributes) {
|
|
94
|
+
const attribute = item.block.attributes[currentPart];
|
|
95
|
+
if (attribute && attribute.type) {
|
|
96
|
+
return findType(attribute.type, otherParts);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Could not find the type
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
function getTypeAtPath(schema, path) {
|
|
104
|
+
const resourceSchema = getResourceAtPath(schema, path);
|
|
105
|
+
if (!resourceSchema) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const { resource, parts } = resourceSchema;
|
|
109
|
+
return findType(resource, parts);
|
|
110
|
+
}
|
|
111
|
+
exports.getTypeAtPath = getTypeAtPath;
|
|
112
|
+
const isMapAttribute = (attribute) => (Array.isArray(attribute) ? attribute[0] === "map" : false);
|
|
113
|
+
exports.isMapAttribute = isMapAttribute;
|
|
114
|
+
function getDesiredType(scope, path) {
|
|
115
|
+
const attributeOrBlockType = getTypeAtPath(scope.providerSchema, path);
|
|
116
|
+
// Attribute type is not defined
|
|
117
|
+
if (!attributeOrBlockType) {
|
|
118
|
+
return "dynamic";
|
|
119
|
+
}
|
|
120
|
+
// Primitive attribute type
|
|
121
|
+
if (typeof attributeOrBlockType === "string") {
|
|
122
|
+
return attributeOrBlockType;
|
|
123
|
+
}
|
|
124
|
+
// Complex attribute type
|
|
125
|
+
if (Array.isArray(attributeOrBlockType)) {
|
|
126
|
+
return attributeOrBlockType;
|
|
127
|
+
}
|
|
128
|
+
// Schema
|
|
129
|
+
if ("version" in attributeOrBlockType) {
|
|
130
|
+
return "dynamic";
|
|
131
|
+
}
|
|
132
|
+
// Block type
|
|
133
|
+
return "dynamic";
|
|
134
|
+
}
|
|
135
|
+
exports.getDesiredType = getDesiredType;
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVycmFmb3JtU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHlDQUFpRDtBQUdqRCxTQUFTLGlCQUFpQixDQUFDLE1BQXNCLEVBQUUsSUFBWTs7SUFDN0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckIsK0JBQStCO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDekMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQVksQ0FBQztJQUM3QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFZLENBQUM7SUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFtQixFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRSxnR0FBZ0c7SUFDaEcseUVBQXlFO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQ3BCLFlBQVksS0FBSyxZQUFZO1FBQzNCLENBQUMsQ0FBQyxZQUFZO1FBQ2QsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXhDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLG1DQUFtQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsMENBQUcsZ0JBQWdCLENBQUMsQ0FBQztJQUU3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFD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LDJCQUEyQjtJQUMzQixJQUFJLE9BQU8sb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0MsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztJQUNULElBQUksU0FBUyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDdEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGFBQWE7SUFDYixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBNUJELHdDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQge1xuICBQcm92aWRlclNjaGVtYSxcbiAgQmxvY2tUeXBlLFxuICBBdHRyaWJ1dGVUeXBlLFxuICBTY2hlbWEsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgZ2V0RnVsbFByb3ZpZGVyTmFtZSB9IGZyb20gXCIuL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5mdW5jdGlvbiBnZXRSZXNvdXJjZUF0UGF0aChzY2hlbWE6IFByb3ZpZGVyU2NoZW1hLCBwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiLlwiKTtcblxuICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xuICAgIC8vIFRvbyBzaG9ydCB0byBiZSBhIHZhbGlkIHBhdGhcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGlzRGF0YVNvdXJjZSA9IHBhcnRzWzBdID09PSBcImRhdGFcIjtcbiAgaWYgKGlzRGF0YVNvdXJjZSkge1xuICAgIHBhcnRzLnNoaWZ0KCk7XG4gIH1cblxuICBjb25zdCBwcm92aWRlck5hbWUgPSBwYXJ0cy5zaGlmdCgpIGFzIHN0cmluZztcbiAgY29uc3QgcmVzb3VyY2VOYW1lID0gcGFydHMuc2hpZnQoKSBhcyBzdHJpbmc7XG5cbiAgY29uc3QgZnVsbFByb3ZpZGVyTmFtZSA9IGdldEZ1bGxQcm92aWRlck5hbWUoc2NoZW1hLCBwcm92aWRlck5hbWUpO1xuICAvLyBIYWNrOiBJbiB0aGUgY2FzZSBvZiAnZXh0ZXJuYWwnLCB0aGUgbmFtZSBvZiB0aGUgZGF0YSBzb3VyY2UgJ2V4dGVybmFsJyBkb2Vzbid0IGhhdmUgYSBwcmVmaXhcbiAgLy8gc28gd2UgcmVwZWF0IHRoZSBuYW1lIGFzIGJvdGggcHJvdmlkZXIgcHJlZml4IGFuZCB0aGUgZGF0YSBzb3VyY2UgbmFtZVxuICBjb25zdCBmdWxsUmVzb3VyY2VOYW1lID1cbiAgICBwcm92aWRlck5hbWUgPT09IHJlc291cmNlTmFtZVxuICAgICAgPyBwcm92aWRlck5hbWVcbiAgICAgIDogYCR7cHJvdmlkZXJOYW1lfV8ke3Jlc291cmNlTmFtZX1gO1xuXG4gIGlmICghZnVsbFByb3ZpZGVyTmFtZSkge1xuICAgIC8vIE5vIHByb3ZpZGVyIGZvdW5kIHdpdGggdGhhdCBuYW1lXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwcm92aWRlciA9IHNjaGVtYS5wcm92aWRlcl9zY2hlbWFzPy5bZnVsbFByb3ZpZGVyTmFtZV07XG5cbiAgaWYgKCFwcm92aWRlcikge1xuICAgIC8vIENvdWxkIG5vdCBmaW5kIHByb3ZpZGVyXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAocmVzb3VyY2VOYW1lLmVuZHNXaXRoKFwiUHJvdmlkZXJcIikpIHtcbiAgICAvLyBUaGlzIGlzIGEgcHJvdmlkZXJcbiAgICByZXR1cm4geyByZXNvdXJjZTogcHJvdmlkZXIucHJvdmlkZXIsIHBhcnRzIH07XG4gIH1cblxuICBjb25zdCByZXNvdXJjZXMgPSBpc0RhdGFTb3VyY2VcbiAgICA/IHByb3ZpZGVyLmRhdGFfc291cmNlX3NjaGVtYXNcbiAgICA6IHByb3ZpZGVyLnJlc291cmNlX3NjaGVtYXM7XG5cbiAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXNbZnVsbFJlc291cmNlTmFtZV07XG4gIGlmICghcmVzb3VyY2UpIHtcbiAgICAvLyBDb3VsZCBub3QgZmluZCByZXNvdXJjZVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgcmVzb3VyY2UsIHBhcnRzIH07XG59XG5cbmZ1bmN0aW9uIGZpbmRUeXBlKFxuICBpdGVtOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlLFxuICBwYXJ0czogc3RyaW5nW10sXG4pOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlIHwgbnVsbCB7XG4gIGlmICghcGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBjb25zdCBbY3VycmVudFBhcnQsIC4uLm90aGVyUGFydHNdID0gcGFydHM7XG5cbiAgLy8gUHJvbWl0aXZlIGF0dHJpYnV0ZXMgY2FuIGJlIHJldHVybmVkIGRpcmVjdGx5XG4gIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLy8gQ29tcGxleCBhdHRyaWJ1dGVzXG4gIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgaWYgKGl0ZW1bMF0gPT09IFwic2V0XCIgfHwgaXRlbVswXSA9PT0gXCJsaXN0XCIpIHtcbiAgICAgIGlmIChjdXJyZW50UGFydCA9PT0gXCJbXVwiKSB7XG4gICAgICAgIHJldHVybiBmaW5kVHlwZShpdGVtWzFdLCBvdGhlclBhcnRzKTtcbiAgICAgIH1cbiAgICAgIC8vIFRyeWluZyB0byBhY2Nlc3MgYSBwcm9wZXJ0eSBvbiBhIGxpc3RcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChpdGVtWzBdID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBpZiAoY3VycmVudFBhcnQgPT09IFwiW11cIikge1xuICAgICAgICAvLyBUcnlpbmcgdG8gYWNjZXNzIGEgcHJvcGVydHkgb24gYSBsaXN0XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmluZFR5cGUoaXRlbVsxXVtjdXJyZW50UGFydF0sIG90aGVyUGFydHMpO1xuICAgIH1cblxuICAgIGlmIChpdGVtWzBdID09PSBcIm1hcFwiKSB7XG4gICAgICAvLyBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIGtleSBpc1xuICAgICAgcmV0dXJuIGZpbmRUeXBlKGl0ZW1bMV0sIG90aGVyUGFydHMpO1xuICAgIH1cblxuICAgIC8vIFVua25vd24gdHlwZVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSWYgd2UgYXJlIG5vdCBpbiBhbiBhdHRyaWJ1dGUsIHdlIGNhbiBpZ25vcmUgdGhlIFtdIChzaW5jZSBtYXhfaXRlbT0xIHBhcnRzIGRvbid0IGhhdmUgW10sIHNvIHdlIGp1c3QgaWdub3JlIGl0KVxuICBpZiAoY3VycmVudFBhcnQgPT09IFwiW11cIikge1xuICAgIHJldHVybiBmaW5kVHlwZShpdGVtLCBvdGhlclBhcnRzKTtcbiAgfVxuXG4gIC8vIEJsb2NrXG4gIGlmIChpdGVtLmJsb2NrKSB7XG4gICAgLy8gRmluZCBibG9jayB0eXBlIGluIGJsb2NrXG4gICAgaWYgKGl0ZW0uYmxvY2suYmxvY2tfdHlwZXMpIHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZSA9IGl0ZW0uYmxvY2suYmxvY2tfdHlwZXNbY3VycmVudFBhcnRdO1xuICAgICAgaWYgKGJsb2NrVHlwZSkge1xuICAgICAgICByZXR1cm4gZmluZFR5cGUoYmxvY2tUeXBlLCBvdGhlclBhcnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5kIGF0dHJpYnV0ZSBpbiBibG9ja1xuICAgIGlmIChpdGVtLmJsb2NrLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGl0ZW0uYmxvY2suYXR0cmlidXRlc1tjdXJyZW50UGFydF07XG4gICAgICBpZiAoYXR0cmlidXRlICYmIGF0dHJpYnV0ZS50eXBlKSB7XG4gICAgICAgIHJldHVybiBmaW5kVHlwZShhdHRyaWJ1dGUudHlwZSwgb3RoZXJQYXJ0cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ291bGQgbm90IGZpbmQgdGhlIHR5cGVcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlQXRQYXRoKFxuICBzY2hlbWE6IFByb3ZpZGVyU2NoZW1hLFxuICBwYXRoOiBzdHJpbmcsXG4pOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlIHwgbnVsbCB7XG4gIGNvbnN0IHJlc291cmNlU2NoZW1hID0gZ2V0UmVzb3VyY2VBdFBhdGgoc2NoZW1hLCBwYXRoKTtcblxuICBpZiAoIXJlc291cmNlU2NoZW1hKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgeyByZXNvdXJjZSwgcGFydHMgfSA9IHJlc291cmNlU2NoZW1hO1xuICByZXR1cm4gZmluZFR5cGUocmVzb3VyY2UsIHBhcnRzKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzTWFwQXR0cmlidXRlID0gKFxuICBhdHRyaWJ1dGU6IFNjaGVtYSB8IEF0dHJpYnV0ZVR5cGUgfCBCbG9ja1R5cGUgfCBudWxsLFxuKSA9PiAoQXJyYXkuaXNBcnJheShhdHRyaWJ1dGUpID8gYXR0cmlidXRlWzBdID09PSBcIm1hcFwiIDogZmFsc2UpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzaXJlZFR5cGUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHBhdGg6IHN0cmluZyxcbik6IEF0dHJpYnV0ZVR5cGUge1xuICBjb25zdCBhdHRyaWJ1dGVPckJsb2NrVHlwZSA9IGdldFR5cGVBdFBhdGgoc2NvcGUucHJvdmlkZXJTY2hlbWEsIHBhdGgpO1xuXG4gIC8vIEF0dHJpYnV0ZSB0eXBlIGlzIG5vdCBkZWZpbmVkXG4gIGlmICghYXR0cmlidXRlT3JCbG9ja1R5cGUpIHtcbiAgICByZXR1cm4gXCJkeW5hbWljXCI7XG4gIH1cblxuICAvLyBQcmltaXRpdmUgYXR0cmlidXRlIHR5cGVcbiAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVPckJsb2NrVHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBhdHRyaWJ1dGVPckJsb2NrVHlwZTtcbiAgfVxuXG4gIC8vIENvbXBsZXggYXR0cmlidXRlIHR5cGVcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXR0cmlidXRlT3JCbG9ja1R5cGUpKSB7XG4gICAgcmV0dXJuIGF0dHJpYnV0ZU9yQmxvY2tUeXBlO1xuICB9XG5cbiAgLy8gU2NoZW1hXG4gIGlmIChcInZlcnNpb25cIiBpbiBhdHRyaWJ1dGVPckJsb2NrVHlwZSkge1xuICAgIHJldHVybiBcImR5bmFtaWNcIjtcbiAgfVxuXG4gIC8vIEJsb2NrIHR5cGVcbiAgcmV0dXJuIFwiZHluYW1pY1wiO1xufVxuIl19
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TerraformProviderGenerator } from "@cdktn/provider-generator";
|
|
2
|
+
import { ProviderSchema } from "@cdktn/commons";
|
|
3
|
+
export type TerraformResourceBlock = unknown;
|
|
4
|
+
export type AttributePath = string;
|
|
5
|
+
export type ProgramScope = {
|
|
6
|
+
providerSchema: ProviderSchema;
|
|
7
|
+
providerGenerator: Record<string, TerraformProviderGenerator>;
|
|
8
|
+
constructs: Set<string>;
|
|
9
|
+
variables: Record<string, {
|
|
10
|
+
resource: string;
|
|
11
|
+
variableName: string;
|
|
12
|
+
}>;
|
|
13
|
+
hasTokenBasedTypeCoercion: boolean;
|
|
14
|
+
nodeIds: string[];
|
|
15
|
+
importables: ImportableConstruct[];
|
|
16
|
+
topLevelConfig: Record<string, AttributePath>;
|
|
17
|
+
};
|
|
18
|
+
export type ResourceScope = ProgramScope & {
|
|
19
|
+
forEachIteratorName?: string;
|
|
20
|
+
countIteratorName?: string;
|
|
21
|
+
withinOverrideExpression?: boolean;
|
|
22
|
+
scopedVariables?: Record<string, string>;
|
|
23
|
+
};
|
|
24
|
+
export type Reference = {
|
|
25
|
+
start: number;
|
|
26
|
+
end: number;
|
|
27
|
+
referencee: {
|
|
28
|
+
id: string;
|
|
29
|
+
full: string;
|
|
30
|
+
};
|
|
31
|
+
useFqn?: boolean;
|
|
32
|
+
isVariable?: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type DynamicBlock = {
|
|
35
|
+
path: string;
|
|
36
|
+
for_each: string;
|
|
37
|
+
content: TerraformResourceBlock;
|
|
38
|
+
scopedVar: string;
|
|
39
|
+
};
|
|
40
|
+
export type IteratorVariableReference = {
|
|
41
|
+
start: number;
|
|
42
|
+
end: number;
|
|
43
|
+
value: string;
|
|
44
|
+
};
|
|
45
|
+
export type ImportableConstruct = {
|
|
46
|
+
provider: string;
|
|
47
|
+
constructName: string;
|
|
48
|
+
namespace?: string;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IFByb3ZpZGVyU2NoZW1hIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmV4cG9ydCB0eXBlIFRlcnJhZm9ybVJlc291cmNlQmxvY2sgPSB1bmtub3duO1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlUGF0aCA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFByb2dyYW1TY29wZSA9IHtcbiAgcHJvdmlkZXJTY2hlbWE6IFByb3ZpZGVyU2NoZW1hO1xuICBwcm92aWRlckdlbmVyYXRvcjogUmVjb3JkPHN0cmluZywgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3I+O1xuICBjb25zdHJ1Y3RzOiBTZXQ8c3RyaW5nPjtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBzdHJpbmc7XG4gICAgICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgICB9XG4gID47XG4gIC8vIFRlbXBvcmFyeSBmbGFnIHRvIGluZGljYXRlIGlmIHdlIG5lZWQgdG8gaW1wb3J0IHRoZSBjZGt0ZiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgdG9rZW4gY2xhc3NcbiAgaGFzVG9rZW5CYXNlZFR5cGVDb2VyY2lvbjogYm9vbGVhbjtcbiAgbm9kZUlkczogc3RyaW5nW107IC8vIHRlbXBvcmFyaWx5IGFkZGVkIHVudGlsIHJlcGxhY2VkXG4gIGltcG9ydGFibGVzOiBJbXBvcnRhYmxlQ29uc3RydWN0W107IC8vIHJlY29yZHMgYWxsIGltcG9ydHMgZm9yIHRoZSBjb252ZXJzaW9uXG4gIHRvcExldmVsQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBBdHRyaWJ1dGVQYXRoPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlU2NvcGUgPSBQcm9ncmFtU2NvcGUgJiB7XG4gIGZvckVhY2hJdGVyYXRvck5hbWU/OiBzdHJpbmc7IC8vIHNldCBpZiBhIGZvcl9lYWNoIGlzIHVzZWQgaW4gdGhpcyByZXNvdXJjZVxuICBjb3VudEl0ZXJhdG9yTmFtZT86IHN0cmluZzsgLy8gc2V0IGlmIGEgY291bnQgaXMgdXNlZCBpbiB0aGlzIHJlc291cmNlXG4gIHdpdGhpbk92ZXJyaWRlRXhwcmVzc2lvbj86IGJvb2xlYW47IC8vIHNldCBpZiB3ZSBhcmUgY3VycmVudGx5IHdpdGhpbiBhbiBvdmVycmlkZSBleHByZXNzaW9uXG4gIHNjb3BlZFZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIHNldCBpZiB3ZSBhcmUgY3VycmVudGx5IHdpdGhpbiBhbiBkeW5hbWljIGJsb2NrIGV4cHJlc3Npb25cbn07XG5cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZSA9IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHJlZmVyZW5jZWU6IHsgaWQ6IHN0cmluZzsgZnVsbDogc3RyaW5nIH07IC8vIGlkZW50aWZpZXIgZm9yIHJlc291cmNlXG4gIHVzZUZxbj86IGJvb2xlYW47XG4gIGlzVmFyaWFibGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Jsb2NrID0ge1xuICBwYXRoOiBzdHJpbmc7XG4gIGZvcl9lYWNoOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IFRlcnJhZm9ybVJlc291cmNlQmxvY2s7XG4gIHNjb3BlZFZhcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSXRlcmF0b3JWYXJpYWJsZVJlZmVyZW5jZSA9IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbXBvcnRhYmxlQ29uc3RydWN0ID0ge1xuICBwcm92aWRlcjogc3RyaW5nO1xuICBjb25zdHJ1Y3ROYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbn07XG4iXX0=
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { logger } from "@cdktn/commons";
|
|
2
|
+
export declare const leaveCommentText = "Please leave a comment at https://cdk.tf/bugs/convert-expressions if you run into this issue.";
|
|
3
|
+
export declare const camelCase: (str: string) => string;
|
|
4
|
+
export declare const pascalCase: (str: string) => string;
|
|
5
|
+
export declare function uniqueId(set: Set<string>, key: string): string;
|
|
6
|
+
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.uniqueId = exports.pascalCase = exports.camelCase = exports.leaveCommentText = exports.logger = void 0;
|
|
7
|
+
// Copyright (c) HashiCorp, Inc
|
|
8
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
9
|
+
const camelcase_1 = __importDefault(require("camelcase"));
|
|
10
|
+
var commons_1 = require("@cdktn/commons");
|
|
11
|
+
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return commons_1.logger; } });
|
|
12
|
+
exports.leaveCommentText = `Please leave a comment at https://cdk.tf/bugs/convert-expressions if you run into this issue.`;
|
|
13
|
+
const camelCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"));
|
|
14
|
+
exports.camelCase = camelCase;
|
|
15
|
+
const pascalCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"), { pascalCase: true });
|
|
16
|
+
exports.pascalCase = pascalCase;
|
|
17
|
+
function uniqueId(set, key) {
|
|
18
|
+
if (set.has(key)) {
|
|
19
|
+
return uniqueId(set, `${key}_${set.size}`);
|
|
20
|
+
}
|
|
21
|
+
set.add(key);
|
|
22
|
+
return key;
|
|
23
|
+
}
|
|
24
|
+
exports.uniqueId = uniqueId;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDBEQUFrQztBQUVsQywwQ0FBd0M7QUFBL0IsaUdBQUEsTUFBTSxPQUFBO0FBRUYsUUFBQSxnQkFBZ0IsR0FBRywrRkFBK0YsQ0FBQztBQUV6SCxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFBbEUsUUFBQSxTQUFTLGFBQXlEO0FBQ3hFLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDeEMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFEaEQsUUFBQSxVQUFVLGNBQ3NDO0FBRTdELFNBQWdCLFFBQVEsQ0FBQyxHQUFnQixFQUFFLEdBQVc7SUFDcEQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkQsNEJBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IGNhbWVsY2FzZSBmcm9tIFwiY2FtZWxjYXNlXCI7XG5cbmV4cG9ydCB7IGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG5leHBvcnQgY29uc3QgbGVhdmVDb21tZW50VGV4dCA9IGBQbGVhc2UgbGVhdmUgYSBjb21tZW50IGF0IGh0dHBzOi8vY2RrLnRmL2J1Z3MvY29udmVydC1leHByZXNzaW9ucyBpZiB5b3UgcnVuIGludG8gdGhpcyBpc3N1ZS5gO1xuXG5leHBvcnQgY29uc3QgY2FtZWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiBjYW1lbGNhc2Uoc3RyLnJlcGxhY2UoL1stL10vZywgXCJfXCIpKTtcbmV4cG9ydCBjb25zdCBwYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICBjYW1lbGNhc2Uoc3RyLnJlcGxhY2UoL1stL10vZywgXCJfXCIpLCB7IHBhc2NhbENhc2U6IHRydWUgfSk7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVJZChzZXQ6IFNldDxzdHJpbmc+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzZXQuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gdW5pcXVlSWQoc2V0LCBgJHtrZXl9XyR7c2V0LnNpemV9YCk7XG4gIH1cbiAgc2V0LmFkZChrZXkpO1xuICByZXR1cm4ga2V5O1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import * as t from "@babel/types";
|
|
6
|
+
import { ProgramScope, Reference } from "./types";
|
|
7
|
+
export declare function referenceToVariableName(scope: ProgramScope, ref: Reference): string;
|
|
8
|
+
export declare function constructAst(scope: ProgramScope, type: string, isModuleImport: boolean): t.MemberExpression | t.Identifier;
|
|
9
|
+
export declare function variableName(scope: ProgramScope, resource: string, name: string): string;
|
|
10
|
+
//# sourceMappingURL=variables.d.ts.map
|
package/lib/variables.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.variableName = exports.constructAst = exports.referenceToVariableName = void 0;
|
|
34
|
+
const t = __importStar(require("@babel/types"));
|
|
35
|
+
const utils_1 = require("./utils");
|
|
36
|
+
const provider_generator_1 = require("@cdktn/provider-generator");
|
|
37
|
+
const provider_1 = require("./provider");
|
|
38
|
+
const reserved_words_1 = __importDefault(require("reserved-words"));
|
|
39
|
+
function referenceToVariableName(scope, ref) {
|
|
40
|
+
const parts = ref.referencee.id.split(".");
|
|
41
|
+
const resource = parts[0] === "data" ? `${parts[0]}.${parts[1]}` : parts[0];
|
|
42
|
+
const name = parts[0] === "data" ? parts[2] : parts[1];
|
|
43
|
+
return variableName(scope, resource, name);
|
|
44
|
+
}
|
|
45
|
+
exports.referenceToVariableName = referenceToVariableName;
|
|
46
|
+
function validVarName(name) {
|
|
47
|
+
if (reserved_words_1.default.check(name)) {
|
|
48
|
+
return `${name}Var`;
|
|
49
|
+
}
|
|
50
|
+
if (!Number.isNaN(parseInt(name[0], 10))) {
|
|
51
|
+
return `d${name}`;
|
|
52
|
+
}
|
|
53
|
+
return name;
|
|
54
|
+
}
|
|
55
|
+
function getUniqueName(scope, provider, type) {
|
|
56
|
+
var _a;
|
|
57
|
+
// early abort on cdktf
|
|
58
|
+
if (provider === "cdktf") {
|
|
59
|
+
return (0, utils_1.pascalCase)(type.replace("cdktf_", ""));
|
|
60
|
+
}
|
|
61
|
+
// early abort on cdktn
|
|
62
|
+
if (provider === "cdktn") {
|
|
63
|
+
return (0, utils_1.pascalCase)(type.replace("cdktn_", ""));
|
|
64
|
+
}
|
|
65
|
+
if (provider === "NullProvider") {
|
|
66
|
+
return (0, utils_1.pascalCase)(type.replace("NullProvider_", ""));
|
|
67
|
+
}
|
|
68
|
+
// Special handling for provider blocks, e.g. aws_AwsProvider
|
|
69
|
+
if (type === `${(0, utils_1.pascalCase)(provider)}Provider`) {
|
|
70
|
+
return (0, provider_generator_1.sanitizeClassOrNamespaceName)(type, true);
|
|
71
|
+
}
|
|
72
|
+
const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
|
|
73
|
+
if (fullProviderName && scope.providerGenerator[fullProviderName]) {
|
|
74
|
+
return (_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getClassNameForResource(type);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// If we can not find the class name for a resource the caller needs to find a sensible default
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function getResourceNamespace(scope, provider, resource, isDataSource, type) {
|
|
82
|
+
var _a;
|
|
83
|
+
// happens e.g. for references to cdktn.TerraformStack (and similar) in generated code
|
|
84
|
+
if (provider === "cdktn") {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
// e.g. awsProvider -> provider
|
|
88
|
+
if (resource === (0, utils_1.pascalCase)(`${provider}_provider`) ||
|
|
89
|
+
(provider === "NullProvider" && resource === "NullProvider")) {
|
|
90
|
+
return "provider";
|
|
91
|
+
}
|
|
92
|
+
const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
|
|
93
|
+
if (fullProviderName && scope.providerGenerator[fullProviderName]) {
|
|
94
|
+
return (0, utils_1.camelCase)((_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getNamespaceNameForResource(type.replace(/\./g, "_")));
|
|
95
|
+
}
|
|
96
|
+
if (isDataSource) {
|
|
97
|
+
return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
|
|
98
|
+
}
|
|
99
|
+
return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
|
|
100
|
+
}
|
|
101
|
+
function constructAst(scope, type, isModuleImport) {
|
|
102
|
+
if (isModuleImport) {
|
|
103
|
+
return t.memberExpression(t.identifier(type), t.identifier(type));
|
|
104
|
+
}
|
|
105
|
+
if (type.startsWith("var.")) {
|
|
106
|
+
scope.importables.push({
|
|
107
|
+
provider: "cdktn",
|
|
108
|
+
constructName: "TerraformVariable",
|
|
109
|
+
});
|
|
110
|
+
return t.identifier("TerraformVariable");
|
|
111
|
+
}
|
|
112
|
+
if (type === "terraform.data") {
|
|
113
|
+
scope.importables.push({
|
|
114
|
+
constructName: "DataResource",
|
|
115
|
+
provider: "cdktn",
|
|
116
|
+
});
|
|
117
|
+
return t.identifier("DataResource");
|
|
118
|
+
}
|
|
119
|
+
// resources or data sources
|
|
120
|
+
if (!type.includes("./") && type.includes(".")) {
|
|
121
|
+
const parts = type.split(".");
|
|
122
|
+
if (parts[0] === "data") {
|
|
123
|
+
const [, provider, resource] = parts;
|
|
124
|
+
const namespace = getResourceNamespace(scope, provider, resource, true, type);
|
|
125
|
+
const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
|
|
126
|
+
(0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
|
|
127
|
+
scope.importables.push({
|
|
128
|
+
provider: provider,
|
|
129
|
+
constructName: resourceName,
|
|
130
|
+
namespace,
|
|
131
|
+
});
|
|
132
|
+
if (namespace) {
|
|
133
|
+
return t.identifier(resourceName); // e.g. DataAwsInstance
|
|
134
|
+
}
|
|
135
|
+
return t.identifier(resourceName); // e.g. DataAwsNatGateway
|
|
136
|
+
}
|
|
137
|
+
const [provider, resource] = parts;
|
|
138
|
+
const namespace = getResourceNamespace(scope, provider, resource, false, type);
|
|
139
|
+
const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
|
|
140
|
+
(0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
|
|
141
|
+
scope.importables.push({
|
|
142
|
+
provider: provider,
|
|
143
|
+
constructName: resourceName,
|
|
144
|
+
namespace,
|
|
145
|
+
});
|
|
146
|
+
if (namespace) {
|
|
147
|
+
return t.identifier(resourceName); // e.g. Instance
|
|
148
|
+
}
|
|
149
|
+
return t.identifier(resourceName); // e.g. BigQueryTable
|
|
150
|
+
}
|
|
151
|
+
return t.identifier((0, utils_1.pascalCase)(type));
|
|
152
|
+
}
|
|
153
|
+
exports.constructAst = constructAst;
|
|
154
|
+
function variableName(scope, resource, name) {
|
|
155
|
+
const consistentResourceName = resource.replace(/\./g, "_");
|
|
156
|
+
// name collision, we need to prefix the name
|
|
157
|
+
if (scope.variables[name]) {
|
|
158
|
+
if (consistentResourceName === scope.variables[name].resource) {
|
|
159
|
+
return scope.variables[name].variableName;
|
|
160
|
+
}
|
|
161
|
+
// we only cache one per name
|
|
162
|
+
return validVarName((0, utils_1.camelCase)([resource, name].join("_")));
|
|
163
|
+
}
|
|
164
|
+
const variableName = validVarName((0, utils_1.camelCase)(name));
|
|
165
|
+
scope.variables[name] = {
|
|
166
|
+
variableName,
|
|
167
|
+
resource: consistentResourceName,
|
|
168
|
+
};
|
|
169
|
+
return variableName;
|
|
170
|
+
}
|
|
171
|
+
exports.variableName = variableName;
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQWtDO0FBRWxDLG1DQUFnRDtBQUNoRCxrRUFBeUU7QUFDekUseUNBQWlEO0FBQ2pELG9FQUEyQztBQUUzQyxTQUFnQix1QkFBdUIsQ0FDckMsS0FBbUIsRUFDbkIsR0FBYztJQUVkLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQVJELDBEQVFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxJQUFJLHdCQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FB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QUMsZ0JBQWdCO1FBQ3JELENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7SUFDMUQsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBcEZELG9DQW9GQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsS0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsSUFBWTtJQUVaLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsNkNBQTZDO0lBQzdDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUksc0JBQXNCLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQzVDLENBQUM7UUFFRCw2QkFBNkI7UUFDN0IsT0FBTyxZQUFZLENBQUMsSUFBQSxpQkFBUyxFQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVuRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHO1FBQ3RCLFlBQVk7UUFDWixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7SUFFRixPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBeEJELG9DQXdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgdCBmcm9tIFwiQGJhYmVsL3R5cGVzXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUsIFJlZmVyZW5jZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBjYW1lbENhc2UsIHBhc2NhbENhc2UgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZSB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBnZXRGdWxsUHJvdmlkZXJOYW1lIH0gZnJvbSBcIi4vcHJvdmlkZXJcIjtcbmltcG9ydCByZXNlcnZlZFdvcmRzIGZyb20gXCJyZXNlcnZlZC13b3Jkc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlVG9WYXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHJlZjogUmVmZXJlbmNlLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHMgPSByZWYucmVmZXJlbmNlZS5pZC5zcGxpdChcIi5cIik7XG4gIGNvbnN0IHJlc291cmNlID0gcGFydHNbMF0gPT09IFwiZGF0YVwiID8gYCR7cGFydHNbMF19LiR7cGFydHNbMV19YCA6IHBhcnRzWzBdO1xuICBjb25zdCBuYW1lID0gcGFydHNbMF0gPT09IFwiZGF0YVwiID8gcGFydHNbMl0gOiBwYXJ0c1sxXTtcbiAgcmV0dXJuIHZhcmlhYmxlTmFtZShzY29wZSwgcmVzb3VyY2UsIG5hbWUpO1xufVxuXG5mdW5jdGlvbiB2YWxpZFZhck5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGlmIChyZXNlcnZlZFdvcmRzLmNoZWNrKG5hbWUpKSB7XG4gICAgcmV0dXJuIGAke25hbWV9VmFyYDtcbiAgfVxuXG4gIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlSW50KG5hbWVbMF0sIDEwKSkpIHtcbiAgICByZXR1cm4gYGQke25hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBnZXRVbmlxdWVOYW1lKHNjb3BlOiBQcm9ncmFtU2NvcGUsIHByb3ZpZGVyOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAvLyBlYXJseSBhYm9ydCBvbiBjZGt0ZlxuICBpZiAocHJvdmlkZXIgPT09IFwiY2RrdGZcIikge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKHR5cGUucmVwbGFjZShcImNka3RmX1wiLCBcIlwiKSk7XG4gIH1cbiAgLy8gZWFybHkgYWJvcnQgb24gY2RrdG5cbiAgaWYgKHByb3ZpZGVyID09PSBcImNka3RuXCIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZSh0eXBlLnJlcGxhY2UoXCJjZGt0bl9cIiwgXCJcIikpO1xuICB9XG5cbiAgaWYgKHByb3ZpZGVyID09PSBcIk51bGxQcm92aWRlclwiKSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UodHlwZS5yZXBsYWNlKFwiTnVsbFByb3ZpZGVyX1wiLCBcIlwiKSk7XG4gIH1cblxuICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBwcm92aWRlciBibG9ja3MsIGUuZy4gYXdzX0F3c1Byb3ZpZGVyXG4gIGlmICh0eXBlID09PSBgJHtwYXNjYWxDYXNlKHByb3ZpZGVyKX1Qcm92aWRlcmApIHtcbiAgICByZXR1cm4gc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZSh0eXBlLCB0cnVlKTtcbiAgfVxuXG4gIGNvbnN0IGZ1bGxQcm92aWRlck5hbWUgPSBnZXRGdWxsUHJvdmlkZXJOYW1lKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwcm92aWRlcik7XG4gIGlmIChmdWxsUHJvdmlkZXJOYW1lICYmIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdKSB7XG4gICAgcmV0dXJuIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdPy5nZXRDbGFzc05hbWVGb3JSZXNvdXJjZShcbiAgICAgIHR5cGUsXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB3ZSBjYW4gbm90IGZpbmQgdGhlIGNsYXNzIG5hbWUgZm9yIGEgcmVzb3VyY2UgdGhlIGNhbGxlciBuZWVkcyB0byBmaW5kIGEgc2Vuc2libGUgZGVmYXVsdFxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJlc291cmNlTmFtZXNwYWNlKFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBwcm92aWRlcjogc3RyaW5nLFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpc0RhdGFTb3VyY2U6IGJvb2xlYW4sXG4gIHR5cGU6IHN0cmluZyxcbikge1xuICAvLyBoYXBwZW5zIGUuZy4gZm9yIHJlZmVyZW5jZXMgdG8gY2RrdG4uVGVycmFmb3JtU3RhY2sgKGFuZCBzaW1pbGFyKSBpbiBnZW5lcmF0ZWQgY29kZVxuICBpZiAocHJvdmlkZXIgPT09IFwiY2RrdG5cIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBlLmcuIGF3c1Byb3ZpZGVyIC0+IHByb3ZpZGVyXG4gIGlmIChcbiAgICByZXNvdXJjZSA9PT0gcGFzY2FsQ2FzZShgJHtwcm92aWRlcn1fcHJvdmlkZXJgKSB8fFxuICAgIChwcm92aWRlciA9PT0gXCJOdWxsUHJvdmlkZXJcIiAmJiByZXNvdXJjZSA9PT0gXCJOdWxsUHJvdmlkZXJcIilcbiAgKSB7XG4gICAgcmV0dXJuIFwicHJvdmlkZXJcIjtcbiAgfVxuXG4gIGNvbnN0IGZ1bGxQcm92aWRlck5hbWUgPSBnZXRGdWxsUHJvdmlkZXJOYW1lKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwcm92aWRlcik7XG5cbiAgaWYgKGZ1bGxQcm92aWRlck5hbWUgJiYgc2NvcGUucHJvdmlkZXJHZW5lcmF0b3JbZnVsbFByb3ZpZGVyTmFtZV0pIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlKFxuICAgICAgc2NvcGUucHJvdmlkZXJHZW5lcmF0b3JbZnVsbFByb3ZpZGVyTmFtZV0/LmdldE5hbWVzcGFjZU5hbWVGb3JSZXNvdXJjZShcbiAgICAgICAgdHlwZS5yZXBsYWNlKC9cXC4vZywgXCJfXCIpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGlzRGF0YVNvdXJjZSkge1xuICAgIHJldHVybiBjYW1lbENhc2UoXG4gICAgICBzYW5pdGl6ZUNsYXNzT3JOYW1lc3BhY2VOYW1lKGBkYXRhXyR7cHJvdmlkZXJ9XyR7cmVzb3VyY2V9YCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjYW1lbENhc2Uoc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShyZXNvdXJjZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0QXN0KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICB0eXBlOiBzdHJpbmcsXG4gIGlzTW9kdWxlSW1wb3J0OiBib29sZWFuLFxuKSB7XG4gIGlmIChpc01vZHVsZUltcG9ydCkge1xuICAgIHJldHVybiB0Lm1lbWJlckV4cHJlc3Npb24odC5pZGVudGlmaWVyKHR5cGUpLCB0LmlkZW50aWZpZXIodHlwZSkpO1xuICB9XG5cbiAgaWYgKHR5cGUuc3RhcnRzV2l0aChcInZhci5cIikpIHtcbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIlRlcnJhZm9ybVZhcmlhYmxlXCIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdC5pZGVudGlmaWVyKFwiVGVycmFmb3JtVmFyaWFibGVcIik7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gXCJ0ZXJyYWZvcm0uZGF0YVwiKSB7XG4gICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIkRhdGFSZXNvdXJjZVwiLFxuICAgICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgICB9KTtcbiAgICByZXR1cm4gdC5pZGVudGlmaWVyKFwiRGF0YVJlc291cmNlXCIpO1xuICB9XG5cbiAgLy8gcmVzb3VyY2VzIG9yIGRhdGEgc291cmNlc1xuICBpZiAoIXR5cGUuaW5jbHVkZXMoXCIuL1wiKSAmJiB0eXBlLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgIGNvbnN0IHBhcnRzID0gdHlwZS5zcGxpdChcIi5cIik7XG4gICAgaWYgKHBhcnRzWzBdID09PSBcImRhdGFcIikge1xuICAgICAgY29uc3QgWywgcHJvdmlkZXIsIHJlc291cmNlXSA9IHBhcnRzO1xuXG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBnZXRSZXNvdXJjZU5hbWVzcGFjZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgdHlwZSxcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNvdXJjZU5hbWUgPVxuICAgICAgICBnZXRVbmlxdWVOYW1lKHNjb3BlLCBwcm92aWRlciwgcGFydHMuam9pbihcIl9cIikpIHx8XG4gICAgICAgIHBhc2NhbENhc2UoXG4gICAgICAgICAgc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShgZGF0YV8ke3Byb3ZpZGVyfV8ke3Jlc291cmNlfWApLFxuICAgICAgICApO1xuXG4gICAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgICAgcHJvdmlkZXI6IHByb3ZpZGVyLFxuICAgICAgICBjb25zdHJ1Y3ROYW1lOiByZXNvdXJjZU5hbWUsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgIHJldHVybiB0LmlkZW50aWZpZXIocmVzb3VyY2VOYW1lKTsgLy8gZS5nLiBEYXRhQXdzSW5zdGFuY2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIERhdGFBd3NOYXRHYXRld2F5XG4gICAgfVxuXG4gICAgY29uc3QgW3Byb3ZpZGVyLCByZXNvdXJjZV0gPSBwYXJ0cztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBnZXRSZXNvdXJjZU5hbWVzcGFjZShcbiAgICAgIHNjb3BlLFxuICAgICAgcHJvdmlkZXIsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGZhbHNlLFxuICAgICAgdHlwZSxcbiAgICApO1xuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9XG4gICAgICBnZXRVbmlxdWVOYW1lKHNjb3BlLCBwcm92aWRlciwgcGFydHMuam9pbihcIl9cIikpIHx8XG4gICAgICBwYXNjYWxDYXNlKHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUocmVzb3VyY2UpKTtcblxuICAgIHNjb3BlLmltcG9ydGFibGVzLnB1c2goe1xuICAgICAgcHJvdmlkZXI6IHByb3ZpZGVyLFxuICAgICAgY29uc3RydWN0TmFtZTogcmVzb3VyY2VOYW1lLFxuICAgICAgbmFtZXNwYWNlLFxuICAgIH0pO1xuXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIEluc3RhbmNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIEJpZ1F1ZXJ5VGFibGVcbiAgfVxuXG4gIHJldHVybiB0LmlkZW50aWZpZXIocGFzY2FsQ2FzZSh0eXBlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGNvbnNpc3RlbnRSZXNvdXJjZU5hbWUgPSByZXNvdXJjZS5yZXBsYWNlKC9cXC4vZywgXCJfXCIpO1xuICAvLyBuYW1lIGNvbGxpc2lvbiwgd2UgbmVlZCB0byBwcmVmaXggdGhlIG5hbWVcbiAgaWYgKHNjb3BlLnZhcmlhYmxlc1tuYW1lXSkge1xuICAgIGlmIChjb25zaXN0ZW50UmVzb3VyY2VOYW1lID09PSBzY29wZS52YXJpYWJsZXNbbmFtZV0ucmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzY29wZS52YXJpYWJsZXNbbmFtZV0udmFyaWFibGVOYW1lO1xuICAgIH1cblxuICAgIC8vIHdlIG9ubHkgY2FjaGUgb25lIHBlciBuYW1lXG4gICAgcmV0dXJuIHZhbGlkVmFyTmFtZShjYW1lbENhc2UoW3Jlc291cmNlLCBuYW1lXS5qb2luKFwiX1wiKSkpO1xuICB9XG5cbiAgY29uc3QgdmFyaWFibGVOYW1lID0gdmFsaWRWYXJOYW1lKGNhbWVsQ2FzZShuYW1lKSk7XG5cbiAgc2NvcGUudmFyaWFibGVzW25hbWVdID0ge1xuICAgIHZhcmlhYmxlTmFtZSxcbiAgICByZXNvdXJjZTogY29uc2lzdGVudFJlc291cmNlTmFtZSxcbiAgfTtcblxuICByZXR1cm4gdmFyaWFibGVOYW1lO1xufVxuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cdktn/hcl2cdk",
|
|
3
|
+
"version": "0.21.0",
|
|
4
|
+
"description": "Transform HCL into CDK",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"watch": "tsc -w",
|
|
13
|
+
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
14
|
+
"test": "jest --runInBand",
|
|
15
|
+
"test:ci": "jest --ci --runInBand",
|
|
16
|
+
"test:update": "jest -u --runInBand",
|
|
17
|
+
"jest-watch": "jest --watch",
|
|
18
|
+
"package": "./package.sh",
|
|
19
|
+
"dist-clean": "rm -rf dist",
|
|
20
|
+
"package:js": "./package.sh"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git://github.com/open-constructs/cdk-terrain.git",
|
|
25
|
+
"directory": "packages/@cdktn/hcl2cdk"
|
|
26
|
+
},
|
|
27
|
+
"author": {
|
|
28
|
+
"name": "OpenConstructs",
|
|
29
|
+
"url": "https://github.com/open-constructs"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"cdk",
|
|
33
|
+
"cdktf",
|
|
34
|
+
"terraform",
|
|
35
|
+
"hcl"
|
|
36
|
+
],
|
|
37
|
+
"license": "MPL-2.0",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@babel/generator": "7.27.1",
|
|
40
|
+
"@babel/template": "7.27.2",
|
|
41
|
+
"@babel/types": "7.27.1",
|
|
42
|
+
"@cdktn/commons": "0.21.0",
|
|
43
|
+
"@cdktn/hcl2json": "0.21.0",
|
|
44
|
+
"@cdktn/provider-generator": "0.21.0",
|
|
45
|
+
"@cdktn/provider-schema": "0.21.0",
|
|
46
|
+
"camelcase": "6.3.0",
|
|
47
|
+
"cdktn": "0.21.0",
|
|
48
|
+
"codemaker": "1.112.0",
|
|
49
|
+
"deep-equal": "2.2.3",
|
|
50
|
+
"glob": "10.4.5",
|
|
51
|
+
"graphology": "0.26.0",
|
|
52
|
+
"graphology-types": "0.24.7",
|
|
53
|
+
"jsii-rosetta": "5.8.8",
|
|
54
|
+
"prettier": "2.8.8",
|
|
55
|
+
"reserved-words": "0.1.2",
|
|
56
|
+
"zod": "3.24.4"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/deep-equal": "1.0.4",
|
|
60
|
+
"@types/glob": "8.1.0",
|
|
61
|
+
"@types/jest": "29.5.14",
|
|
62
|
+
"@types/node": "20.17.51",
|
|
63
|
+
"@types/prettier": "2.7.3",
|
|
64
|
+
"@types/reserved-words": "0.1.4",
|
|
65
|
+
"execa": "5.1.1",
|
|
66
|
+
"fs-extra": "11.3.0",
|
|
67
|
+
"jest": "^29.7.0",
|
|
68
|
+
"ts-jest": "29.3.4",
|
|
69
|
+
"typescript": "5.4.5"
|
|
70
|
+
}
|
|
71
|
+
}
|
package/package.sh
ADDED
package/tsconfig.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"alwaysStrict": true,
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"declarationMap": true,
|
|
6
|
+
"experimentalDecorators": true,
|
|
7
|
+
"inlineSourceMap": true,
|
|
8
|
+
"inlineSources": true,
|
|
9
|
+
"lib": [
|
|
10
|
+
"ES2020"
|
|
11
|
+
],
|
|
12
|
+
"module": "CommonJS",
|
|
13
|
+
"noEmitOnError": false,
|
|
14
|
+
"noFallthroughCasesInSwitch": true,
|
|
15
|
+
"noImplicitAny": true,
|
|
16
|
+
"noImplicitReturns": true,
|
|
17
|
+
"noImplicitThis": true,
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"jsx": "react",
|
|
21
|
+
"resolveJsonModule": true,
|
|
22
|
+
"strict": true,
|
|
23
|
+
"strictNullChecks": true,
|
|
24
|
+
"strictPropertyInitialization": true,
|
|
25
|
+
"stripInternal": true,
|
|
26
|
+
"skipLibCheck": true,
|
|
27
|
+
"target": "ES2018",
|
|
28
|
+
"incremental": true,
|
|
29
|
+
"esModuleInterop": true
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"ambient.d.ts"
|
|
33
|
+
],
|
|
34
|
+
"include": [
|
|
35
|
+
"**/*.ts",
|
|
36
|
+
],
|
|
37
|
+
"exclude": [
|
|
38
|
+
"node_modules",
|
|
39
|
+
"cdktf-convert-test*/**/*",
|
|
40
|
+
"**/*.d.ts",
|
|
41
|
+
],
|
|
42
|
+
}
|