UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

63 lines (62 loc) • 7.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _temporal = require("./temporal"); const DateTime2 = { id: 0x2A, type: 'DATETIME2N', name: 'DateTime2', declaration: function (parameter) { return 'datetime2(' + 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, options) { const value = parameter.value; if (value == null) { buffer.writeUInt8(0x00); return; } buffer.writeUInt8((0, _temporal.timeLength)(parameter.scale) + 3); (0, _temporal.writeTimeOfDay)(buffer, value, parameter.scale, options.useUTC); buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, options.useUTC)); }, 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 = DateTime2; module.exports = DateTime2; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiRGF0ZVRpbWUyIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwicmVzb2x2ZVNjYWxlIiwic2NhbGUiLCJ2YWx1ZSIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVWYWx1ZSIsIm9wdGlvbnMiLCJ0aW1lTGVuZ3RoIiwid3JpdGVUaW1lT2ZEYXkiLCJ1c2VVVEMiLCJ3cml0ZVVJbnQyNExFIiwiZGF5c1NpbmNlWWVhck9uZSIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwiRGF0ZSIsInBhcnNlIiwieWVhciIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0RnVsbFllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9kYXRldGltZTIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lLCB0aW1lTGVuZ3RoLCB3cml0ZVRpbWVPZkRheSwgdHlwZSBUZW1wb3JhbFZhbHVlIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbmNvbnN0IERhdGVUaW1lMjogRGF0YVR5cGUgJiB7IHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgyQSxcbiAgdHlwZTogJ0RBVEVUSU1FMk4nLFxuICBuYW1lOiAnRGF0ZVRpbWUyJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICdkYXRldGltZTIoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcblxuICByZXNvbHZlU2NhbGU6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5zY2FsZTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA3O1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgocGFyYW1ldGVyLnNjYWxlISk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIFRlbXBvcmFsVmFsdWUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCh0aW1lTGVuZ3RoKHBhcmFtZXRlci5zY2FsZSkgKyAzKTtcbiAgICB3cml0ZVRpbWVPZkRheShidWZmZXIsIHZhbHVlLCBwYXJhbWV0ZXIuc2NhbGUhLCBvcHRpb25zLnVzZVVUQyk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5c1NpbmNlWWVhck9uZSh2YWx1ZSwgb3B0aW9ucy51c2VVVEMpKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWU6IGFueSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGxldCB5ZWFyO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPCAxIHx8IHllYXIgPiA5OTk5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWUyO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLFNBQTZFLEdBQUc7RUFDcEZDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxZQUFZO0VBQ2xCQyxJQUFJLEVBQUUsV0FBVztFQUVqQkMsV0FBVyxFQUFFLFNBQUFBLENBQVNDLFNBQVMsRUFBRTtJQUMvQixPQUFPLFlBQVksR0FBSSxJQUFJLENBQUNDLFlBQVksQ0FBQ0QsU0FBUyxDQUFFLEdBQUcsR0FBRztFQUM1RCxDQUFDO0VBRURDLFlBQVksRUFBRSxTQUFBQSxDQUFTRCxTQUFTLEVBQUU7SUFDaEMsSUFBSUEsU0FBUyxDQUFDRSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCLE9BQU9GLFNBQVMsQ0FBQ0UsS0FBSztJQUN4QixDQUFDLE1BQU0sSUFBSUYsU0FBUyxDQUFDRyxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ25DLE9BQU8sQ0FBQztJQUNWLENBQUMsTUFBTTtNQUNMLE9BQU8sQ0FBQztJQUNWO0VBQ0YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUVMLFNBQVMsRUFBRTtJQUMvQkssTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDVixFQUFFLENBQUM7SUFDMUJTLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDTixTQUFTLENBQUNFLEtBQU0sQ0FBQztFQUNyQyxDQUFDO0VBRURLLFVBQVVBLENBQUNGLE1BQU0sRUFBRUwsU0FBUyxFQUFFUSxPQUFPLEVBQUU7SUFDckMsTUFBTUwsS0FBSyxHQUFHSCxTQUFTLENBQUNHLEtBQTZCO0lBQ3JELElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJFLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQztNQUN2QjtJQUNGO0lBRUFELE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUFHLG9CQUFVLEVBQUNULFNBQVMsQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELElBQUFRLHdCQUFjLEVBQUNMLE1BQU0sRUFBRUYsS0FBSyxFQUFFSCxTQUFTLENBQUNFLEtBQUssRUFBR00sT0FBTyxDQUFDRyxNQUFNLENBQUM7SUFDL0ROLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLElBQUFDLDBCQUFnQixFQUFDVixLQUFLLEVBQUVLLE9BQU8sQ0FBQ0csTUFBTSxDQUFDLENBQUM7RUFDL0QsQ0FBQztFQUVERyxRQUFRLEVBQUUsU0FBQUEsQ0FBU1gsS0FBVSxFQUFFWSxTQUFTLEVBQUVQLE9BQU8sRUFBaUI7SUFDaEUsSUFBSUwsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksRUFBRUEsS0FBSyxZQUFZYSxJQUFJLENBQUMsRUFBRTtNQUM1QmIsS0FBSyxHQUFHLElBQUlhLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxLQUFLLENBQUNkLEtBQUssQ0FBQyxDQUFDO0lBQ3JDO0lBRUFBLEtBQUssR0FBR0EsS0FBYTtJQUVyQixJQUFJZSxJQUFJO0lBQ1IsSUFBSVYsT0FBTyxJQUFJQSxPQUFPLENBQUNHLE1BQU0sRUFBRTtNQUM3Qk8sSUFBSSxHQUFHZixLQUFLLENBQUNnQixjQUFjLENBQUMsQ0FBQztJQUMvQixDQUFDLE1BQU07TUFDTEQsSUFBSSxHQUFHZixLQUFLLENBQUNpQixXQUFXLENBQUMsQ0FBQztJQUM1QjtJQUVBLElBQUlGLElBQUksR0FBRyxDQUFDLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDM0IsTUFBTSxJQUFJRyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDbkIsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJa0IsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUN0QztJQUVBLE9BQU9sQixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQW9CLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWE5QixTQUFTO0FBQ3hCK0IsTUFBTSxDQUFDRixPQUFPLEdBQUc3QixTQUFTIiwiaWdub3JlTGlzdCI6W119