mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-25 13:55:18 +02:00
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
/**
|
|
* Create Workflows Zip Script
|
|
*
|
|
* Packages all workflow JSON files and manifest.json from test-fixtures/real-workflows/
|
|
* into a single zip file (public_published_templates.zip) for committing to the repo.
|
|
*
|
|
* Usage: pnpm create-workflows-zip
|
|
*/
|
|
|
|
import AdmZip from 'adm-zip';
|
|
import * as fs from 'fs';
|
|
import * as path from 'path';
|
|
|
|
const REAL_WORKFLOWS_DIR = path.resolve(__dirname, '../test-fixtures/real-workflows');
|
|
const ZIP_PATH = path.join(REAL_WORKFLOWS_DIR, 'public_published_templates.zip');
|
|
const MANIFEST_PATH = path.join(REAL_WORKFLOWS_DIR, 'manifest.json');
|
|
|
|
function createWorkflowsZip(): void {
|
|
// Verify manifest exists
|
|
if (!fs.existsSync(MANIFEST_PATH)) {
|
|
console.error('Error: manifest.json not found at', MANIFEST_PATH);
|
|
console.error('Run `pnpm fetch-workflows` first to download workflows from the API.');
|
|
process.exit(1);
|
|
}
|
|
|
|
const zip = new AdmZip();
|
|
|
|
// Add manifest.json first
|
|
zip.addLocalFile(MANIFEST_PATH);
|
|
|
|
// Add all workflow JSON files
|
|
const files = fs.readdirSync(REAL_WORKFLOWS_DIR);
|
|
let count = 0;
|
|
|
|
for (const file of files) {
|
|
if (file.endsWith('.json') && file !== 'manifest.json') {
|
|
const filePath = path.join(REAL_WORKFLOWS_DIR, file);
|
|
zip.addLocalFile(filePath);
|
|
count++;
|
|
}
|
|
}
|
|
|
|
if (count === 0) {
|
|
console.error('Error: No workflow JSON files found in', REAL_WORKFLOWS_DIR);
|
|
console.error('Run `pnpm fetch-workflows` first to download workflows from the API.');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Write the zip file
|
|
zip.writeZip(ZIP_PATH);
|
|
console.log(`Created: ${ZIP_PATH}`);
|
|
console.log(`Contents: ${count} workflows + manifest.json`);
|
|
}
|
|
|
|
createWorkflowsZip();
|