@contract-case/case-core
Version:
Core functionality for the ContractCase contract testing suite
33 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.downloadCaseContracts = void 0;
const downloadContractsFromUrls = (contractUrls, broker, context) => Promise.all(contractUrls.map((contractUrl) => {
context.logger.debug(`Downloading contract for '${contractUrl.name}' from ${contractUrl.href}`);
return broker
.downloadContract(contractUrl.href, context)
.then((contractData) => ({
contractData,
name: contractUrl.name,
}));
}));
const filterNonCaseContracts = (contracts, context) => {
const nonCaseContracts = contracts.filter((c) => !('contractType' in c.contractData &&
c.contractData.contractType === 'case::contract'));
nonCaseContracts.forEach((c) => {
context.logger.debug(`Skipping contract '${c.name}' as it does not appear to be a ContractCase Contract`);
});
return nonCaseContracts;
};
const downloadCaseContracts = async (contractUrls, broker, context) => {
const contracts = await downloadContractsFromUrls(contractUrls, broker, context);
const nonCaseContracts = filterNonCaseContracts(contracts, context);
const caseContracts = contracts.filter((c) => 'contractType' in c.contractData &&
c.contractData.contractType === 'case::contract');
if (caseContracts.length === 0) {
context.logger.warn(`No ContractCase contracts to verify. There were ${nonCaseContracts.length} non-case contracts.`);
context.logger.warn('You can see more information by re-running this task with logLevel: debug or lower');
}
return caseContracts;
};
exports.downloadCaseContracts = downloadCaseContracts;
//# sourceMappingURL=downloadCaseContracts.js.map