UNPKG

@technobuddha/library

Version:
31 lines (30 loc) 925 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.crc32 = void 0; var isEmpty_1 = __importDefault(require("lodash/isEmpty")); var crcTable = []; /** * Compute the CRC32 checksum for a string * * @param input The string * @return the CRC32 checksum */ function crc32(input) { if (isEmpty_1.default(crcTable)) { for (var n = 0; n < 256; ++n) { var c = n; for (var k = 0; k < 8; ++k) c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); crcTable[n] = c; } } var crc = -1; for (var i = 0; i < input.length; ++i) crc = (crc >>> 8) ^ crcTable[(crc ^ input.charCodeAt(i)) & 0xFF]; return (crc ^ -1) >>> 0; } exports.crc32 = crc32; exports.default = crc32;