@wolsok/spa-cdk-stack 1.2.0 → 1.2.1

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 CHANGED
@@ -6,7 +6,8 @@ It creates an S3 bucket and a CloudFront distribution to serve the SPA.
6
6
  Features are:
7
7
 
8
8
  - Deployment of your build files to the S3 bucket.
9
- - Cloudfront invalidation with deployment
9
+ - CloudFront invalidation with every deployment; the deploy only waits for the
10
+ one issued with index.html, the last upload
10
11
  - Creation of a certificate for your domain. CloudFront only takes certificates
11
12
  from us-east-1, so in any other region `SpaStack` puts it into a second stack,
12
13
  `<name>Certificate` in us-east-1, referenced across regions. Deploy such an
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wolsok/spa-cdk-stack",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "repository": "https://github.com/WolfSoko/wol-sok-mono/tree/main/libs/public/spa-cdk-stack",
5
5
  "dependencies": {
6
6
  "tslib": "^2.3.0",
@@ -63,6 +63,8 @@ export declare class SpaConstruct extends Construct {
63
63
  * or they are uploaded twice.
64
64
  */
65
65
  addExtraAssets(assets: ISource[], cacheControl?: CacheControl, contentType?: string): void;
66
+ /** Adds a deployment that runs after the uploads so far and before index.html. */
67
+ private addUpload;
66
68
  private createBucket;
67
69
  private createCertificate;
68
70
  private createDistribution;
@@ -72,18 +72,21 @@ export class SpaConstruct extends Construct {
72
72
  // again to restore it. Old bundles stay for tabs still running them.
73
73
  // The first deployment owns the handler that all of them share, so the
74
74
  // build output comes first and index.html, which waits for the rest, second.
75
+ // Every deployment invalidates the distribution when its content changed,
76
+ // but only the last one, index.html, waits for its invalidation: one wait
77
+ // at the end instead of one per deployment.
75
78
  this.lastUpload = this.createBucketDeployment([
76
79
  Source.asset(buildOutputPath, {
77
80
  exclude: ['index.html', ...overrides.flatMap(({ files }) => files)],
78
81
  }),
79
- ], CacheControl.maxAge(Duration.days(365)), false, this.bucket, this.distribution);
82
+ ]);
80
83
  this.bucketDeployments.push(this.lastUpload);
81
84
  // index.html goes last, once every file it points at is uploaded.
82
- this.indexDeployment = this.createBucketDeployment([Source.asset(buildOutputPath, { exclude: ['**', '!index.html'] })], CacheControl.noCache(), false, this.bucket, this.distribution);
85
+ this.indexDeployment = this.createBucketDeployment([Source.asset(buildOutputPath, { exclude: ['**', '!index.html'] })], { cacheControl: CacheControl.noCache() }, true);
83
86
  this.bucketDeployments.push(this.indexDeployment);
84
87
  this.indexDeployment.node.addDependency(this.lastUpload);
85
88
  for (const { files, cacheControl, contentType } of overrides) {
86
- this.addExtraAssets([Source.asset(buildOutputPath, { exclude: onlyInclude(files) })], cacheControl, contentType);
89
+ this.addUpload([Source.asset(buildOutputPath, { exclude: onlyInclude(files) })], { cacheControl, contentType });
87
90
  }
88
91
  }
89
92
  /**
@@ -92,12 +95,16 @@ export class SpaConstruct extends Construct {
92
95
  * buildOutputPath; for those that are, use noCacheFiles or cacheOverrides,
93
96
  * or they are uploaded twice.
94
97
  */
95
- addExtraAssets(assets, cacheControl = CacheControl.maxAge(Duration.days(365)), contentType) {
96
- const extraAssetsDeployment = this.createBucketDeployment(assets, cacheControl, false, this.bucket, this.distribution, contentType);
97
- extraAssetsDeployment.node.addDependency(this.lastUpload);
98
- this.lastUpload = extraAssetsDeployment;
99
- this.bucketDeployments.push(extraAssetsDeployment);
100
- this.indexDeployment.node.addDependency(extraAssetsDeployment);
98
+ addExtraAssets(assets, cacheControl, contentType) {
99
+ this.addUpload(assets, { cacheControl, contentType });
100
+ }
101
+ /** Adds a deployment that runs after the uploads so far and before index.html. */
102
+ addUpload(sources, options) {
103
+ const deployment = this.createBucketDeployment(sources, options);
104
+ deployment.node.addDependency(this.lastUpload);
105
+ this.lastUpload = deployment;
106
+ this.bucketDeployments.push(deployment);
107
+ this.indexDeployment.node.addDependency(deployment);
101
108
  }
102
109
  createBucket(siteDomain, removalPolicy = RemovalPolicy.DESTROY) {
103
110
  // Content bucket
@@ -189,17 +196,17 @@ export class SpaConstruct extends Construct {
189
196
  });
190
197
  new CfnOutput(this, `${this.spaName}-ARecord`, { value: siteDomain });
191
198
  }
192
- createBucketDeployment(sources, cacheControl = CacheControl.maxAge(Duration.days(365)), prune, destinationBucket, distribution, contentType) {
193
- // Deploy site contents to S3 spaBucket
199
+ createBucketDeployment(sources, { cacheControl = CacheControl.maxAge(Duration.days(365)), contentType, } = {}, waitForDistributionInvalidation = false) {
194
200
  return new BucketDeployment(this, 'DeployWithInvalidation' + (this.bucketDeployments.length + 1), {
195
201
  sources,
196
- destinationBucket,
197
- distribution,
198
- prune,
199
- memoryLimit: 1024,
202
+ destinationBucket: this.bucket,
203
+ distribution: this.distribution,
200
204
  distributionPaths: ['/*'],
205
+ waitForDistributionInvalidation,
206
+ prune: false,
207
+ memoryLimit: 1024,
201
208
  cacheControl: [cacheControl],
202
- ...(contentType ? { contentType } : {}),
209
+ contentType,
203
210
  });
204
211
  }
205
212
  extractDomains(domainName) {
@@ -1 +1 @@
1
- {"version":3,"file":"spa.construct.js","sourceRoot":"","sources":["../../../../../../../libs/public/spa-cdk-stack/src/lib/spa/spa.construct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spa.construct.js","sourceRoot":"","sources":["../../../../../../../libs/public/spa-cdk-stack/src/lib/spa/spa.construct.ts"],"names":[],"mappings":"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"}