ts-neo4j-parser
Version:
Typescript Neo4j parser to JSON
57 lines • 5.66 kB
JavaScript
;
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