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