@cap-js-community/sap-afc-sdk
Version:
SAP Advanced Financial Closing SDK for CDS
76 lines (70 loc) • 1.83 kB
JavaScript
/* eslint-disable no-console */
;
const { adjustJSON, adjustYAMLAllDocuments, isNode } = require("../common/util");
const YAML = require("yaml");
const Mock = {
Basic: {
min: 0,
max: 10,
default: "completed",
},
Advanced: {
min: 0,
max: 10,
default: "completed",
status: {
completed: 0.5,
completedWithWarning: 0.2,
completedWithError: 0.2,
failed: 0.1,
},
},
};
module.exports = (options) => {
if (isNode(options)) {
processNode(options);
} else {
processJava(options);
}
};
function processNode(options) {
try {
adjustJSON("package.json", (json) => {
if (options.xremove) {
delete json.cds?.requires?.["sap-afc-sdk"]?.mockProcessing;
} else {
json.cds ??= {};
json.cds.requires ??= {};
json.cds.requires["sap-afc-sdk"] ??= {};
if (options.advanced) {
json.cds.requires["sap-afc-sdk"].mockProcessing = Mock.Advanced;
} else {
json.cds.requires["sap-afc-sdk"].mockProcessing = Mock.Basic;
}
}
});
} catch (err) {
console.error(err.message);
}
}
function processJava(options) {
adjustYAMLAllDocuments("srv/src/main/resources/application.yaml", (yamls) => {
let yaml = yamls.find((yaml) => !yaml.getIn(["spring", "config.activate.on-profile"]));
if (!yaml) {
yaml = new YAML.Document();
yamls.unshift(yaml);
}
if (yaml.getIn(["sap-afc-sdk", "mockProcessing"])) {
if (options.xremove) {
yaml.deleteIn(["sap-afc-sdk", "mockProcessing"]);
}
} else {
if (options.advanced) {
yaml.setIn(["sap-afc-sdk", "mockProcessing"], Mock.Advanced);
} else {
yaml.setIn(["sap-afc-sdk", "mockProcessing"], Mock.Basic);
}
}
return yamls;
});
}