UNPKG

node-beanstalk

Version:

The most comprehensive beanstalk client for nodejs

77 lines 3.6 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Command = void 0; var js_yaml_1 = require("js-yaml"); var CommandError_1 = require("./error/CommandError"); var const_1 = require("./const"); var types_1 = require("./types"); var Command = /** @class */ (function () { function Command(commandName, opt) { if (opt === void 0) { opt = {}; } var _a, _b, _c; if (!types_1.BeanstalkCommand[commandName]) { throw new CommandError_1.CommandError(CommandError_1.CommandErrorCode.ErrCommandUnknown, "Unknown beanstalk command '".concat(commandName, "'")); } this.opt = { payloadBody: (_a = opt.payloadBody) !== null && _a !== void 0 ? _a : false, yamlBody: (_b = opt.yamlBody) !== null && _b !== void 0 ? _b : false, expectedStatus: ((_c = opt.expectedStatus) !== null && _c !== void 0 ? _c : []).map(function (status) { if (!types_1.BeanstalkResponseStatus[status]) throw new CommandError_1.CommandError(CommandError_1.CommandErrorCode.ErrResponseStatusUnknown, "Unknown beanstalk response status expected '".concat(commandName, "'")); return status; }), }; this.commandName = commandName; } /** * Build command as buffer * * @private */ Command.prototype.buildCommandBuffer = function (args, payload) { if (args === void 0) { args = []; } var parts = __spreadArray([this.commandName], args, true); if (payload) { parts.push("".concat(payload.length)); return Buffer.concat([Buffer.from(parts.join(' ')), const_1.CRLF_BUFF, payload, const_1.CRLF_BUFF]); } return Buffer.concat([Buffer.from(parts.join(' ')), const_1.CRLF_BUFF]); }; Command.prototype.handleResponse = function (response, serializer) { var _a; if (types_1.BeanstalkErrorResponseStatus[response.status]) { throw new CommandError_1.CommandError(CommandError_1.CommandErrorCode.ErrErrorResponseStatus, "Error status '".concat(response.status, "' received in response to '").concat(this.commandName, "' command")); } if (!((_a = this.opt.expectedStatus) === null || _a === void 0 ? void 0 : _a.includes(response.status))) { throw new CommandError_1.CommandError(CommandError_1.CommandErrorCode.ErrUnexpectedResponseStatus, "Unexpected status '".concat(response.status, "' received in response to '").concat(this.commandName, "' command")); } var res = { status: response.status, headers: response.headers, }; if (response.data) { res.data = response.data.slice(0, response.data.length - const_1.CRLF_BUFF.length); if (this.opt.payloadBody) { if (serializer) { res.data = serializer.deserialize(res.data); } } else if (this.opt.yamlBody) { res.data = (0, js_yaml_1.load)(res.data.toString()); } } return res; }; return Command; }()); exports.Command = Command; //# sourceMappingURL=Command.js.map