@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
JavaScript
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;