@fy-stack/fullstack-construct 0.0.147-300-preview → 0.0.147-alpha.302

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.
@@ -6,16 +6,16 @@ import { DatabaseConstruct } from '@fy-stack/database-construct';
6
6
  import { EventConstruct } from '@fy-stack/event-construct';
7
7
  import { SecretsConstruct } from '@fy-stack/secret-construct';
8
8
  import { StorageConstruct } from '@fy-stack/storage-construct';
9
- import { AppGrant, Attach, Grant } from '@fy-stack/types';
10
9
  import * as ec2 from 'aws-cdk-lib/aws-ec2';
11
10
  import * as iam from 'aws-cdk-lib/aws-iam';
12
11
  import { Construct } from 'constructs';
13
- import { AppAttachment, FullStackConstructProps } from './types';
12
+ import { FullStackConstructProps } from './types';
14
13
  /**
15
14
  *
16
15
  */
17
16
  export declare class FullStackConstruct extends Construct {
18
- vpc: ec2.IVpc;
17
+ private props;
18
+ vpc?: ec2.IVpc;
19
19
  owner?: iam.IUser | iam.IRole;
20
20
  auth?: AuthConstruct;
21
21
  storage?: StorageConstruct;
@@ -29,8 +29,9 @@ export declare class FullStackConstruct extends Construct {
29
29
  api?: ApiGatewayConstruct;
30
30
  secret: SecretsConstruct;
31
31
  constructor(scope: Construct, id: string, props: FullStackConstructProps);
32
- fromAttachments(attach: Attach, attachment?: AppAttachment): void;
33
- fromGrants(grant: Grant, grants?: AppGrant[]): void;
34
- ownerFromArn(ownerArn?: string): iam.IUser | iam.IRole | undefined;
32
+ private getVpc;
33
+ private fromAttachments;
34
+ private fromGrants;
35
+ private ownerFromArn;
35
36
  }
36
37
  //# sourceMappingURL=fullstack-construct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fullstack-construct.d.ts","sourceRoot":"","sources":["../../src/lib/fullstack-construct.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IACxC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB;IA+NxE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa;IAU1D,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE;IAW5C,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM;CAgB/B"}
1
+ {"version":3,"file":"fullstack-construct.d.ts","sourceRoot":"","sources":["../../src/lib/fullstack-construct.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAiB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAkB7C,OAAO,CAAC,KAAK;IAjBR,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;gBAG9B,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACF,KAAK,EAAE,uBAAuB;IA2NxC,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;CAgBrB"}
@@ -20,6 +20,7 @@ const constructs_1 = require("constructs");
20
20
  *
21
21
  */
22
22
  class FullStackConstruct extends constructs_1.Construct {
23
+ props;
23
24
  vpc;
24
25
  owner;
25
26
  auth;
@@ -35,12 +36,13 @@ class FullStackConstruct extends constructs_1.Construct {
35
36
  secret;
36
37
  constructor(scope, id, props) {
37
38
  super(scope, id);
39
+ this.props = props;
38
40
  this.owner = this.ownerFromArn(props.ownerArn);
39
41
  const logGroup = new aws_logs_1.LogGroup(this, 'AppLogs', {
40
42
  logGroupName: `${props.name}-${props.environment}-logs`,
41
43
  retention: aws_logs_1.RetentionDays.ONE_WEEK,
44
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
42
45
  });
43
- this.vpc = ec2.Vpc.fromLookup(this, 'VPC', props.vpcId ? { vpcId: props.vpcId } : { isDefault: true });
44
46
  if (props.auth) {
45
47
  this.auth = new auth_construct_1.AuthConstruct(this, 'AuthConstruct', {
46
48
  groups: props.auth.groups,
@@ -53,12 +55,12 @@ class FullStackConstruct extends constructs_1.Construct {
53
55
  if (props.database) {
54
56
  this.database = new database_construct_1.DatabaseConstruct(this, 'DatabaseConstruct', {
55
57
  ...props.database,
56
- vpcId: this.vpc.vpcId,
58
+ vpcId: this.getVpc().vpcId,
57
59
  });
58
60
  }
59
61
  if (props.ecs) {
60
62
  this.ecs = new app_construct_1.EcsConstruct(this, 'EcsConstruct', {
61
- vpc: this.vpc,
63
+ vpc: this.getVpc(),
62
64
  environmentPath: path.join('/', props.name, '/', props.environment),
63
65
  environment: props.environment,
64
66
  logGroup,
@@ -67,7 +69,7 @@ class FullStackConstruct extends constructs_1.Construct {
67
69
  }
68
70
  if (props.lambda) {
69
71
  this.lambda = new app_construct_1.LambdaConstruct(this, 'LambdaConstruct', {
70
- vpc: this.vpc,
72
+ vpc: this.getVpc.bind(this),
71
73
  apps: props.lambda,
72
74
  logGroup,
73
75
  });
@@ -204,6 +206,12 @@ class FullStackConstruct extends constructs_1.Construct {
204
206
  }
205
207
  }
206
208
  }
209
+ getVpc() {
210
+ if (this.vpc)
211
+ return this.vpc;
212
+ this.vpc = ec2.Vpc.fromLookup(this, 'VPC', this.props.vpcId ? { vpcId: this.props.vpcId } : { isDefault: true });
213
+ return this.vpc;
214
+ }
207
215
  fromAttachments(attach, attachment) {
208
216
  const builtAttachment = Object.entries(attachment ?? {})
209
217
  .map(([key]) => [key, this[key]])
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@fy-stack/fullstack-construct",
3
- "version": "0.0.147-300-preview",
3
+ "version": "0.0.147-alpha.302",
4
4
  "repository": "https://github.com/festusyuma/fy-stack",
5
5
  "dependencies": {
6
- "@fy-stack/apigateway-construct": "0.0.147-300-preview",
7
- "@fy-stack/app-construct": "0.0.147-300-preview",
8
- "@fy-stack/auth-construct": "0.0.147-300-preview",
9
- "@fy-stack/cdn-construct": "0.0.147-300-preview",
10
- "@fy-stack/database-construct": "0.0.147-300-preview",
11
- "@fy-stack/event-construct": "0.0.147-300-preview",
12
- "@fy-stack/secret-construct": "0.0.147-300-preview",
13
- "@fy-stack/storage-construct": "0.0.147-300-preview",
6
+ "@fy-stack/apigateway-construct": "0.0.147-alpha.302",
7
+ "@fy-stack/app-construct": "0.0.147-alpha.302",
8
+ "@fy-stack/auth-construct": "0.0.147-alpha.302",
9
+ "@fy-stack/cdn-construct": "0.0.147-alpha.302",
10
+ "@fy-stack/database-construct": "0.0.147-alpha.302",
11
+ "@fy-stack/event-construct": "0.0.147-alpha.302",
12
+ "@fy-stack/secret-construct": "0.0.147-alpha.302",
13
+ "@fy-stack/storage-construct": "0.0.147-alpha.302",
14
14
  "tslib": "^2.3.0",
15
- "@fy-stack/types": "0.0.147-300-preview"
15
+ "@fy-stack/types": "0.0.147-alpha.302"
16
16
  },
17
17
  "peerDependencies": {
18
- "aws-cdk-lib": "^2.198.0",
19
- "constructs": "^10.4.2"
18
+ "aws-cdk-lib": "^2.229.1",
19
+ "constructs": "^10.4.3"
20
20
  },
21
21
  "type": "commonjs",
22
22
  "main": "./dist/index.js",