@setho/dynamodb-repository
Version:
DynamoDB repository for hash-key and hash-key/range indexed tables. Designed for Lambda use. Handles nice-to-haves like created and updated timestamps and default id creation.
25 lines • 1.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const joi_1 = __importDefault(require("joi"));
const http_errors_1 = require("http-errors");
const keyValueRepoConstructorSchema = joi_1.default.object().keys({
tableName: joi_1.default.string().required(),
keyName: joi_1.default.string().required(),
idOptions: joi_1.default.object().keys({
prefix: joi_1.default.string(),
}),
documentClient: joi_1.default.object().required(),
});
const createMessage = (error) => error.details.map((detail) => detail.message).join(', ');
const keyValueRepoConstructor = (constructorArgs) => {
const { error } = keyValueRepoConstructorSchema.validate(constructorArgs);
if (error) {
const errorMessage = createMessage(error);
throw new http_errors_1.BadRequest(`Bad Request: ${errorMessage}`);
}
};
exports.default = keyValueRepoConstructor;
//# sourceMappingURL=validator.js.map