diff options
Diffstat (limited to 'cli/bench/testdata/npm/hono/dist/utils/crypto.js')
-rw-r--r-- | cli/bench/testdata/npm/hono/dist/utils/crypto.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cli/bench/testdata/npm/hono/dist/utils/crypto.js b/cli/bench/testdata/npm/hono/dist/utils/crypto.js new file mode 100644 index 000000000..0d259ae1c --- /dev/null +++ b/cli/bench/testdata/npm/hono/dist/utils/crypto.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createHash = exports.md5 = exports.sha1 = exports.sha256 = void 0; +const sha256 = async (data) => { + const algorithm = { name: 'SHA-256', alias: 'sha256' }; + const hash = await (0, exports.createHash)(data, algorithm); + return hash; +}; +exports.sha256 = sha256; +const sha1 = async (data) => { + const algorithm = { name: 'SHA-1', alias: 'sha1' }; + const hash = await (0, exports.createHash)(data, algorithm); + return hash; +}; +exports.sha1 = sha1; +const md5 = async (data) => { + const algorithm = { name: 'MD5', alias: 'md5' }; + const hash = await (0, exports.createHash)(data, algorithm); + return hash; +}; +exports.md5 = md5; +const createHash = async (data, algorithm) => { + let sourceBuffer; + if (data instanceof ReadableStream) { + let body = ''; + const reader = data.getReader(); + await reader?.read().then(async (chuck) => { + const value = await (0, exports.createHash)(chuck.value || '', algorithm); + body += value; + }); + return body; + } + if (ArrayBuffer.isView(data) || data instanceof ArrayBuffer) { + sourceBuffer = data; + } + else { + if (typeof data === 'object') { + data = JSON.stringify(data); + } + sourceBuffer = new TextEncoder().encode(String(data)); + } + if (crypto && crypto.subtle) { + const buffer = await crypto.subtle.digest({ + name: algorithm.name, + }, sourceBuffer); + const hash = Array.prototype.map + .call(new Uint8Array(buffer), (x) => ('00' + x.toString(16)).slice(-2)) + .join(''); + return hash; + } + return null; +}; +exports.createHash = createHash; |