Skip to content

Commit a848895

Browse files
committed
feat: adds token support to the naming strategy
1 parent 59687f9 commit a848895

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/naming-strategy/naming-strategy.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { paramCase } from 'param-case';
2+
import { IStaticWebsitePreviewNamingToken } from './tokens';
23

34
export interface IStaticWebsitePreviewNamingStrategy {
45
/**
@@ -15,6 +16,13 @@ export class StaticWebsitePreviewNamingStrategy implements IStaticWebsitePreview
1516
return new StaticWebsitePreviewNamingStrategy(name);
1617
}
1718

19+
/**
20+
* Crafts a name from an array of token values.
21+
*/
22+
static fromTokens(...tokens: IStaticWebsitePreviewNamingToken[]): IStaticWebsitePreviewNamingStrategy {
23+
return new StaticWebsitePreviewNamingStrategy(tokens.map(({ token }) => token).join('-'));
24+
}
25+
1826
/**
1927
* Sub-domain that will be used to host the preview.
2028
*/

src/naming-strategy/tokens.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Aws } from 'aws-cdk-lib';
2+
3+
export interface IStaticWebsitePreviewNamingToken {
4+
token: string;
5+
}
6+
7+
export class StaticWebsitePreviewNamingToken implements IStaticWebsitePreviewNamingToken {
8+
static fromString(val: string): IStaticWebsitePreviewNamingToken {
9+
return new StaticWebsitePreviewNamingToken(val);
10+
}
11+
12+
static get AWS_ACCOUNT_ID(): IStaticWebsitePreviewNamingToken {
13+
return new StaticWebsitePreviewNamingToken(Aws.ACCOUNT_ID);
14+
}
15+
16+
static get AWS_REGION(): IStaticWebsitePreviewNamingToken {
17+
return new StaticWebsitePreviewNamingToken(Aws.REGION);
18+
}
19+
20+
static get AWS_STACK_NAME(): IStaticWebsitePreviewNamingToken {
21+
return new StaticWebsitePreviewNamingToken(Aws.STACK_NAME);
22+
}
23+
24+
constructor (public readonly token: string) {}
25+
}

0 commit comments

Comments
 (0)