tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
52 lines (51 loc) • 5.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _temporal = require("./temporal");
const Time = {
id: 0x29,
type: 'TIMEN',
name: 'Time',
declaration: function (parameter) {
return 'time(' + 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));
(0, _temporal.writeTimeOfDay)(buffer, value, parameter.scale, options.useUTC);
},
validate: function (value) {
if (value == null) {
return null;
}
if (!(value instanceof Date)) {
value = new Date(Date.parse(value));
}
if (isNaN(value)) {
throw new TypeError('Invalid time.');
}
return value;
}
};
var _default = exports.default = Time;
module.exports = Time;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiVGltZSIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInJlc29sdmVTY2FsZSIsInNjYWxlIiwidmFsdWUiLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVVSW50OCIsIndyaXRlVmFsdWUiLCJvcHRpb25zIiwidGltZUxlbmd0aCIsIndyaXRlVGltZU9mRGF5IiwidXNlVVRDIiwidmFsaWRhdGUiLCJEYXRlIiwicGFyc2UiLCJpc05hTiIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy90aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgdGltZUxlbmd0aCwgd3JpdGVUaW1lT2ZEYXksIHR5cGUgVGVtcG9yYWxWYWx1ZSB9IGZyb20gJy4vdGVtcG9yYWwnO1xuXG5jb25zdCBUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjksXG4gIHR5cGU6ICdUSU1FTicsXG4gIG5hbWU6ICdUaW1lJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICd0aW1lKCcgKyAodGhpcy5yZXNvbHZlU2NhbGUhKHBhcmFtZXRlcikpICsgJyknO1xuICB9LFxuXG4gIHJlc29sdmVTY2FsZTogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5zY2FsZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLnNjYWxlO1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDc7XG4gICAgfVxuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkKTtcbiAgICBidWZmZXIud3JpdGVVSW50OChwYXJhbWV0ZXIuc2NhbGUhKTtcbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgVGVtcG9yYWxWYWx1ZSB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRpbWVMZW5ndGgocGFyYW1ldGVyLnNjYWxlKSk7XG4gICAgd3JpdGVUaW1lT2ZEYXkoYnVmZmVyLCB2YWx1ZSwgcGFyYW1ldGVyLnNjYWxlISwgb3B0aW9ucy51c2VVVEMpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBudW1iZXIgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCB0aW1lLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVGltZTtcbm1vZHVsZS5leHBvcnRzID0gVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUEsTUFBTUMsSUFBYyxHQUFHO0VBQ3JCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUUsTUFBTTtFQUVaQyxXQUFXLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQy9CLE9BQU8sT0FBTyxHQUFJLElBQUksQ0FBQ0MsWUFBWSxDQUFFRCxTQUFTLENBQUUsR0FBRyxHQUFHO0VBQ3hELENBQUM7RUFFREMsWUFBWSxFQUFFLFNBQUFBLENBQVNELFNBQVMsRUFBRTtJQUNoQyxJQUFJQSxTQUFTLENBQUNFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDM0IsT0FBT0YsU0FBUyxDQUFDRSxLQUFLO0lBQ3hCLENBQUMsTUFBTSxJQUFJRixTQUFTLENBQUNHLEtBQUssS0FBSyxJQUFJLEVBQUU7TUFDbkMsT0FBTyxDQUFDO0lBQ1YsQ0FBQyxNQUFNO01BQ0wsT0FBTyxDQUFDO0lBQ1Y7RUFDRixDQUFDO0VBRURDLGFBQWFBLENBQUNDLE1BQU0sRUFBRUwsU0FBUyxFQUFFO0lBQy9CSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNWLEVBQUUsQ0FBQztJQUMxQlMsTUFBTSxDQUFDQyxVQUFVLENBQUNOLFNBQVMsQ0FBQ0UsS0FBTSxDQUFDO0VBQ3JDLENBQUM7RUFFREssVUFBVUEsQ0FBQ0YsTUFBTSxFQUFFTCxTQUFTLEVBQUVRLE9BQU8sRUFBRTtJQUNyQyxNQUFNTCxLQUFLLEdBQUdILFNBQVMsQ0FBQ0csS0FBNkI7SUFDckQsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQkUsTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ3ZCO0lBQ0Y7SUFFQUQsTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBQUcsb0JBQVUsRUFBQ1QsU0FBUyxDQUFDRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFBUSx3QkFBYyxFQUFDTCxNQUFNLEVBQUVGLEtBQUssRUFBRUgsU0FBUyxDQUFDRSxLQUFLLEVBQUdNLE9BQU8sQ0FBQ0csTUFBTSxDQUFDO0VBQ2pFLENBQUM7RUFFREMsUUFBUSxFQUFFLFNBQUFBLENBQVNULEtBQUssRUFBd0I7SUFDOUMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksRUFBRUEsS0FBSyxZQUFZVSxJQUFJLENBQUMsRUFBRTtNQUM1QlYsS0FBSyxHQUFHLElBQUlVLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxLQUFLLENBQUNYLEtBQUssQ0FBQyxDQUFDO0lBQ3JDO0lBRUEsSUFBSVksS0FBSyxDQUFDWixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlhLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxPQUFPYixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQWMsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYXhCLElBQUk7QUFDbkJ5QixNQUFNLENBQUNGLE9BQU8sR0FBR3ZCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=