UNPKG

@nasriya/cachify

Version:

A lightweight, extensible in-memory caching library for storing anything, with built-in TTL and customizable cache types.

20 lines (19 loc) 659 B
import atomix from "@nasriya/atomix"; import { basicValidators } from "./assert/validators.js"; const hasOwnProp = atomix.dataTypes.record.hasOwnProperty; const assert = { type: basicValidators, objectProp: (obj, prop, options = { required: false }) => { if (hasOwnProp(obj, prop)) { options?.validator?.(obj[prop], prop, options.context); options?.onValidResult?.(); } else if (options.required) { throw new RangeError(`The "${options.context ?? 'options'}" object (when provided) must contain a "${prop}" property.`); } } }; const utils = { assert }; export default utils;