@onesy/utils
Version:
22 lines (21 loc) • 1.12 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sha256_1 = __importDefault(require("crypto-js/sha256"));
const to_1 = __importDefault(require("./to"));
const isEnvironment_1 = __importDefault(require("./isEnvironment"));
const fileToValue_1 = __importDefault(require("./fileToValue"));
const optionsDefault = {
withPrefix: true,
};
const hashFile = async (value_, options_ = {}) => {
const options = Object.assign(Object.assign({}, optionsDefault), options_);
let value = value_;
value = (0, isEnvironment_1.default)('browser') ? await (0, fileToValue_1.default)(value, 'array-buffer') : (0, to_1.default)(Buffer.from(value), 'arraybuffer');
value = (0, isEnvironment_1.default)('browser') ? String.fromCharCode.apply(null, new Uint8Array(value)) : (0, to_1.default)(value, 'string');
value = (0, sha256_1.default)(value).toString();
return options.withPrefix ? `0x${value}` : value;
};
exports.default = hashFile;
;