Files
Azornes-Comfyui-Model-Resolver/web/resolver/utils/hash_utils.js
T

29 lines
943 B
JavaScript

export function getSha256Candidates(value = {}) {
const hashes = value.hashes && typeof value.hashes === 'object'
? value.hashes
: {};
return [value.sha256, value.hash, hashes.SHA256, hashes.sha256];
}
export function getSha256Field(value = {}, { lowercase = false } = {}) {
const [sha256, hash, upperCaseSha256, lowerCaseSha256] = getSha256Candidates(value);
const result = String(
sha256 || hash || upperCaseSha256 || lowerCaseSha256 || ''
).trim();
return lowercase ? result.toLowerCase() : result;
}
export function normalizeSha256(value = '') {
let text = String(value || '').trim();
text = text.replace(/^sha256[:=]/i, '').trim().toLowerCase();
return /^[a-f0-9]{64}$/.test(text) ? text : '';
}
export function firstValidSha256(...values) {
for (const value of values) {
const hash = normalizeSha256(value);
if (hash) return hash;
}
return '';
}