@jingbof/rets-client
Version:
RETS (Real Estate Transaction Standards) Client in Typescript
50 lines • 2.08 kB
JavaScript
;
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