tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
56 lines (55 loc) • 6.02 kB
JavaScript
;
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=