@commercelayer/cli
Version:
45 lines (44 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.patchCommand = void 0;
const cli_core_1 = require("@commercelayer/cli-core");
const provisioning_sdk_1 = require("@commercelayer/provisioning-sdk");
const PROVISIONING = true;
const provisioningCommands = ['retrieve', 'list', 'create', 'update', 'delete', 'get', 'relationship', 'fetch'];
const patchCommand = (argv) => {
const cmdIdx = process.argv.findIndex(a => !a.startsWith('/'));
const cmd = process.argv[cmdIdx];
const res = process.argv.find(a => !a.startsWith('/') && (a !== cmd));
// Check provisioning command
if (PROVISIONING && provisioningCommands.includes(cmd))
return patchProvisioningCommand(argv, cmd, cmdIdx, res);
// Check plugins command
if (['install', 'uninstall'].includes(cmd))
return patchPluginCommand(argv, cmd, cmdIdx, res);
// Check update command
if (['update'].includes(cmd))
return patchUpdateCommand(argv, cmd, cmdIdx, res);
return argv;
};
exports.patchCommand = patchCommand;
const patchPluginCommand = (argv, cmd, cmdIdx, res) => {
argv[cmdIdx] = `plugins:${cmd}`;
return argv;
};
const patchProvisioningCommand = (argv, cmd, cmdIdx, res) => {
// Check provisioning resource
if (res) {
const provisioningResources = [...provisioning_sdk_1.CommerceLayerProvisioningStatic.resources()];
provisioningResources.splice(provisioningResources.indexOf('organizations'), 1);
provisioningResources.splice(provisioningResources.indexOf('versions'), 1);
const provisioningResource = provisioningResources.includes(res) || (provisioningResources.includes(cli_core_1.clText.pluralize(res)));
if (provisioningResource)
process.argv[cmdIdx] = `provisioning:${cmd}`;
}
return argv;
};
const patchUpdateCommand = (argv, cmd, cmdIdx, res) => {
if ((cmd === 'update') && !res)
argv[cmdIdx] = `cli:${cmd}`;
return argv;
};