loginack-token-parser.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _token = require("./token");
  7. var _tdsVersions = require("../tds-versions");
  8. const interfaceTypes = {
  9. 0: 'SQL_DFLT',
  10. 1: 'SQL_TSQL'
  11. };
  12. function loginAckParser(parser, _colMetadata, _options, callback) {
  13. // length
  14. parser.readUInt16LE(() => {
  15. parser.readUInt8(interfaceNumber => {
  16. const interfaceType = interfaceTypes[interfaceNumber];
  17. parser.readUInt32BE(tdsVersionNumber => {
  18. const tdsVersion = _tdsVersions.versionsByValue[tdsVersionNumber];
  19. parser.readBVarChar(progName => {
  20. parser.readUInt8(major => {
  21. parser.readUInt8(minor => {
  22. parser.readUInt8(buildNumHi => {
  23. parser.readUInt8(buildNumLow => {
  24. callback(new _token.LoginAckToken({
  25. interface: interfaceType,
  26. tdsVersion: tdsVersion,
  27. progName: progName,
  28. progVersion: {
  29. major: major,
  30. minor: minor,
  31. buildNumHi: buildNumHi,
  32. buildNumLow: buildNumLow
  33. }
  34. }));
  35. });
  36. });
  37. });
  38. });
  39. });
  40. });
  41. });
  42. });
  43. }
  44. var _default = loginAckParser;
  45. exports.default = _default;
  46. module.exports = loginAckParser;