UNPKG

tedious

Version:

A TDS driver, for connecting to MS SQLServer databases.

56 lines (55 loc) • 6.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _temporal = require("./temporal"); // globalDate is to be used for JavaScript's global 'Date' object to avoid name clashing with the 'Date' constant below const globalDate = global.Date; const TYPE_INFO = Buffer.from([0x28]); const Date = { id: 0x28, type: 'DATEN', name: 'Date', declaration: function () { return 'date'; }, writeTypeInfo(buffer) { buffer.writeBuffer(TYPE_INFO); }, writeValue(buffer, parameter, options) { const value = parameter.value; if (value == null) { buffer.writeUInt8(0x00); return; } buffer.writeUInt8(0x03); buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, options.useUTC)); }, // TODO: value is technically of type 'unknown'. validate: function (value, collation, options) { if (value == null) { return null; } if (!(value instanceof globalDate)) { value = new globalDate(globalDate.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 = Date; module.exports = Date; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiZ2xvYmFsRGF0ZSIsImdsb2JhbCIsIkRhdGUiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlQnVmZmVyIiwid3JpdGVWYWx1ZSIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQyNExFIiwiZGF5c1NpbmNlWWVhck9uZSIsInVzZVVUQyIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwicGFyc2UiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRGdWxsWWVhciIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbi8vIGdsb2JhbERhdGUgaXMgdG8gYmUgdXNlZCBmb3IgSmF2YVNjcmlwdCdzIGdsb2JhbCAnRGF0ZScgb2JqZWN0IHRvIGF2b2lkIG5hbWUgY2xhc2hpbmcgd2l0aCB0aGUgJ0RhdGUnIGNvbnN0YW50IGJlbG93XG5jb25zdCBnbG9iYWxEYXRlID0gZ2xvYmFsLkRhdGU7XG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbMHgyOF0pO1xuXG5jb25zdCBEYXRlOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjgsXG4gIHR5cGU6ICdEQVRFTicsXG4gIG5hbWU6ICdEYXRlJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdkYXRlJztcbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlcikge1xuICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihUWVBFX0lORk8pO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBnbG9iYWxUaGlzLkRhdGUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCgweDAzKTtcbiAgICBidWZmZXIud3JpdGVVSW50MjRMRShkYXlzU2luY2VZZWFyT25lKHZhbHVlLCBvcHRpb25zLnVzZVVUQykpO1xuICB9LFxuXG4gIC8vIFRPRE86IHZhbHVlIGlzIHRlY2huaWNhbGx5IG9mIHR5cGUgJ3Vua25vd24nLlxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBnbG9iYWxEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgZ2xvYmFsRGF0ZShnbG9iYWxEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXI7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDEgfHwgeWVhciA+IDk5OTkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFFQTtBQUNBLE1BQU1DLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJO0FBQzlCLE1BQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVyQyxNQUFNSCxJQUFjLEdBQUc7RUFDckJJLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxNQUFNO0VBQ2YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUU7SUFDcEJBLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDVCxTQUFTLENBQUM7RUFDL0IsQ0FBQztFQUVEVSxVQUFVQSxDQUFDRixNQUFNLEVBQUVHLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLE1BQU1DLEtBQUssR0FBR0YsU0FBUyxDQUFDRSxLQUErQjtJQUN2RCxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCTCxNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBTixNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDdkJOLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLElBQUFDLDBCQUFnQixFQUFDSCxLQUFLLEVBQUVELE9BQU8sQ0FBQ0ssTUFBTSxDQUFDLENBQUM7RUFDL0QsQ0FBQztFQUVEO0VBQ0FDLFFBQVEsRUFBRSxTQUFBQSxDQUFTTCxLQUFLLEVBQUVNLFNBQVMsRUFBRVAsT0FBTyxFQUFlO0lBQ3pELElBQUlDLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFJLEVBQUVBLEtBQUssWUFBWWhCLFVBQVUsQ0FBQyxFQUFFO01BQ2xDZ0IsS0FBSyxHQUFHLElBQUloQixVQUFVLENBQUNBLFVBQVUsQ0FBQ3VCLEtBQUssQ0FBQ1AsS0FBSyxDQUFDLENBQUM7SUFDakQ7SUFFQUEsS0FBSyxHQUFHQSxLQUFhO0lBRXJCLElBQUlRLElBQUk7SUFDUixJQUFJVCxPQUFPLElBQUlBLE9BQU8sQ0FBQ0ssTUFBTSxFQUFFO01BQzdCSSxJQUFJLEdBQUdSLEtBQUssQ0FBQ1MsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0xELElBQUksR0FBR1IsS0FBSyxDQUFDVSxXQUFXLENBQUMsQ0FBQztJQUM1QjtJQUVBLElBQUlGLElBQUksR0FBRyxDQUFDLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDM0IsTUFBTSxJQUFJRyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDWixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlXLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxPQUFPWCxLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYTdCLElBQUk7QUFDbkI4QixNQUFNLENBQUNGLE9BQU8sR0FBRzVCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=