sf-decomposer
Version:
Split large Salesforce metadata files into version-control-friendly pieces and rebuild deployment-ready files.
23 lines • 1.02 kB
JavaScript
/* eslint-disable no-await-in-loop */
;
import { join } from 'node:path';
import { readdir, rename } from 'node:fs/promises';
import { WORKFLOW_SUFFIX_MAPPING, CONCURRENCY_LIMITS } from '../../helpers/constants.js';
import { pLimit } from '../../helpers/pLimit.js';
export async function renameWorkflows(directory) {
const files = await readdir(directory, { recursive: true });
// Limit concurrent file rename operations
const limit = pLimit(CONCURRENCY_LIMITS.FILE_OPERATIONS);
const tasks = files.map((file) => limit(async () => {
for (const [suffix, newSuffix] of Object.entries(WORKFLOW_SUFFIX_MAPPING)) {
if (file.includes(suffix)) {
const oldFilePath = join(directory, file);
const newFilePath = join(directory, file.replace(suffix, newSuffix));
await rename(oldFilePath, newFilePath);
break;
}
}
}));
await Promise.all(tasks);
}
//# sourceMappingURL=renameWorkflows.js.map