UNPKG

retryable-document-client

Version:
172 lines (171 loc) 6.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var exponential_1 = require("./strategies/exponential"); var linear_1 = require("./strategies/linear"); var constant_1 = require("./strategies/constant"); var instant_1 = require("./strategies/instant"); var constructor = function (documentClient, defaultRetryStrategy) { var client = { batchGet: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.batchGet(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.batchGet(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, batchWrite: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.batchWrite(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.batchWrite(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, createSet: documentClient.createSet, delete: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.delete(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.delete(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, get: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.get(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.get(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, put: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.put(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.put(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, query: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.query(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.query(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, scan: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.scan(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.scan(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, update: function (params, callback, retryStrategy, attempt) { if (retryStrategy === void 0) { retryStrategy = defaultRetryStrategy; } if (attempt === void 0) { attempt = 1; } documentClient.update(params, function (err, data) { if (retryStrategy) { retryStrategy(err, attempt, function (retry) { if (retry) { client.update(params, callback, retryStrategy, attempt + 1); } else { callback(err, data); } }); } else { callback(err, data); } }); }, }; return client; }; exports.strategies = { exponential: exponential_1.default, linear: linear_1.default, constant: constant_1.default, instant: instant_1.default, }; exports.default = constructor;