@cdktn/provider-generator 0.24.0-pre.7 → 0.24.0-pre.70
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/.spec.swcrc +22 -0
- package/LICENSE +355 -0
- package/README.md +1 -1
- package/build/__tests__/edge-provider-schema/cli.js +8 -3
- package/build/get/__tests__/generator/import-style.test.d.ts +2 -0
- package/build/get/__tests__/generator/import-style.test.js +101 -0
- package/build/get/__tests__/generator/module-generator.test.js +12 -12
- package/build/get/__tests__/generator/provider-source-matching.test.d.ts +2 -0
- package/build/get/__tests__/generator/provider-source-matching.test.js +45 -0
- package/build/get/constructs-maker.d.ts +5 -1
- package/build/get/constructs-maker.js +37 -7
- package/build/get/generator/emitter/struct-emitter.d.ts +2 -1
- package/build/get/generator/emitter/struct-emitter.js +14 -11
- package/build/get/generator/module-generator.js +3 -3
- package/build/get/generator/provider-generator.d.ts +9 -1
- package/build/get/generator/provider-generator.js +17 -7
- package/jest.config.js +16 -9
- package/package.json +24 -23
- package/package.sh +1 -1
- package/src/__tests__/__snapshots__/edge-provider-schema.test.ts.snap +8 -8
- package/src/__tests__/__snapshots__/provider.test.ts.snap +2951 -2951
- package/src/__tests__/edge-provider-schema/builder.ts +185 -0
- package/src/__tests__/edge-provider-schema/cli.ts +51 -0
- package/src/__tests__/edge-provider-schema/index.ts +161 -0
- package/src/__tests__/edge-provider-schema.test.ts +24 -0
- package/src/__tests__/provider.test.ts +180 -0
- package/src/get/__tests__/constructs-maker.test.ts +118 -0
- package/src/get/__tests__/generator/__snapshots__/complex-computed-types.test.ts.snap +5 -5
- package/src/get/__tests__/generator/__snapshots__/export-sharding.test.ts.snap +3310 -3310
- package/src/get/__tests__/generator/__snapshots__/module-generator.test.ts.snap +355 -355
- package/src/get/__tests__/generator/__snapshots__/nested-types.test.ts.snap +8 -8
- package/src/get/__tests__/generator/__snapshots__/provider.test.ts.snap +8 -8
- package/src/get/__tests__/generator/__snapshots__/resource-types.test.ts.snap +126 -126
- package/src/get/__tests__/generator/__snapshots__/skipped-attributes.test.ts.snap +17 -17
- package/src/get/__tests__/generator/__snapshots__/types.test.ts.snap +65 -65
- package/src/get/__tests__/generator/complex-computed-types.test.ts +28 -0
- package/src/get/__tests__/generator/deep-nested-attributes.test.ts +56 -0
- package/src/get/__tests__/generator/description-escaping.test.ts +84 -0
- package/src/get/__tests__/generator/empty-provider-resources.test.ts +26 -0
- package/src/get/__tests__/generator/export-sharding.test.ts +169 -0
- package/src/get/__tests__/generator/import-style.test.ts +129 -0
- package/src/get/__tests__/generator/module-generator.test.ts +528 -0
- package/src/get/__tests__/generator/nested-types.test.ts +54 -0
- package/src/get/__tests__/generator/provider-source-matching.test.ts +84 -0
- package/src/get/__tests__/generator/provider.test.ts +51 -0
- package/src/get/__tests__/generator/resource-types.test.ts +118 -0
- package/src/get/__tests__/generator/skipped-attributes.test.ts +72 -0
- package/src/get/__tests__/generator/types.test.ts +611 -0
- package/src/get/__tests__/generator/versions-file.test.ts +72 -0
- package/src/get/__tests__/util.ts +75 -0
- package/src/get/constructs-maker.ts +845 -0
- package/src/get/generator/custom-defaults.ts +493 -0
- package/src/get/generator/emitter/attributes-emitter.ts +225 -0
- package/src/get/generator/emitter/index.ts +5 -0
- package/src/get/generator/emitter/resource-emitter.ts +226 -0
- package/src/get/generator/emitter/struct-emitter.ts +683 -0
- package/src/get/generator/loop-detection.ts +81 -0
- package/src/get/generator/models/attribute-model.ts +216 -0
- package/src/get/generator/models/attribute-type-model.ts +448 -0
- package/src/get/generator/models/index.ts +7 -0
- package/src/get/generator/models/resource-model.ts +161 -0
- package/src/get/generator/models/scope.ts +54 -0
- package/src/get/generator/models/struct.ts +116 -0
- package/src/get/generator/module-generator.ts +234 -0
- package/src/get/generator/provider-generator.ts +362 -0
- package/src/get/generator/resource-parser.ts +762 -0
- package/src/get/generator/sanitized-comments.ts +49 -0
- package/src/get/generator/skipped-attributes.ts +27 -0
- package/src/index.ts +40 -0
- package/src/util.ts +26 -0
- package/tsconfig.json +1 -2
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Copyright (c) HashiCorp, Inc
|
|
2
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
3
|
+
import * as fs from "fs";
|
|
4
|
+
import * as os from "os";
|
|
5
|
+
import {
|
|
6
|
+
Language,
|
|
7
|
+
TerraformModuleConstraint,
|
|
8
|
+
withTempDir,
|
|
9
|
+
} from "@cdktn/commons";
|
|
10
|
+
import { ConstructsMaker } from "../constructs-maker";
|
|
11
|
+
import * as path from "path";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Creates a per-test-file temp-dir helper.
|
|
15
|
+
*
|
|
16
|
+
* Returns a `tmp(prefix)` function that creates a uniquely-named directory
|
|
17
|
+
* under `os.tmpdir()` and tracks it. An `afterAll` hook is registered on
|
|
18
|
+
* the calling test file's scope; when the file finishes running, every
|
|
19
|
+
* tracked directory is removed (recursively, force).
|
|
20
|
+
*/
|
|
21
|
+
export function createTmpHelper(): (prefix: string) => string {
|
|
22
|
+
const dirs: string[] = [];
|
|
23
|
+
afterAll(() => {
|
|
24
|
+
for (const d of dirs) fs.rmSync(d, { recursive: true, force: true });
|
|
25
|
+
});
|
|
26
|
+
return (prefix: string) => {
|
|
27
|
+
const d = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
28
|
+
dirs.push(d);
|
|
29
|
+
return d;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function expectModuleToMatchSnapshot(
|
|
34
|
+
testName: string,
|
|
35
|
+
testCategory: string,
|
|
36
|
+
fixtureNames: string[],
|
|
37
|
+
) {
|
|
38
|
+
test(testName, async () => {
|
|
39
|
+
await withTempDir(`${testName.replace(/\s*/, "-")}.test`, async () => {
|
|
40
|
+
const curdir = process.cwd();
|
|
41
|
+
fs.mkdirSync("module");
|
|
42
|
+
|
|
43
|
+
fixtureNames.forEach((fixtureName) => {
|
|
44
|
+
fs.copyFileSync(
|
|
45
|
+
path.join(__dirname, testCategory, "fixtures", fixtureName),
|
|
46
|
+
path.join(curdir, "module", fixtureName),
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const constraint = new TerraformModuleConstraint({
|
|
51
|
+
source: "./module",
|
|
52
|
+
name: "module",
|
|
53
|
+
fqn: "module",
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
fs.mkdirSync("work");
|
|
57
|
+
const workdir = path.join(curdir, "work");
|
|
58
|
+
|
|
59
|
+
const maker = new ConstructsMaker(
|
|
60
|
+
{
|
|
61
|
+
codeMakerOutput: workdir,
|
|
62
|
+
targetLanguage: Language.TYPESCRIPT,
|
|
63
|
+
},
|
|
64
|
+
process.env.CDKTF_EXPERIMENTAL_PROVIDER_SCHEMA_CACHE_PATH,
|
|
65
|
+
);
|
|
66
|
+
await maker.generate([constraint]);
|
|
67
|
+
|
|
68
|
+
const output = fs.readFileSync(
|
|
69
|
+
path.join(workdir, "modules/module.ts"),
|
|
70
|
+
"utf-8",
|
|
71
|
+
);
|
|
72
|
+
expect(output).toMatchSnapshot();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|