Skip to content

Commit 9b66843

Browse files
committed
wip
1 parent a67f3f7 commit 9b66843

File tree

93 files changed

+2543
-1489
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+2543
-1489
lines changed
Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,3 @@
1-
import { getProjectSdk } from "@webiny/project";
21
import { createAdminApp } from "@webiny/project-aws/apps";
3-
import { AdminPulumi } from "@webiny/project/abstractions";
4-
import { tagResources } from "@webiny/pulumi-aws";
5-
import { awsTags as awsTagsExt } from "@webiny/project-aws/extensions/awsTags";
62

7-
const sdk = await getProjectSdk();
8-
9-
const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
10-
const productionEnvironments = await sdk.getProductionEnvironments();
11-
12-
export default createAdminApp({
13-
pulumiResourceNamePrefix,
14-
productionEnvironments,
15-
pulumi: async app => {
16-
const projectConfig = await sdk.getProjectConfig();
17-
projectConfig.extensionsByType(awsTagsExt).forEach(ext => {
18-
tagResources(ext.params.tags);
19-
});
20-
21-
const pulumiHandlers = sdk.getContainer().resolve(AdminPulumi);
22-
await pulumiHandlers.execute(app);
23-
}
24-
});
3+
export default createAdminApp();
Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,3 @@
11
import { createApiApp } from "@webiny/project-aws/apps/enterprise";
2-
import { getProjectSdk } from "@webiny/project";
3-
import { ApiPulumi } from "@webiny/project/abstractions";
4-
import { tagResources } from "@webiny/pulumi-aws";
5-
import { awsTags as awsTagsExt } from "@webiny/project-aws/extensions/awsTags";
6-
import { vpc as vpcExt } from "@webiny/project-aws/extensions/vpc";
7-
import { CreateApiPulumiAppParams } from "@webiny/pulumi-aws/enterprise";
82

9-
const sdk = await getProjectSdk();
10-
11-
const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
12-
const productionEnvironments = await sdk.getProductionEnvironments();
13-
14-
const projectConfig = await sdk.getProjectConfig();
15-
16-
let vpc: CreateApiPulumiAppParams["vpc"];
17-
18-
vpcBlock: {
19-
const [vpcExtension] = projectConfig.extensionsByType(vpcExt);
20-
if (!vpcExtension) {
21-
break vpcBlock;
22-
}
23-
24-
const { enabled, useVpcEndpoints, useExistingVpc } = vpcExtension.params;
25-
if (enabled === false) {
26-
vpc = false;
27-
break vpcBlock;
28-
}
29-
30-
vpc = true;
31-
if (useVpcEndpoints || useExistingVpc) {
32-
vpc = {};
33-
if (useVpcEndpoints) {
34-
vpc.useVpcEndpoints = useVpcEndpoints;
35-
}
36-
37-
if (useExistingVpc) {
38-
vpc.useExistingVpc = useExistingVpc;
39-
}
40-
}
41-
}
42-
43-
export default createApiApp({
44-
pulumiResourceNamePrefix,
45-
productionEnvironments,
46-
vpc,
47-
pulumi: async app => {
48-
projectConfig.extensionsByType(awsTagsExt).forEach(ext => {
49-
tagResources(ext.params.tags);
50-
});
51-
52-
const pulumiHandlers = sdk.getContainer().resolve(ApiPulumi);
53-
await pulumiHandlers.execute(app);
54-
}
55-
});
3+
export default createApiApp();
Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,3 @@
11
import { createWebsiteApp } from "@webiny/project-aws/apps";
2-
import { getProjectSdk } from "@webiny/project";
3-
import { WebsitePulumi } from "@webiny/project/abstractions";
4-
import { tagResources } from "@webiny/pulumi-aws";
5-
import { awsTags as awsTagsExt } from "@webiny/project-aws/extensions/awsTags";
6-
import { CreateWebsitePulumiAppParams } from "@webiny/pulumi-aws/enterprise";
72

8-
const sdk = await getProjectSdk();
9-
10-
const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
11-
const productionEnvironments = await sdk.getProductionEnvironments();
12-
13-
const projectConfig = await sdk.getProjectConfig();
14-
15-
let vpc: CreateWebsitePulumiAppParams["vpc"];
16-
17-
vpcBlock: {
18-
const [vpcExtension] = projectConfig.extensionsByType(vpcExt);
19-
if (!vpcExtension) {
20-
break vpcBlock;
21-
}
22-
23-
const { enabled, useVpcEndpoints, useExistingVpc } = vpcExtension.params;
24-
if (enabled === false) {
25-
vpc = false;
26-
break vpcBlock;
27-
}
28-
29-
vpc = true;
30-
if (useVpcEndpoints || useExistingVpc) {
31-
vpc = {};
32-
if (useVpcEndpoints) {
33-
vpc.useVpcEndpoints = useVpcEndpoints;
34-
}
35-
36-
if (useExistingVpc) {
37-
vpc.useExistingVpc = useExistingVpc;
38-
}
39-
}
40-
}
41-
42-
export default createWebsiteApp({
43-
pulumiResourceNamePrefix,
44-
productionEnvironments,
45-
vpc,
46-
pulumi: async app => {
47-
projectConfig.extensionsByType(awsTagsExt).forEach(ext => {
48-
tagResources(ext.params.tags);
49-
});
50-
51-
const pulumiHandlers = sdk.getContainer().resolve(WebsitePulumi);
52-
await pulumiHandlers.execute(app);
53-
}
54-
});
3+
export default createWebsiteApp();

packages/project-aws/src/Webiny/UploadAdminAppToS3.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from "@webiny/project/abstractions/index.js";
88
import fs from "fs";
99
import { uploadFolderToS3 } from "@webiny/pulumi-aws";
10+
import { IDefaultStackOutput } from "@webiny/pulumi-aws/types";
1011

1112
class UploadAdminAppToS3 implements AdminAfterDeploy.Interface {
1213
constructor(
@@ -32,7 +33,7 @@ class UploadAdminAppToS3 implements AdminAfterDeploy.Interface {
3233
}
3334

3435
const start = new Date().getTime();
35-
const appOutput = await this.getAppStackOutput.execute(params);
36+
const appOutput = await this.getAppStackOutput.execute<IDefaultStackOutput>(params);
3637
if (!appOutput) {
3738
throw new Error("Missing app stack output.");
3839
}

packages/project-aws/src/Webiny/UploadWebsiteAppToS3.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from "@webiny/project/abstractions/index.js";
88
import fs from "fs";
99
import { uploadFolderToS3 } from "@webiny/pulumi-aws";
10+
import { IDefaultStackOutput } from "@webiny/pulumi-aws/types";
1011

1112
class UploadWebsiteAppToS3 implements WebsiteAfterDeploy.Interface {
1213
constructor(
@@ -32,7 +33,7 @@ class UploadWebsiteAppToS3 implements WebsiteAfterDeploy.Interface {
3233
}
3334

3435
const start = new Date().getTime();
35-
const appOutput = await this.getAppStackOutput.execute(params);
36+
const appOutput = await this.getAppStackOutput.execute<IDefaultStackOutput>(params);
3637
if (!appOutput) {
3738
throw new Error("Missing app stack output.");
3839
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
import { type CreateAdminPulumiAppParams } from "@webiny/pulumi-aws/enterprise/index.js";
2-
3-
export function createAdminApp(projectAppParams: CreateAdminPulumiAppParams = {}) {
1+
export function createAdminApp() {
42
return {
53
id: "admin",
64
name: "Admin",
75
description: "Your project's admin area.",
86
async getPulumi() {
97
// eslint-disable-next-line import/dynamic-import-chunkname
10-
const { createAdminPulumiApp } = await import("@webiny/pulumi-aws/enterprise/index.js");
8+
const { createAdminPulumiApp } = await import("@webiny/pulumi-aws/index.js");
119

12-
return createAdminPulumiApp(projectAppParams);
10+
return createAdminPulumiApp();
1311
}
1412
};
1513
}

packages/project-aws/src/apps/createApiApp.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import { type CreateApiPulumiAppParams } from "@webiny/pulumi-aws/enterprise/index.js";
2-
31
export { ApiOutput } from "@webiny/pulumi-aws";
42

5-
export function createApiApp(projectAppParams: CreateApiPulumiAppParams = {}) {
3+
export function createApiApp() {
64
return {
75
id: "api",
86
name: "API",
@@ -19,9 +17,9 @@ export function createApiApp(projectAppParams: CreateApiPulumiAppParams = {}) {
1917
},
2018
async getPulumi() {
2119
// eslint-disable-next-line import/dynamic-import-chunkname
22-
const { createApiPulumiApp } = await import("@webiny/pulumi-aws/enterprise/index.js");
20+
const { createApiPulumiApp } = await import("@webiny/pulumi-aws/index.js");
2321

24-
return createApiPulumiApp(projectAppParams);
22+
return createApiPulumiApp();
2523
}
2624
};
2725
}

packages/project-aws/src/apps/createCoreApp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export function createCoreApp() {
77
description: "Your project's stateful cloud infrastructure resources.",
88
async getPulumi() {
99
// eslint-disable-next-line import/dynamic-import-chunkname
10-
const { createCorePulumiApp } = await import("@webiny/pulumi-aws/enterprise/index.js");
10+
const { createCorePulumiApp } = await import("@webiny/pulumi-aws/index.js");
1111

1212
return createCorePulumiApp();
1313
}

packages/project-aws/src/apps/createWebsiteApp.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import { type CreateWebsitePulumiAppParams } from "@webiny/pulumi-aws/enterprise/index.js";
2-
3-
export function createWebsiteApp(projectAppParams: CreateWebsitePulumiAppParams = {}) {
1+
export function createWebsiteApp() {
42
return {
53
id: "website",
64
name: "Website",
@@ -16,9 +14,9 @@ export function createWebsiteApp(projectAppParams: CreateWebsitePulumiAppParams
1614
},
1715
async getPulumi() {
1816
// eslint-disable-next-line import/dynamic-import-chunkname
19-
const { createWebsitePulumiApp } = await import("@webiny/pulumi-aws/enterprise/index.js");
17+
const { createWebsitePulumiApp } = await import("@webiny/pulumi-aws/index.js");
2018

21-
return createWebsitePulumiApp(projectAppParams);
19+
return createWebsitePulumiApp();
2220
}
2321
// plugins: [builtInPlugins, customPlugins]
2422
};

packages/project/src/abstractions/features/GetAppStackOutput.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { IPulumiGetStackOutputServiceParams } from "~/abstractions/services/Pulu
55
export type IGetAppStackOutputParams = IBaseAppParams;
66

77
export interface IStackOutput {
8-
[key: string]: any;
8+
/**
9+
* There is a possibility for a user to add stuff to the stack output.
10+
*/
11+
[key: string]: string | string[] | undefined | number | number[] | boolean;
912
}
1013

1114
export type IGetAppStackOutputResult<TOutput extends IStackOutput = IStackOutput> = TOutput | null;

0 commit comments

Comments
 (0)