Files
simple-mail-cleaner/backend/node_modules/zeptomatch/dist/utils.js
2026-01-23 01:33:35 +01:00

32 lines
916 B
JavaScript

/* IMPORT */
/* MAIN */
const identity = (value) => {
return value;
};
const isString = (value) => {
return typeof value === 'string';
};
const memoizeByObject = (fn) => {
const cacheFull = new WeakMap();
const cachePartial = new WeakMap();
return (globs, options) => {
const cache = options?.partial ? cachePartial : cacheFull;
const cached = cache.get(globs);
if (cached !== undefined)
return cached;
const result = fn(globs, options);
cache.set(globs, result);
return result;
};
};
const memoizeByPrimitive = (fn) => {
const cacheFull = {};
const cachePartial = {};
return (glob, options) => {
const cache = options?.partial ? cachePartial : cacheFull;
return cache[glob] ?? (cache[glob] = fn(glob, options));
};
};
/* EXPORT */
export { identity, isString, memoizeByObject, memoizeByPrimitive };