feat: add components
This commit is contained in:
48
components/component-hashjs.js
Normal file
48
components/component-hashjs.js
Normal file
@@ -0,0 +1,48 @@
|
||||
var COMMENT_HASH_TAG = '//HASH:';
|
||||
|
||||
var CollectionUtil = Packages.me.hatter.tools.commons.collection.CollectionUtil;
|
||||
|
||||
var __containsCommentHashTag = (list) => {
|
||||
for (var i = (list.size() - 1); i >= 0; i--) {
|
||||
var l = list.get(i);
|
||||
if ($STR(l.trim()) != '') {
|
||||
return l.startsWith(COMMENT_HASH_TAG);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
var __getDigestJSON = (list) => {
|
||||
var digestJSON = null;
|
||||
if (__containsCommentHashTag(list)) {
|
||||
var last = CollectionUtil.last(list);
|
||||
while ((list.size() > 0) && ($STR(last.trim()) == '')) { CollectionUtil.removeLast(list); last = CollectionUtil.last(list); }
|
||||
if (last.startsWith(COMMENT_HASH_TAG)) {
|
||||
CollectionUtil.removeLast(list);
|
||||
digestJSON = JSON.parse(last.substring(COMMENT_HASH_TAG.length));
|
||||
}
|
||||
}
|
||||
return digestJSON;
|
||||
};
|
||||
|
||||
var __calcSHA256Hex = (list) => {
|
||||
return $STR($$.digests().sha256().digest($$.bytes($ARR(list).join('\n'))).asHex());
|
||||
};
|
||||
|
||||
var __checkSHA256 = (list) => {
|
||||
var digestJSON = __getDigestJSON(list);
|
||||
return digestJSON && (digestJSON.SHA256 == __calcSHA256Hex(list));
|
||||
};
|
||||
|
||||
var checkBytesSHA256 = (bytes) => {
|
||||
return __checkSHA256(bytes.list());
|
||||
};
|
||||
|
||||
if (typeof exports == 'object') {
|
||||
exports.__containsCommentHashTag = __containsCommentHashTag;
|
||||
exports.__getDigestJSON = __getDigestJSON;
|
||||
exports.__calcSHA256Hex = __calcSHA256Hex;
|
||||
exports.__checkSHA256 = __checkSHA256;
|
||||
exports.COMMENT_HASH_TAG = COMMENT_HASH_TAG;
|
||||
exports.checkBytesSHA256 = checkBytesSHA256;
|
||||
}
|
||||
Reference in New Issue
Block a user