"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveChecksumRuntimeConfig = exports.getChecksumConfiguration = exports.AlgorithmId = void 0; var AlgorithmId; (function (AlgorithmId) { AlgorithmId["MD5"] = "md5"; AlgorithmId["CRC32"] = "crc32"; AlgorithmId["CRC32C"] = "crc32c"; AlgorithmId["SHA1"] = "sha1"; AlgorithmId["SHA256"] = "sha256"; })(AlgorithmId = exports.AlgorithmId || (exports.AlgorithmId = {})); const getChecksumConfiguration = (runtimeConfig) => { const checksumAlgorithms = []; if (runtimeConfig.sha256 !== undefined) { checksumAlgorithms.push({ algorithmId: () => AlgorithmId.SHA256, checksumConstructor: () => runtimeConfig.sha256, }); } if (runtimeConfig.md5 != undefined) { checksumAlgorithms.push({ algorithmId: () => AlgorithmId.MD5, checksumConstructor: () => runtimeConfig.md5, }); } return { _checksumAlgorithms: checksumAlgorithms, addChecksumAlgorithm(algo) { this._checksumAlgorithms.push(algo); }, checksumAlgorithms() { return this._checksumAlgorithms; }, }; }; exports.getChecksumConfiguration = getChecksumConfiguration; const resolveChecksumRuntimeConfig = (clientConfig) => { const runtimeConfig = {}; clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); }); return runtimeConfig; }; exports.resolveChecksumRuntimeConfig = resolveChecksumRuntimeConfig;