tedious
Version:
A TDS driver, for connecting to MS SQLServer databases.
52 lines (51 loc) • 6.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _decimalCommon = require("./decimal-common");
var _decimaln = _interopRequireDefault(require("./decimaln"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const Decimal = {
id: 0x37,
type: 'DECIMAL',
name: 'Decimal',
declaration: function (parameter) {
return 'decimal(' + this.resolvePrecision(parameter) + ', ' + this.resolveScale(parameter) + ')';
},
resolvePrecision: function (parameter) {
if (parameter.precision != null) {
return parameter.precision;
} else if (parameter.value === null) {
return 1;
} else {
return 18;
}
},
resolveScale: function (parameter) {
if (parameter.scale != null) {
return parameter.scale;
} else {
return 0;
}
},
writeTypeInfo(buffer, parameter) {
(0, _decimalCommon.writeDecimalTypeInfo)(buffer, _decimaln.default.id, parameter.precision, parameter.scale);
},
writeValue(buffer, parameter) {
(0, _decimalCommon.writeDecimal)(buffer, parameter.value, parameter.precision, parameter.scale, 'DECIMAL');
},
validate: function (value) {
if (value == null) {
return null;
}
value = parseFloat(value);
if (isNaN(value)) {
throw new TypeError('Invalid number.');
}
return value;
}
};
var _default = exports.default = Decimal;
module.exports = Decimal;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVjaW1hbENvbW1vbiIsInJlcXVpcmUiLCJfZGVjaW1hbG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRGVjaW1hbCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInJlc29sdmVQcmVjaXNpb24iLCJyZXNvbHZlU2NhbGUiLCJwcmVjaXNpb24iLCJ2YWx1ZSIsInNjYWxlIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlRGVjaW1hbFR5cGVJbmZvIiwiRGVjaW1hbE4iLCJ3cml0ZVZhbHVlIiwid3JpdGVEZWNpbWFsIiwidmFsaWRhdGUiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9kZWNpbWFsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgd3JpdGVEZWNpbWFsLCB3cml0ZURlY2ltYWxUeXBlSW5mbyB9IGZyb20gJy4vZGVjaW1hbC1jb21tb24nO1xuaW1wb3J0IERlY2ltYWxOIGZyb20gJy4vZGVjaW1hbG4nO1xuXG5jb25zdCBEZWNpbWFsOiBEYXRhVHlwZSAmIHsgcmVzb2x2ZVByZWNpc2lvbjogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVQcmVjaXNpb24nXT4sIHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgzNyxcbiAgdHlwZTogJ0RFQ0lNQUwnLFxuICBuYW1lOiAnRGVjaW1hbCcsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnZGVjaW1hbCgnICsgKHRoaXMucmVzb2x2ZVByZWNpc2lvbihwYXJhbWV0ZXIpKSArICcsICcgKyAodGhpcy5yZXNvbHZlU2NhbGUocGFyYW1ldGVyKSkgKyAnKSc7XG4gIH0sXG5cbiAgcmVzb2x2ZVByZWNpc2lvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5wcmVjaXNpb24gIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5wcmVjaXNpb247XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMTg7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVTY2FsZTogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5zY2FsZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLnNjYWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIHdyaXRlRGVjaW1hbFR5cGVJbmZvKGJ1ZmZlciwgRGVjaW1hbE4uaWQsIHBhcmFtZXRlci5wcmVjaXNpb24sIHBhcmFtZXRlci5zY2FsZSk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIHdyaXRlRGVjaW1hbChidWZmZXIsIHBhcmFtZXRlci52YWx1ZSBhcyBudW1iZXIgfCBudWxsLCBwYXJhbWV0ZXIucHJlY2lzaW9uLCBwYXJhbWV0ZXIuc2NhbGUsICdERUNJTUFMJyk7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbnVtYmVyLicpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERlY2ltYWw7XG5tb2R1bGUuZXhwb3J0cyA9IERlY2ltYWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLGNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFrQyxTQUFBRSx1QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVsQyxNQUFNRyxPQUF3SSxHQUFHO0VBQy9JQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsU0FBUztFQUNmQyxJQUFJLEVBQUUsU0FBUztFQUVmQyxXQUFXLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQy9CLE9BQU8sVUFBVSxHQUFJLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNELFNBQVMsQ0FBRSxHQUFHLElBQUksR0FBSSxJQUFJLENBQUNFLFlBQVksQ0FBQ0YsU0FBUyxDQUFFLEdBQUcsR0FBRztFQUN0RyxDQUFDO0VBRURDLGdCQUFnQixFQUFFLFNBQUFBLENBQVNELFNBQVMsRUFBRTtJQUNwQyxJQUFJQSxTQUFTLENBQUNHLFNBQVMsSUFBSSxJQUFJLEVBQUU7TUFDL0IsT0FBT0gsU0FBUyxDQUFDRyxTQUFTO0lBQzVCLENBQUMsTUFBTSxJQUFJSCxTQUFTLENBQUNJLEtBQUssS0FBSyxJQUFJLEVBQUU7TUFDbkMsT0FBTyxDQUFDO0lBQ1YsQ0FBQyxNQUFNO01BQ0wsT0FBTyxFQUFFO0lBQ1g7RUFDRixDQUFDO0VBRURGLFlBQVksRUFBRSxTQUFBQSxDQUFTRixTQUFTLEVBQUU7SUFDaEMsSUFBSUEsU0FBUyxDQUFDSyxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCLE9BQU9MLFNBQVMsQ0FBQ0ssS0FBSztJQUN4QixDQUFDLE1BQU07TUFDTCxPQUFPLENBQUM7SUFDVjtFQUNGLENBQUM7RUFFREMsYUFBYUEsQ0FBQ0MsTUFBTSxFQUFFUCxTQUFTLEVBQUU7SUFDL0IsSUFBQVEsbUNBQW9CLEVBQUNELE1BQU0sRUFBRUUsaUJBQVEsQ0FBQ2IsRUFBRSxFQUFFSSxTQUFTLENBQUNHLFNBQVMsRUFBRUgsU0FBUyxDQUFDSyxLQUFLLENBQUM7RUFDakYsQ0FBQztFQUVESyxVQUFVQSxDQUFDSCxNQUFNLEVBQUVQLFNBQVMsRUFBRTtJQUM1QixJQUFBVywyQkFBWSxFQUFDSixNQUFNLEVBQUVQLFNBQVMsQ0FBQ0ksS0FBSyxFQUFtQkosU0FBUyxDQUFDRyxTQUFTLEVBQUVILFNBQVMsQ0FBQ0ssS0FBSyxFQUFFLFNBQVMsQ0FBQztFQUN6RyxDQUFDO0VBRURPLFFBQVEsRUFBRSxTQUFBQSxDQUFTUixLQUFLLEVBQWlCO0lBQ3ZDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFDQUEsS0FBSyxHQUFHUyxVQUFVLENBQUNULEtBQUssQ0FBQztJQUN6QixJQUFJVSxLQUFLLENBQUNWLEtBQUssQ0FBQyxFQUFFO01BQ2hCLE1BQU0sSUFBSVcsU0FBUyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDO0lBQ0EsT0FBT1gsS0FBSztFQUNkO0FBQ0YsQ0FBQztBQUFDLElBQUFZLFFBQUEsR0FBQUMsT0FBQSxDQUFBdkIsT0FBQSxHQUVhQyxPQUFPO0FBQ3RCdUIsTUFBTSxDQUFDRCxPQUFPLEdBQUd0QixPQUFPIiwiaWdub3JlTGlzdCI6W119