UNPKG

ngn-data

Version:

Data modeling, stores, proxies, and utilities for NGN

56 lines (45 loc) 1.63 kB
/** * v0.1.11 generated on: Sat Jun 24 2017 01:20:07 GMT+0000 (UTC) * Copyright (c) 2014-2017, Ecor Ventures LLC. All Rights Reserved. See LICENSE (BSD3). */ 'use strict' NGN.DATA = NGN.DATA || {} NGN.DATA.util = {} Object.defineProperties(NGN.DATA.util, { crcTable: NGN.private(null), makeCRCTable: NGN.privateconst(function () { let c let crcTable = [] for (let n = 0; n < 256; n++) { c = n for (let k = 0; k < 8; k++) { c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)) } crcTable[n] = c } return crcTable }), checksum: NGN.const(function (str) { let crcTable = this.crcTable || (this.crcTable = this.makeCRCTable()) let crc = 0 ^ (-1) for (let i = 0; i < str.length; i++) { crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF] } return (crc ^ (-1)) >>> 0 }), GUID: NGN.const(function () { let lut = [] for (var i = 0; i < 256; i++) { lut[i] = (i < 16 ? '0' : '') + (i).toString(16) } const d0 = Math.random() * 0xffffffff | 0 const d1 = Math.random() * 0xffffffff | 0 const d2 = Math.random() * 0xffffffff | 0 const d3 = Math.random() * 0xffffffff | 0 return lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + '-' + lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + '-' + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + '-' + lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + '-' + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] + lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff] }) })