Use the project name in the export filename

This commit is contained in:
2025-07-13 16:26:37 -04:00
parent 28bbce8b79
commit 437c41ec51

View File

@ -76,12 +76,32 @@ const ArtifactExporter = {
return finalMap; return finalMap;
}, },
toSnakeCase(str) {
return str
.replace(/([a-z])([A-Z])/g, '$1_$2') // camelCase to snake_case
.replace(/[\s\-\.]+/g, '_') // spaces, hyphens, dots to underscores
.replace(/[^\w]/g, '') // remove non-word characters
.toLowerCase() // convert to lowercase
.replace(/^_+|_+$/g, '') // trim leading/trailing underscores
.replace(/_+/g, '_'); // collapse multiple underscores
},
generateZipFilename() { generateZipFilename() {
const now = new Date(); const now = new Date();
const timestamp = now.getFullYear() + '-' + const timestamp = now.getFullYear() + '-' +
String(now.getMonth() + 1).padStart(2, '0') + '-' + String(now.getMonth() + 1).padStart(2, '0') + '-' +
String(now.getDate()).padStart(2, '0'); String(now.getDate()).padStart(2, '0') + '_' +
return `${timestamp}_claude-artifacts.zip`; String(now.getHours()).padStart(2, '0') + '-' +
String(now.getMinutes()).padStart(2, '0') + '-' +
String(now.getSeconds()).padStart(2, '0');
// Get project name and convert to snake_case
const rawProjectName = ProjectMeta.getProjectName();
const projectName = (rawProjectName && rawProjectName.trim())
? this.toSnakeCase(rawProjectName.trim())
: 'claude_artifacts';
return `${timestamp}_${projectName}.zip`;
}, },
addFilesToZip(zip, finalMap) { addFilesToZip(zip, finalMap) {