File size: 1,009 Bytes
5da4770 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | /**
* Constructs a preview URL for HTML files in the sandbox environment.
* Properly handles URL encoding of file paths by encoding each path segment individually.
*
* @param sandboxUrl - The base URL of the sandbox
* @param filePath - The path to the HTML file (can include /workspace/ prefix)
* @returns The properly encoded preview URL, or undefined if inputs are invalid
*/
export function constructHtmlPreviewUrl(
sandboxUrl: string | undefined,
filePath: string | undefined,
): string | undefined {
if (!sandboxUrl || !filePath) {
return undefined;
}
// Remove /workspace/ prefix if present
const processedPath = filePath.replace(/^\/workspace\//, '');
// Split the path into segments and encode each segment individually
const pathSegments = processedPath
.split('/')
.map((segment) => encodeURIComponent(segment));
// Join the segments back together with forward slashes
const encodedPath = pathSegments.join('/');
return `${sandboxUrl}/${encodedPath}`;
}
|