@nerdware/ddb-single-table
Version:
A schema-based DynamoDB modeling tool, high-level API, and type-generator built to supercharge single-table designs!⚡
18 lines (17 loc) • 806 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateItem = void 0;
const ts_type_safety_utils_1 = require("@nerdware/ts-type-safety-utils");
const errors_js_1 = require("../utils/errors.js");
/**
* This `IOAction` uses `modelSchemaOptions.validateItem` to validate an item in its entirety.
*
* @throws {ItemInputError} If the `validateItem` function returns `false`.
*/
const validateItem = function (item, { modelName, schemaOptions: { validateItem } }) {
// If schemaOptions has validateItem, pass the existing item into the fn
if ((0, ts_type_safety_utils_1.isFunction)(validateItem) && validateItem(item) === false)
throw new errors_js_1.ItemInputError(`Invalid ${modelName} item.`);
return item;
};
exports.validateItem = validateItem;