node-beanstalk
Version:
The most comprehensive beanstalk client for nodejs
77 lines • 3.6 kB
JavaScript
;
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