UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

46 lines (45 loc) • 4.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _intn = _interopRequireDefault(require("./intn")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const TYPE_INFO = Buffer.from([_intn.default.id, 0x08]); const MAX_SAFE_BIGINT = 9223372036854775807n; const MIN_SAFE_BIGINT = -9223372036854775808n; const BigInt = { id: 0x7F, type: 'INT8', name: 'BigInt', declaration: function () { return 'bigint'; }, writeTypeInfo(buffer) { buffer.writeBuffer(TYPE_INFO); }, writeValue(buffer, parameter) { const value = parameter.value; if (value == null) { buffer.writeUInt8(0x00); return; } buffer.writeUInt8(0x08); buffer.writeBigInt64LE(value); }, validate: function (value) { if (value == null) { return null; } if (typeof value !== 'bigint') { value = globalThis.BigInt(value); } if (value < MIN_SAFE_BIGINT || value > MAX_SAFE_BIGINT) { throw new TypeError(`Value must be between ${MIN_SAFE_BIGINT} and ${MAX_SAFE_BIGINT}, inclusive.`); } return value; } }; var _default = exports.default = BigInt; module.exports = BigInt; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW50biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVFlQRV9JTkZPIiwiQnVmZmVyIiwiZnJvbSIsIkludE4iLCJpZCIsIk1BWF9TQUZFX0JJR0lOVCIsIk1JTl9TQUZFX0JJR0lOVCIsIkJpZ0ludCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVCdWZmZXIiLCJ3cml0ZVZhbHVlIiwicGFyYW1ldGVyIiwidmFsdWUiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVCaWdJbnQ2NExFIiwidmFsaWRhdGUiLCJnbG9iYWxUaGlzIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvYmlnaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IEludE4gZnJvbSAnLi9pbnRuJztcblxuY29uc3QgVFlQRV9JTkZPID0gQnVmZmVyLmZyb20oW0ludE4uaWQsIDB4MDhdKTtcbmNvbnN0IE1BWF9TQUZFX0JJR0lOVCA9IDkyMjMzNzIwMzY4NTQ3NzU4MDduO1xuY29uc3QgTUlOX1NBRkVfQklHSU5UID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDhuO1xuXG5jb25zdCBCaWdJbnQ6IERhdGFUeXBlID0ge1xuICBpZDogMHg3RixcbiAgdHlwZTogJ0lOVDgnLFxuICBuYW1lOiAnQmlnSW50JyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdiaWdpbnQnO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKFRZUEVfSU5GTyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGJpZ2ludCB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDgpO1xuICAgIGJ1ZmZlci53cml0ZUJpZ0ludDY0TEUodmFsdWUpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBiaWdpbnQge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYmlnaW50Jykge1xuICAgICAgdmFsdWUgPSBnbG9iYWxUaGlzLkJpZ0ludCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgTUlOX1NBRkVfQklHSU5UIHx8IHZhbHVlID4gTUFYX1NBRkVfQklHSU5UKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBWYWx1ZSBtdXN0IGJlIGJldHdlZW4gJHtNSU5fU0FGRV9CSUdJTlR9IGFuZCAke01BWF9TQUZFX0JJR0lOVH0sIGluY2x1c2l2ZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJpZ0ludDtcbm1vZHVsZS5leHBvcnRzID0gQmlnSW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBMEIsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFMUIsTUFBTUcsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDQyxhQUFJLENBQUNDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QyxNQUFNQyxlQUFlLEdBQUcsb0JBQW9CO0FBQzVDLE1BQU1DLGVBQWUsR0FBRyxDQUFDLG9CQUFvQjtBQUU3QyxNQUFNQyxNQUFnQixHQUFHO0VBQ3ZCSCxFQUFFLEVBQUUsSUFBSTtFQUNSSSxJQUFJLEVBQUUsTUFBTTtFQUNaQyxJQUFJLEVBQUUsUUFBUTtFQUVkQyxXQUFXLEVBQUUsU0FBQUEsQ0FBQSxFQUFXO0lBQ3RCLE9BQU8sUUFBUTtFQUNqQixDQUFDO0VBRURDLGFBQWFBLENBQUNDLE1BQU0sRUFBRTtJQUNwQkEsTUFBTSxDQUFDQyxXQUFXLENBQUNiLFNBQVMsQ0FBQztFQUMvQixDQUFDO0VBRURjLFVBQVVBLENBQUNGLE1BQU0sRUFBRUcsU0FBUyxFQUFFO0lBQzVCLE1BQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUFzQjtJQUM5QyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCSixNQUFNLENBQUNLLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBTCxNQUFNLENBQUNLLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDdkJMLE1BQU0sQ0FBQ00sZUFBZSxDQUFDRixLQUFLLENBQUM7RUFDL0IsQ0FBQztFQUVERyxRQUFRLEVBQUUsU0FBQUEsQ0FBU0gsS0FBSyxFQUFpQjtJQUN2QyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxFQUFFO01BQzdCQSxLQUFLLEdBQUdJLFVBQVUsQ0FBQ2IsTUFBTSxDQUFDUyxLQUFLLENBQUM7SUFDbEM7SUFFQSxJQUFJQSxLQUFLLEdBQUdWLGVBQWUsSUFBSVUsS0FBSyxHQUFHWCxlQUFlLEVBQUU7TUFDdEQsTUFBTSxJQUFJZ0IsU0FBUyxDQUFDLHlCQUF5QmYsZUFBZSxRQUFRRCxlQUFlLGNBQWMsQ0FBQztJQUNwRztJQUVBLE9BQU9XLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFBQyxJQUFBTSxRQUFBLEdBQUFDLE9BQUEsQ0FBQXhCLE9BQUEsR0FFYVEsTUFBTTtBQUNyQmlCLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHaEIsTUFBTSIsImlnbm9yZUxpc3QiOltdfQ==