tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
49 lines (48 loc) • 4.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF]);
const Image = {
id: 0x22,
type: 'IMAGE',
name: 'Image',
hasTableName: true,
declaration: function () {
return 'image';
},
resolveLength: function (parameter) {
if (parameter.value != null) {
const value = parameter.value; // TODO: Temporary solution. Replace 'any' more with specific type;
return value.length;
} else {
return -1;
}
},
writeTypeInfo(buffer, parameter) {
buffer.writeUInt8(this.id);
buffer.writeInt32LE(parameter.length);
},
writeValue(buffer, parameter) {
const value = parameter.value;
if (value == null) {
buffer.writeBuffer(NULL_LENGTH);
return;
}
buffer.writeInt32LE(value.length);
buffer.writeBuffer(value);
},
validate: function (value) {
if (value == null) {
return null;
}
if (!Buffer.isBuffer(value)) {
throw new TypeError('Invalid buffer.');
}
return value;
}
};
var _default = exports.default = Image;
module.exports = Image;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJJbWFnZSIsImlkIiwidHlwZSIsIm5hbWUiLCJoYXNUYWJsZU5hbWUiLCJkZWNsYXJhdGlvbiIsInJlc29sdmVMZW5ndGgiLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVJbnQzMkxFIiwid3JpdGVWYWx1ZSIsIndyaXRlQnVmZmVyIiwidmFsaWRhdGUiLCJpc0J1ZmZlciIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9pbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBJbWFnZTogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDIyLFxuICB0eXBlOiAnSU1BR0UnLFxuICBuYW1lOiAnSW1hZ2UnLFxuICBoYXNUYWJsZU5hbWU6IHRydWUsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnaW1hZ2UnO1xuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUT0RPOiBUZW1wb3Jhcnkgc29sdXRpb24uIFJlcGxhY2UgJ2FueScgbW9yZSB3aXRoIHNwZWNpZmljIHR5cGU7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkKTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKHBhcmFtZXRlci5sZW5ndGghKTtcbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKE5VTExfTEVOR1RIKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKHZhbHVlLmxlbmd0aCk7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKHZhbHVlKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgQnVmZmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBidWZmZXIuJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2U7XG5tb2R1bGUuZXhwb3J0cyA9IEltYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFekQsTUFBTUMsS0FBZSxHQUFHO0VBQ3RCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxZQUFZLEVBQUUsSUFBSTtFQUVsQkMsV0FBVyxFQUFFLFNBQUFBLENBQUEsRUFBVztJQUN0QixPQUFPLE9BQU87RUFDaEIsQ0FBQztFQUVEQyxhQUFhLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQ2pDLElBQUlBLFNBQVMsQ0FBQ0MsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixNQUFNQSxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBWSxDQUFDLENBQUM7TUFDdEMsT0FBT0EsS0FBSyxDQUFDQyxNQUFNO0lBQ3JCLENBQUMsTUFBTTtNQUNMLE9BQU8sQ0FBQyxDQUFDO0lBQ1g7RUFDRixDQUFDO0VBRURDLGFBQWFBLENBQUNDLE1BQU0sRUFBRUosU0FBUyxFQUFFO0lBQy9CSSxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNYLEVBQUUsQ0FBQztJQUMxQlUsTUFBTSxDQUFDRSxZQUFZLENBQUNOLFNBQVMsQ0FBQ0UsTUFBTyxDQUFDO0VBQ3hDLENBQUM7RUFFREssVUFBVUEsQ0FBQ0gsTUFBTSxFQUFFSixTQUFTLEVBQUU7SUFDNUIsTUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBQzlDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJHLE1BQU0sQ0FBQ0ksV0FBVyxDQUFDbEIsV0FBVyxDQUFDO01BQy9CO0lBQ0Y7SUFFQWMsTUFBTSxDQUFDRSxZQUFZLENBQUNMLEtBQUssQ0FBQ0MsTUFBTSxDQUFDO0lBQ2pDRSxNQUFNLENBQUNJLFdBQVcsQ0FBQ1AsS0FBSyxDQUFDO0VBQzNCLENBQUM7RUFFRFEsUUFBUSxFQUFFLFNBQUFBLENBQVNSLEtBQUssRUFBaUI7SUFDdkMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUNBLElBQUksQ0FBQ1YsTUFBTSxDQUFDbUIsUUFBUSxDQUFDVCxLQUFLLENBQUMsRUFBRTtNQUMzQixNQUFNLElBQUlVLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QztJQUNBLE9BQU9WLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFBQyxJQUFBVyxRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUVhckIsS0FBSztBQUNwQnNCLE1BQU0sQ0FBQ0YsT0FBTyxHQUFHcEIsS0FBSyIsImlnbm9yZUxpc3QiOltdfQ==