@nasriya/cachify
Version:
A lightweight, extensible in-memory caching library for storing anything, with built-in TTL and customizable cache types.
25 lines (24 loc) • 920 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const atomix_1 = __importDefault(require("@nasriya/atomix"));
const validators_1 = require("./assert/validators");
const hasOwnProp = atomix_1.default.dataTypes.record.hasOwnProperty;
const assert = {
type: validators_1.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
};
exports.default = utils;