tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
46 lines (45 loc) • 4.99 kB
JavaScript
;
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==