UNPKG

ts-neo4j-parser

Version:

Typescript Neo4j parser to JSON

57 lines 5.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IntegerUtils = void 0; class IntegerUtils { static invertBit(bit) { return bit === '0' ? '1' : '0'; } static binaryInvert(binaryString) { return binaryString.split('').map(IntegerUtils.invertBit).join(''); } static binaryIncrement(binaryString) { const idx = binaryString.lastIndexOf('0'); return binaryString.substring(0, idx) + '1' + IntegerUtils.binaryInvert(binaryString.substring(idx + 1)); } static binaryDecrement(binaryString) { const idx = binaryString.lastIndexOf('1'); return binaryString.substring(0, idx) + IntegerUtils.binaryInvert(binaryString.substring(idx)); } static binaryAbs(binaryString) { if (binaryString[0] === '1') { return IntegerUtils.binaryInvert(IntegerUtils.binaryDecrement(binaryString)); } return binaryString; } static to32Bits(val) { let binaryString = val.toString(2); if (binaryString[0] === '-') { binaryString = new Array(33 - (binaryString.length - 1)).join('1') + IntegerUtils.binaryInvert(binaryString.substr(1)); return IntegerUtils.binaryIncrement(binaryString); } return new Array(33 - binaryString.length).join('0') + binaryString; } static to64BitsIntegerString(high, low) { let fullBinaryNumber = IntegerUtils.to32Bits(high) + IntegerUtils.to32Bits(low); const isNegative = fullBinaryNumber[0] === '1'; fullBinaryNumber = IntegerUtils.binaryAbs(fullBinaryNumber); let result = ''; while (fullBinaryNumber.length > 0) { let remainingToConvert = ''; let resultDigit = 0; for (const char of fullBinaryNumber) { const currentValue = Number(char) + resultDigit * 2; const remainingDigitToConvert = Math.floor(currentValue / 10); resultDigit = currentValue % 10; if (remainingToConvert.length || remainingDigitToConvert) { remainingToConvert += remainingDigitToConvert; } } fullBinaryNumber = remainingToConvert; result = resultDigit + result; } return (isNegative ? '-' : '') + result; } } exports.IntegerUtils = IntegerUtils; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZWdlclV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zZm9ybWF0aW9uL0ludGVnZXJVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLFlBQVk7SUFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXO1FBQ2pDLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBb0I7UUFDN0MsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLFlBQW9CO1FBQ2hELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLFlBQW9CO1FBQ2hELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFvQjtRQUMxQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxZQUFZLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVc7UUFDaEMsSUFBSSxZQUFZLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDM0IsWUFBWTtnQkFDVixJQUFJLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFHLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQ3RFLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDM0QsSUFBSSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEYsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO1FBRS9DLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU1RCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLElBQUksa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNwQixLQUFLLE1BQU0sSUFBSSxJQUFJLGdCQUFnQixFQUFFO2dCQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDcEQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsV0FBVyxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksa0JBQWtCLENBQUMsTUFBTSxJQUFJLHVCQUF1QixFQUFFO29CQUN4RCxrQkFBa0IsSUFBSSx1QkFBdUIsQ0FBQztpQkFDL0M7YUFDRjtZQUNELGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO1lBQ3RDLE1BQU0sR0FBRyxXQUFXLEdBQUcsTUFBTSxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBNURELG9DQTREQyJ9