Skip to content
Draft
2 changes: 1 addition & 1 deletion extensions/MyCorePulumiHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { UiService } from "webiny/infra/features/UiService";
class MyCorePulumiHandlerImpl implements CorePulumi.Interface {
constructor(private ui: UiService.Interface) {}

execute(app: any) {
execute(app: CorePulumi.Params) {
this.ui.info("🔮 Executing MyCorePulumiHandler with environment:", app.env);
}
}
Expand Down
5 changes: 4 additions & 1 deletion packages/project-aws/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,10 @@
"./abstractions/InvokeLambdaFunction.ts": "./infra/features/InvokeLambdaFunction",
"./abstractions/services/AdminStackOutputService.ts": "./infra/features/AdminStackOutputService",
"./abstractions/services/CoreStackOutputService.ts": "./infra/features/CoreStackOutputService",
"./abstractions/services/ApiStackOutputService.ts": "./infra/features/ApiStackOutputService"
"./abstractions/services/ApiStackOutputService.ts": "./infra/features/ApiStackOutputService",
"./abstractions/features/pulumi/AdminPulumi.ts": "./infra/features/AdminPulumi",
"./abstractions/features/pulumi/ApiPulumi.ts": "./infra/features/ApiPulumi",
"./abstractions/features/pulumi/CorePulumi.ts": "./infra/features/CorePulumi"
}
},
"adio": {
Expand Down
1 change: 1 addition & 0 deletions packages/project-aws/src/abstractions/features/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./pulumi/index.js";
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { createAbstraction } from "@webiny/project/abstractions/createAbstraction.js";
import type { AdminPulumiApp } from "~/pulumi/apps/admin/index.js";

export interface IAdminPulumi {
execute(app: AdminPulumiApp): void | Promise<void>;
}

export const AdminPulumi = createAbstraction<IAdminPulumi>("AdminPulumi");

export namespace AdminPulumi {
export type Interface = IAdminPulumi;
export type Params = AdminPulumiApp;
}
13 changes: 13 additions & 0 deletions packages/project-aws/src/abstractions/features/pulumi/ApiPulumi.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { createAbstraction } from "@webiny/project/abstractions/createAbstraction.js";
import type { ApiPulumiApp } from "~/pulumi/apps/api/index.js";

export interface IApiPulumi {
execute(app: ApiPulumiApp): void | Promise<void>;
}

export const ApiPulumi = createAbstraction<IApiPulumi>("ApiPulumi");

export namespace ApiPulumi {
export type Interface = IApiPulumi;
export type Params = ApiPulumiApp;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { createAbstraction } from "@webiny/project/abstractions/createAbstraction.js";
import type { CorePulumiApp } from "~/pulumi/apps/core/index.js";

export interface ICorePulumi {
execute(app: CorePulumiApp): void | Promise<void>;
}

export const CorePulumi = createAbstraction<ICorePulumi>("CorePulumi");

export namespace CorePulumi {
export type Interface = ICorePulumi;
export type Params = CorePulumiApp;
}
1 change: 1 addition & 0 deletions packages/project-aws/src/abstractions/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from "./features/index.js";
export * from "./services/CoreStackOutputService.js";
export * from "./services/ApiStackOutputService.js";
export * from "./services/AdminStackOutputService.js";
Expand Down
6 changes: 3 additions & 3 deletions packages/project-aws/src/infra.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,30 @@ import {
AdminBeforeBuild,
AdminBeforeDeploy,
AdminBeforeWatch,
AdminPulumi,
AdminStackOutputValue,
ApiAfterBuild,
ApiAfterDeploy,
ApiBeforeBuild,
ApiBeforeDeploy,
ApiBeforeWatch,
ApiPulumi,
ApiStackOutputValue,
CoreAfterBuild,
CoreAfterDeploy,
CoreBeforeBuild,
CoreBeforeDeploy,
CoreBeforeWatch,
CorePulumi,
CoreStackOutputValue,
ProductionEnvironments,
PulumiResourceNamePrefix
} from "@webiny/project/extensions/index.js";

import {
AdminCustomDomains,
AdminPulumi,
ApiPulumi,
AwsTags,
BlueGreenDeployments,
CorePulumi,
Vpc
} from "./pulumi/extensions/index.js";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { type CorePulumiApp, createReactPulumiApp } from "~/pulumi/apps/index.js";
import { getProjectSdk } from "@webiny/project";
import { AdminPulumi } from "@webiny/project/abstractions/index.js";
import { AdminPulumi } from "~/abstractions/index.js";
import { AdminCustomDomains as adminCustomDomainsExt } from "~/pulumi/extensions/AdminCustomDomains.js";

export type AdminPulumiApp = ReturnType<typeof createReactPulumiApp>;
Expand Down Expand Up @@ -31,7 +31,7 @@ export const createAdminPulumiApp = async () => {
const pulumiHandlers = sdk.getContainer().resolve(AdminPulumi);

app.addHandler(() => {
return pulumiHandlers.execute(app as unknown as CorePulumiApp);
return pulumiHandlers.execute(app as AdminPulumiApp);
});
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { getEsConfigFromExtension } from "../extensions/getEsConfigFromExtension
import { getOsConfigFromExtension } from "~/pulumi/apps/extensions/getOsConfigFromExtension.js";
import { License } from "@webiny/wcp";
import { handleGuardDutyEvents } from "./handleGuardDutyEvents.js";
import { ApiPulumi } from "@webiny/project/abstractions/index.js";
import { ApiPulumi } from "~/abstractions/index.js";

export type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;

Expand Down Expand Up @@ -138,7 +138,7 @@ export const createApiPulumiApp = () => {
const pulumiHandlers = sdk.getContainer().resolve(ApiPulumi);

app.addHandler(() => {
return pulumiHandlers.execute(app as unknown as ApiPulumiApp);
return pulumiHandlers.execute(app as ApiPulumiApp);
});

const isProduction = app.env.isProduction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
import * as random from "@pulumi/random";
import { LogDynamo } from "./LogDynamo.js";
import { getProjectSdk } from "@webiny/project";
import { CorePulumi } from "@webiny/project/abstractions/index.js";
import { CorePulumi } from "~/abstractions/index.js";
import { getEsConfigFromExtension } from "~/pulumi/apps/extensions/getEsConfigFromExtension.js";
import { getOsConfigFromExtension } from "~/pulumi/apps/extensions/getOsConfigFromExtension.js";
import { getVpcConfigFromExtension } from "~/pulumi/apps/extensions/getVpcConfigFromExtension.js";
Expand Down Expand Up @@ -233,7 +233,7 @@ export function createCorePulumiApp() {
const pulumiHandlers = sdk.getContainer().resolve(CorePulumi);

app.addHandler(() => {
return pulumiHandlers.execute(app as unknown as CorePulumiApp);
return pulumiHandlers.execute(app as CorePulumiApp);
});

const isProduction = app.env.isProduction;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { z } from "zod";
import { defineExtension } from "~/defineExtension/index.js";
import { zodPathToAbstraction } from "~/defineExtension/zodTypes/zodPathToAbstraction.js";
import { defineExtension } from "@webiny/project/defineExtension/index.js";
import { zodPathToAbstraction } from "@webiny/project/defineExtension/zodTypes/zodPathToAbstraction.js";
import { AdminPulumi as AdminPulumiAbstraction } from "~/abstractions/features/pulumi/index.js";

export const AdminPulumi = defineExtension({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { z } from "zod";
import { defineExtension } from "~/defineExtension/index.js";
import { zodPathToAbstraction } from "~/defineExtension/zodTypes/zodPathToAbstraction.js";
import { defineExtension } from "@webiny/project/defineExtension/index.js";
import { zodPathToAbstraction } from "@webiny/project/defineExtension/zodTypes/zodPathToAbstraction.js";
import { ApiPulumi as ApiPulumiAbstraction } from "~/abstractions/features/pulumi/index.js";

export const ApiPulumi = defineExtension({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { z } from "zod";
import { defineExtension } from "~/defineExtension/index.js";
import { zodPathToAbstraction } from "~/defineExtension/zodTypes/zodPathToAbstraction.js";
import { defineExtension } from "@webiny/project/defineExtension/index.js";
import { zodPathToAbstraction } from "@webiny/project/defineExtension/zodTypes/zodPathToAbstraction.js";
import { CorePulumi as CorePulumiAbstraction } from "~/abstractions/features/pulumi/index.js";

export const CorePulumi = defineExtension({
Expand Down
9 changes: 9 additions & 0 deletions packages/project-aws/src/pulumi/extensions/index.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
import { AdminPulumi } from "./AdminPulumi.js";
import { ApiPulumi } from "./ApiPulumi.js";
import { AwsTags } from "./AwsTags.js";
import { CorePulumi } from "./CorePulumi.js";
import { ElasticSearch } from "./ElasticSearch.js";
import { OpenSearch } from "./OpenSearch.js";
import { Vpc } from "./Vpc.js";
import { AdminCustomDomains } from "./AdminCustomDomains.js";
import { BlueGreenDeployments } from "~/pulumi/extensions/BlueGreenDeployments.js";

export { AdminPulumi };
export { ApiPulumi };
export { AwsTags };
export { CorePulumi };
export { Vpc };
export { ElasticSearch };
export { OpenSearch };
export { AdminCustomDomains };
export { BlueGreenDeployments };

export const definitions = [
AdminPulumi.def,
ApiPulumi.def,
AwsTags.def,
CorePulumi.def,
Vpc.def,
ElasticSearch.def,
OpenSearch.def,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export * from "./CorePulumi/index.js";
export * from "./AdminPulumi/index.js";
export * from "./ApiPulumi/index.js";
export * from "./CorePulumi/index.js";
3 changes: 0 additions & 3 deletions packages/project/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@
"./abstractions/features/hooks/CoreBeforeDeploy.ts": "./infra/features/CoreBeforeDeploy",
"./abstractions/services/LoggerService.ts": "./infra/features/LoggerService",
"./abstractions/services/UiService.ts": "./infra/features/UiService",
"./abstractions/features/pulumi/AdminPulumi.ts": "./infra/features/AdminPulumi",
"./abstractions/features/pulumi/ApiPulumi.ts": "./infra/features/ApiPulumi",
"./abstractions/features/pulumi/CorePulumi.ts": "./infra/features/CorePulumi",
"./abstractions/features/GetAppStackOutput.ts": "./infra/features/GetAppStackOutput",
"./abstractions/features/GetAppStackExport.ts": "./infra/features/GetAppStackExport"
}
Expand Down
1 change: 0 additions & 1 deletion packages/project/src/abstractions/features/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export * from "./hooks/index.js";
export * from "./pulumi/index.js";
export { BuildApp } from "./BuildApp.js";
export { BuildExtension } from "./BuildExtension.js";
export { DeployApp } from "./DeployApp.js";
Expand Down
12 changes: 0 additions & 12 deletions packages/project/src/abstractions/features/pulumi/AdminPulumi.ts

This file was deleted.

12 changes: 0 additions & 12 deletions packages/project/src/abstractions/features/pulumi/ApiPulumi.ts

This file was deleted.

12 changes: 0 additions & 12 deletions packages/project/src/abstractions/features/pulumi/CorePulumi.ts

This file was deleted.

25 changes: 0 additions & 25 deletions packages/project/src/createProjectSdkContainer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,17 @@ import {
adminBeforeBuild,
adminBeforeDeploy,
adminBeforeWatch,
adminPulumi,
apiAfterBuild,
apiAfterDeploy,
apiBeforeBuild,
apiBeforeDeploy,
apiBeforeWatch,
apiPulumi,
buildApp,
coreAfterBuild,
coreAfterDeploy,
coreBeforeBuild,
coreBeforeDeploy,
coreBeforeWatch,
corePulumi,
deployApp,
destroyApp,
getApp,
Expand Down Expand Up @@ -118,12 +115,6 @@ import {
CoreBeforeWatch as CoreBeforeWatchExt
} from "./extensions/hooks/index.js";

import {
CorePulumi as CorePulumiExt,
ApiPulumi as ApiPulumiExt,
AdminPulumi as AdminPulumiExt
} from "./extensions/pulumi/index.js";

import { ProjectDecorator as ProjectDecoratorExt } from "./extensions/ProjectDecorator.js";
import { ProjectImplementation as ProjectImplementationExt } from "./extensions/ProjectImplementation.js";
import { EnvVar as EnvVarExt } from "./extensions/EnvVar.js";
Expand Down Expand Up @@ -280,22 +271,6 @@ export const createProjectSdkContainer = async (
container.register(hookImpl).inSingletonScope();
}

const pulumiExtensions = [
...projectExtensions.extensionsByType(CorePulumiExt),
...projectExtensions.extensionsByType(ApiPulumiExt),
...projectExtensions.extensionsByType(AdminPulumiExt)
];

for (const pulumiExtension of pulumiExtensions) {
const pulumiImpl = await importFromPath(pulumiExtension.params.src);
container.register(pulumiImpl).inSingletonScope();
}

// Pulumi.
container.registerComposite(corePulumi);
container.registerComposite(apiPulumi);
container.registerComposite(adminPulumi);

// Decorators that must be applied last on top of potentially custom ones.
container.registerDecorator(buildAppWithHooks);
container.registerDecorator(deployAppWithHooks);
Expand Down
7 changes: 0 additions & 7 deletions packages/project/src/extensions/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ import {

// Pulumi.
import {
AdminPulumi,
ApiPulumi,
CorePulumi,
ProductionEnvironments,
PulumiResourceNamePrefix,
CoreStackOutputValue,
Expand Down Expand Up @@ -74,9 +71,6 @@ export { CoreAfterBuild };
export { CoreAfterDeploy };

// Pulumi.
export { CorePulumi };
export { AdminPulumi };
export { ApiPulumi };
export { PulumiResourceNamePrefix };
export { ProductionEnvironments };
export { CoreStackOutputValue };
Expand Down Expand Up @@ -115,7 +109,6 @@ export const definitions = [
CoreBeforeWatch.def,

// Pulumi.
CorePulumi.def,
PulumiResourceNamePrefix.def,
ProductionEnvironments.def,
CoreStackOutputValue.def,
Expand Down
3 changes: 0 additions & 3 deletions packages/project/src/extensions/pulumi/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
export * from "./CorePulumi.js";
export * from "./ApiPulumi.js";
export * from "./AdminPulumi.js";
export * from "./PulumiResourceNamePrefix.js";
export * from "./ProductionEnvironments.js";
export * from "./CoreStackOutputValue.js";
Expand Down
1 change: 0 additions & 1 deletion packages/project/src/features/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export * from "./hooks/index.js";
export * from "./pulumi/index.js";
export * from "./BuildApp/index.js";
export * from "./DeployApp/index.js";
export * from "./DestroyApp/index.js";
Expand Down
8 changes: 4 additions & 4 deletions packages/webiny/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,15 +98,15 @@
"./infra/features/CoreBeforeDeploy": "./infra/features/CoreBeforeDeploy.js",
"./infra/features/LoggerService": "./infra/features/LoggerService.js",
"./infra/features/UiService": "./infra/features/UiService.js",
"./infra/features/AdminPulumi": "./infra/features/AdminPulumi.js",
"./infra/features/ApiPulumi": "./infra/features/ApiPulumi.js",
"./infra/features/CorePulumi": "./infra/features/CorePulumi.js",
"./infra/features/GetAppStackOutput": "./infra/features/GetAppStackOutput.js",
"./infra/features/GetAppStackExport": "./infra/features/GetAppStackExport.js",
"./extensions": "./extensions.js",
"./infra/features/InvokeLambdaFunction": "./infra/features/InvokeLambdaFunction.js",
"./infra/features/AdminStackOutputService": "./infra/features/AdminStackOutputService.js",
"./infra/features/CoreStackOutputService": "./infra/features/CoreStackOutputService.js",
"./infra/features/ApiStackOutputService": "./infra/features/ApiStackOutputService.js"
"./infra/features/ApiStackOutputService": "./infra/features/ApiStackOutputService.js",
"./infra/features/AdminPulumi": "./infra/features/AdminPulumi.js",
"./infra/features/ApiPulumi": "./infra/features/ApiPulumi.js",
"./infra/features/CorePulumi": "./infra/features/CorePulumi.js"
}
}
2 changes: 1 addition & 1 deletion packages/webiny/src/infra/features/AdminPulumi.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from "@webiny/project/abstractions/features/pulumi/AdminPulumi.js";
export * from "@webiny/project-aws/abstractions/features/pulumi/AdminPulumi.js";
2 changes: 1 addition & 1 deletion packages/webiny/src/infra/features/ApiPulumi.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from "@webiny/project/abstractions/features/pulumi/ApiPulumi.js";
export * from "@webiny/project-aws/abstractions/features/pulumi/ApiPulumi.js";
2 changes: 1 addition & 1 deletion packages/webiny/src/infra/features/CorePulumi.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from "@webiny/project/abstractions/features/pulumi/CorePulumi.js";
export * from "@webiny/project-aws/abstractions/features/pulumi/CorePulumi.js";