UNPKG

@jingbof/rets-client

Version:

RETS (Real Estate Transaction Standards) Client in Typescript

50 lines 2.08 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.readRetsObject = void 0; var bufferSplit_1 = require("./bufferSplit"); var HEADER_BOUNDARY = '\r\n\r\n'; var HEADER_ITEM_BOUNDARY = '\r\n'; var HEADER_ITEM_PARTS_BOUNDARY = ': '; var readRetsHeaders = function (buffer) { var headers = buffer.toString().split(HEADER_ITEM_BOUNDARY); return headers.reduce(function (acc, header) { var _a; var _b = header.split(HEADER_ITEM_PARTS_BOUNDARY), key = _b[0], value = _b[1]; return __assign(__assign({}, acc), (key && value ? (_a = {}, _a[key] = value, _a) : {})); }, {}); }; var readRetsObject = function (buffer) { var _a, _b, _c, _d; var _e = (0, bufferSplit_1.bufferSplit)(buffer, Buffer.from(HEADER_BOUNDARY)), header = _e[0], rest = _e.slice(1); if (rest === undefined || rest.length === 0) { return undefined; } var data = Buffer.concat(rest); var parsedHeader = readRetsHeaders(header); var contentId = (_a = parsedHeader['Content-ID']) !== null && _a !== void 0 ? _a : ''; var objectId = parseInt(parsedHeader['Object-ID'], 10) || 1; var contentType = (_b = parsedHeader['Content-Type']) !== null && _b !== void 0 ? _b : ''; var description = (_c = parsedHeader.Description) !== null && _c !== void 0 ? _c : ''; var location = (_d = parsedHeader.Location) !== null && _d !== void 0 ? _d : ''; return { data: data, contentId: contentId, objectId: objectId, contentType: contentType, description: description, location: location, }; }; exports.readRetsObject = readRetsObject; //# sourceMappingURL=readRetsObject.js.map