UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

64 lines (63 loc) • 7.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _temporal = require("./temporal"); const DateTimeOffset = { id: 0x2B, type: 'DATETIMEOFFSETN', name: 'DateTimeOffset', declaration: function (parameter) { return 'datetimeoffset(' + this.resolveScale(parameter) + ')'; }, resolveScale: function (parameter) { if (parameter.scale != null) { return parameter.scale; } else if (parameter.value === null) { return 0; } else { return 7; } }, writeTypeInfo(buffer, parameter) { buffer.writeUInt8(this.id); buffer.writeUInt8(parameter.scale); }, writeValue(buffer, parameter) { const value = parameter.value; if (value == null) { buffer.writeUInt8(0x00); return; } buffer.writeUInt8((0, _temporal.timeLength)(parameter.scale) + 5); (0, _temporal.writeTimeOfDay)(buffer, value, parameter.scale, true); buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, true)); buffer.writeInt16LE(-value.getTimezoneOffset()); }, validate: function (value, collation, options) { if (value == null) { return null; } if (!(value instanceof Date)) { value = new Date(Date.parse(value)); } value = value; let year; if (options && options.useUTC) { year = value.getUTCFullYear(); } else { year = value.getFullYear(); } if (year < 1 || year > 9999) { throw new TypeError('Out of range.'); } if (isNaN(value)) { throw new TypeError('Invalid date.'); } return value; } }; var _default = exports.default = DateTimeOffset; module.exports = DateTimeOffset; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiRGF0ZVRpbWVPZmZzZXQiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJyZXNvbHZlU2NhbGUiLCJzY2FsZSIsInZhbHVlIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVZhbHVlIiwidGltZUxlbmd0aCIsIndyaXRlVGltZU9mRGF5Iiwid3JpdGVVSW50MjRMRSIsImRheXNTaW5jZVllYXJPbmUiLCJ3cml0ZUludDE2TEUiLCJnZXRUaW1lem9uZU9mZnNldCIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwib3B0aW9ucyIsIkRhdGUiLCJwYXJzZSIsInllYXIiLCJ1c2VVVEMiLCJnZXRVVENGdWxsWWVhciIsImdldEZ1bGxZZWFyIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lLCB0aW1lTGVuZ3RoLCB3cml0ZVRpbWVPZkRheSwgdHlwZSBUZW1wb3JhbFZhbHVlIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbmNvbnN0IERhdGVUaW1lT2Zmc2V0OiBEYXRhVHlwZSAmIHsgcmVzb2x2ZVNjYWxlOiBOb25OdWxsYWJsZTxEYXRhVHlwZVsncmVzb2x2ZVNjYWxlJ10+IH0gPSB7XG4gIGlkOiAweDJCLFxuICB0eXBlOiAnREFURVRJTUVPRkZTRVROJyxcbiAgbmFtZTogJ0RhdGVUaW1lT2Zmc2V0JyxcbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnZGF0ZXRpbWVvZmZzZXQoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcbiAgcmVzb2x2ZVNjYWxlOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBpZiAocGFyYW1ldGVyLnNjYWxlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIuc2NhbGU7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gNztcbiAgICB9XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHBhcmFtZXRlci5zY2FsZSEpO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBUZW1wb3JhbFZhbHVlIHwgbnVsbDtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDgoMHgwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYnVmZmVyLndyaXRlVUludDgodGltZUxlbmd0aChwYXJhbWV0ZXIuc2NhbGUpICsgNSk7XG4gICAgd3JpdGVUaW1lT2ZEYXkoYnVmZmVyLCB2YWx1ZSwgcGFyYW1ldGVyLnNjYWxlISwgdHJ1ZSk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5c1NpbmNlWWVhck9uZSh2YWx1ZSwgdHJ1ZSkpO1xuICAgIGJ1ZmZlci53cml0ZUludDE2TEUoLXZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZTogYW55LCBjb2xsYXRpb24sIG9wdGlvbnMpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXI7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDEgfHwgeWVhciA+IDk5OTkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZU9mZnNldDtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZVRpbWVPZmZzZXQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLGNBQWtGLEdBQUc7RUFDekZDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxpQkFBaUI7RUFDdkJDLElBQUksRUFBRSxnQkFBZ0I7RUFDdEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsT0FBTyxpQkFBaUIsR0FBSSxJQUFJLENBQUNDLFlBQVksQ0FBQ0QsU0FBUyxDQUFFLEdBQUcsR0FBRztFQUNqRSxDQUFDO0VBQ0RDLFlBQVksRUFBRSxTQUFBQSxDQUFTRCxTQUFTLEVBQUU7SUFDaEMsSUFBSUEsU0FBUyxDQUFDRSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCLE9BQU9GLFNBQVMsQ0FBQ0UsS0FBSztJQUN4QixDQUFDLE1BQU0sSUFBSUYsU0FBUyxDQUFDRyxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ25DLE9BQU8sQ0FBQztJQUNWLENBQUMsTUFBTTtNQUNMLE9BQU8sQ0FBQztJQUNWO0VBQ0YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUVMLFNBQVMsRUFBRTtJQUMvQkssTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDVixFQUFFLENBQUM7SUFDMUJTLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDTixTQUFTLENBQUNFLEtBQU0sQ0FBQztFQUNyQyxDQUFDO0VBRURLLFVBQVVBLENBQUNGLE1BQU0sRUFBRUwsU0FBUyxFQUFFO0lBQzVCLE1BQU1HLEtBQUssR0FBR0gsU0FBUyxDQUFDRyxLQUE2QjtJQUNyRCxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCRSxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBRCxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFBRSxvQkFBVSxFQUFDUixTQUFTLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxJQUFBTyx3QkFBYyxFQUFDSixNQUFNLEVBQUVGLEtBQUssRUFBRUgsU0FBUyxDQUFDRSxLQUFLLEVBQUcsSUFBSSxDQUFDO0lBQ3JERyxNQUFNLENBQUNLLGFBQWEsQ0FBQyxJQUFBQywwQkFBZ0IsRUFBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ERSxNQUFNLENBQUNPLFlBQVksQ0FBQyxDQUFDVCxLQUFLLENBQUNVLGlCQUFpQixDQUFDLENBQUMsQ0FBQztFQUNqRCxDQUFDO0VBRURDLFFBQVEsRUFBRSxTQUFBQSxDQUFTWCxLQUFVLEVBQUVZLFNBQVMsRUFBRUMsT0FBTyxFQUFpQjtJQUNoRSxJQUFJYixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBSSxFQUFFQSxLQUFLLFlBQVljLElBQUksQ0FBQyxFQUFFO01BQzVCZCxLQUFLLEdBQUcsSUFBSWMsSUFBSSxDQUFDQSxJQUFJLENBQUNDLEtBQUssQ0FBQ2YsS0FBSyxDQUFDLENBQUM7SUFDckM7SUFFQUEsS0FBSyxHQUFHQSxLQUFhO0lBRXJCLElBQUlnQixJQUFJO0lBQ1IsSUFBSUgsT0FBTyxJQUFJQSxPQUFPLENBQUNJLE1BQU0sRUFBRTtNQUM3QkQsSUFBSSxHQUFHaEIsS0FBSyxDQUFDa0IsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0xGLElBQUksR0FBR2hCLEtBQUssQ0FBQ21CLFdBQVcsQ0FBQyxDQUFDO0lBQzVCO0lBRUEsSUFBSUgsSUFBSSxHQUFHLENBQUMsSUFBSUEsSUFBSSxHQUFHLElBQUksRUFBRTtNQUMzQixNQUFNLElBQUlJLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxJQUFJQyxLQUFLLENBQUNyQixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlvQixTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsT0FBT3BCLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFBQyxJQUFBc0IsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYWhDLGNBQWM7QUFDN0JpQyxNQUFNLENBQUNGLE9BQU8sR0FBRy9CLGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=