tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
47 lines (46 loc) • 4.81 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, 0x02]);
const SmallInt = {
id: 0x34,
type: 'INT2',
name: 'SmallInt',
declaration: function () {
return 'smallint';
},
writeTypeInfo(buffer) {
buffer.writeBuffer(TYPE_INFO);
},
writeValue(buffer, parameter) {
const value = parameter.value;
if (value == null) {
buffer.writeUInt8(0x00);
return;
}
buffer.writeUInt8(0x02);
buffer.writeInt16LE(value);
},
validate: function (value) {
if (value == null) {
return null;
}
if (typeof value !== 'number') {
value = Number(value);
}
if (isNaN(value)) {
throw new TypeError('Invalid number.');
}
if (value < -32768 || value > 32767) {
throw new TypeError('Value must be between -32768 and 32767, inclusive.');
}
return value | 0;
}
};
var _default = exports.default = SmallInt;
module.exports = SmallInt;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW50biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVFlQRV9JTkZPIiwiQnVmZmVyIiwiZnJvbSIsIkludE4iLCJpZCIsIlNtYWxsSW50IiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZUJ1ZmZlciIsIndyaXRlVmFsdWUiLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsIndyaXRlVUludDgiLCJ3cml0ZUludDE2TEUiLCJ2YWxpZGF0ZSIsIk51bWJlciIsImlzTmFOIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvc21hbGxpbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgSW50TiBmcm9tICcuL2ludG4nO1xuXG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbSW50Ti5pZCwgMHgwMl0pO1xuXG5jb25zdCBTbWFsbEludDogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDM0LFxuICB0eXBlOiAnSU5UMicsXG4gIG5hbWU6ICdTbWFsbEludCcsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnc21hbGxpbnQnO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKFRZUEVfSU5GTyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIG51bWJlciB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDIpO1xuICAgIGJ1ZmZlci53cml0ZUludDE2TEUodmFsdWUpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbnVtYmVyLicpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA8IC0zMjc2OCB8fCB2YWx1ZSA+IDMyNzY3KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdWYWx1ZSBtdXN0IGJlIGJldHdlZW4gLTMyNzY4IGFuZCAzMjc2NywgaW5jbHVzaXZlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSB8IDA7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNtYWxsSW50O1xubW9kdWxlLmV4cG9ydHMgPSBTbWFsbEludDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTFCLE1BQU1HLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsYUFBSSxDQUFDQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFOUMsTUFBTUMsUUFBa0IsR0FBRztFQUN6QkQsRUFBRSxFQUFFLElBQUk7RUFDUkUsSUFBSSxFQUFFLE1BQU07RUFDWkMsSUFBSSxFQUFFLFVBQVU7RUFFaEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxVQUFVO0VBQ25CLENBQUM7RUFFREMsYUFBYUEsQ0FBQ0MsTUFBTSxFQUFFO0lBQ3BCQSxNQUFNLENBQUNDLFdBQVcsQ0FBQ1gsU0FBUyxDQUFDO0VBQy9CLENBQUM7RUFFRFksVUFBVUEsQ0FBQ0YsTUFBTSxFQUFFRyxTQUFTLEVBQUU7SUFDNUIsTUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBQzlDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJKLE1BQU0sQ0FBQ0ssVUFBVSxDQUFDLElBQUksQ0FBQztNQUN2QjtJQUNGO0lBRUFMLE1BQU0sQ0FBQ0ssVUFBVSxDQUFDLElBQUksQ0FBQztJQUN2QkwsTUFBTSxDQUFDTSxZQUFZLENBQUNGLEtBQUssQ0FBQztFQUM1QixDQUFDO0VBRURHLFFBQVEsRUFBRSxTQUFBQSxDQUFTSCxLQUFLLEVBQWlCO0lBQ3ZDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDN0JBLEtBQUssR0FBR0ksTUFBTSxDQUFDSixLQUFLLENBQUM7SUFDdkI7SUFFQSxJQUFJSyxLQUFLLENBQUNMLEtBQUssQ0FBQyxFQUFFO01BQ2hCLE1BQU0sSUFBSU0sU0FBUyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDO0lBRUEsSUFBSU4sS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJQSxLQUFLLEdBQUcsS0FBSyxFQUFFO01BQ25DLE1BQU0sSUFBSU0sU0FBUyxDQUFDLG9EQUFvRCxDQUFDO0lBQzNFO0lBRUEsT0FBT04sS0FBSyxHQUFHLENBQUM7RUFDbEI7QUFDRixDQUFDO0FBQUMsSUFBQU8sUUFBQSxHQUFBQyxPQUFBLENBQUF2QixPQUFBLEdBRWFNLFFBQVE7QUFDdkJrQixNQUFNLENBQUNELE9BQU8sR0FBR2pCLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=