Skip to content

Commit 5e46a97

Browse files
committed
Added unique suffix for static assets during publishing.
1 parent 6f2061a commit 5e46a97

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/media/mediaPermalinkResolver.publish.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as MediaUtils from "./mediaUtils";
22
import { IMediaService } from "./IMediaService";
33
import { IPermalinkResolver, HyperlinkModel } from "../permalinks";
4-
import { MediaContract } from ".";
4+
import { MediaContract } from "./mediaContract";
55
import { ContentItemContract } from "../contentModel";
66
import { HyperlinkContract } from "../editing";
77

@@ -56,7 +56,6 @@ export class MediaPermalinkResolver implements IPermalinkResolver {
5656
return hyperlinkModel;
5757
}
5858

59-
6059
public async getHyperlinkByTargetKey(targetKey: string): Promise<HyperlinkModel> {
6160
if (!targetKey) {
6261
throw new Error("Target key cannot be null or empty.");

src/publishing/htmlPagePublisher.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { SourceLink } from "./sourceLink";
1111

1212
export class HtmlPagePublisher {
1313
private subresourceIntegrityEnabled: boolean;
14+
private staticAssetSuffix: string;
1415

1516
constructor(
1617
private readonly htmlDocumentProvider: HtmlDocumentProvider,
@@ -23,6 +24,7 @@ export class HtmlPagePublisher {
2324

2425
private async loadSettings(): Promise<void> {
2526
this.subresourceIntegrityEnabled = !!await this.settingsProvider.getSetting<boolean>("features/subresourceIntegrity");
27+
this.staticAssetSuffix = await this.settingsProvider.getSetting("staticAssetSuffix");
2628
}
2729

2830
private scaffoldPageDocument(document: Document): void {
@@ -31,8 +33,8 @@ export class HtmlPagePublisher {
3133
document.head.appendChild(charsetMetaElement);
3234

3335
this.appendMetaTag(document, "viewport", "width=device-width,minimum-scale=1,initial-scale=1");
34-
this.appendStyleLink(document, { src: "/styles/theme.css" });
35-
this.appendScriptLink(document, { src: "/scripts/theme.js" });
36+
this.appendStyleLink(document, { src: `/styles/theme.${this.staticAssetSuffix}.css` });
37+
this.appendScriptLink(document, { src: `/scripts/theme.${this.staticAssetSuffix}.js` });
3638
}
3739

3840
private appendMetaTag(document: Document, name: string, content: string): void {

src/utils.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ export function guid(): string {
1414
s4() + "-" + s4() + s4() + s4();
1515
}
1616

17-
export function identifier(): string {
17+
export function identifier(length: number = 5): string {
1818
let result = "";
19-
const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
19+
const possible = "abcdefghijklmnopqrstuvwxyz0123456789";
2020

21-
for (let i = 0; i < 5; i++) {
21+
for (let i = 0; i < length; i++) {
2222
result += possible.charAt(Math.floor(Math.random() * possible.length));
2323
}
2424

@@ -396,4 +396,11 @@ export function truncate(value: string, length: number = 100): string {
396396
export function debounce(func: () => Promise<void>): () => Promise<void> {
397397
let promise: Promise<void>;
398398
return () => promise ? promise : promise = func();
399+
}
400+
401+
export function appendSuffixToFileName(fileName: string, suffix: string): string {
402+
const extensionPosition = fileName.lastIndexOf(".");
403+
const suffixedFileName = [fileName.slice(0, extensionPosition), `.${suffix}`, fileName.slice(extensionPosition)].join("");
404+
405+
return suffixedFileName
399406
}

0 commit comments

Comments
 (0)