@platform/cell.schema
Version:
URI and database schemas for the `cell.os`.
33 lines (32 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ManifestHash = void 0;
var common_1 = require("../common");
var sha256 = common_1.Hash.sha256;
exports.ManifestHash = {
sha256: sha256,
files: function (input) {
var files = Array.isArray(input) ? input : input.files;
var hashes = files.filter(Boolean).map(function (file) { return file.filehash; });
sort(hashes);
return sha256(hashes);
},
module: function (info, files) {
var fileshash = exports.ManifestHash.files(files);
return {
files: fileshash,
module: sha256({ module: info, files: fileshash }),
};
},
dir: function (info, files) {
var fileshash = exports.ManifestHash.files(files);
return {
files: fileshash,
dir: sha256({ dir: info, files: fileshash }),
};
},
};
function sort(hashes) {
var collator = new Intl.Collator('en', { usage: 'sort' });
hashes.sort(function (a, b) { return collator.compare(a, b); });
}