UNPKG

sf-decomposer

Version:

Break down large Salesforce metadata files into smaller, more manageable files for version control and then recreate deployment-compatible files.

50 lines 1.83 kB
'use strict'; import { readFile } from 'node:fs/promises'; import { resolve } from 'node:path'; import DecomposerRecompose from '../commands/decomposer/recompose.js'; import { getRepoRoot } from '../service/getRepoRoot.js'; import { HOOK_CONFIG_JSON } from '../helpers/constants.js'; export const prerun = async function (options) { if (!['project:deploy:validate', 'project:deploy:start'].includes(options.Command.id)) { return; } let configFile; const { repoRoot } = await getRepoRoot(); if (!repoRoot) { return; } const configPath = resolve(repoRoot, HOOK_CONFIG_JSON); try { const jsonString = await readFile(configPath, 'utf-8'); configFile = JSON.parse(jsonString); } catch (error) { return; } const metadataTypes = configFile.metadataSuffixes || '.'; const postpurge = configFile.postPurge || false; const ignorePackageDirs = configFile.ignorePackageDirectories || ''; if (metadataTypes.trim() === '.') { return; } const metadataTypesArray = metadataTypes.split(','); const commandArgs = []; for (const metadataType of metadataTypesArray) { const sanitizedMetadataType = metadataType.replace(/,/g, ''); commandArgs.push('--metadata-type'); commandArgs.push(sanitizedMetadataType); } if (ignorePackageDirs.trim() !== '') { const ignorePackageDirArray = ignorePackageDirs.split(','); for (const dirs of ignorePackageDirArray) { const sanitizedDir = dirs.replace(/,/g, ''); commandArgs.push('--ignore-package-directory'); commandArgs.push(sanitizedDir); } } if (postpurge) { commandArgs.push('--postpurge'); } await DecomposerRecompose.run(commandArgs); }; //# sourceMappingURL=prerun.js.map