Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
get-incremental-cached-data
Advanced tools
Incremental Static Regeneration for any slow function. Get any data from cache and update in cache, if cache time is out
The purpose of this script is to immediately and very quickly (a few milliseconds) return result of execution slow functions from cache and update the data in the cache after the data is returned.
For example, you have fetch
, the request is executed for 200 milliseconds and each client waits for data to load, although the data is updated once an hour. This script, after the first execution, caches the data and returns the result of the previous execution in ~5 milliseconds.
This is similar to getStaticProps with revalidate
in recent versions next.js.
npm i get-incremental-cached-data
or
yarn add get-incremental-cached-data
see
examples
dir for more examples.
import ISR from 'get-incremental-cached-data';
const url = 'https://slow.site/with/slow/backend';
const slowFunctionWithQueryData = () => fetch(url);
const isr = new ISR(slowFunctionWithQueryData, {
key: url,
cacheTime: 30 * 1000,
});
let data = await isr.getData();
Asynchronous Function (fetching, calculating, etc...) Must return some data.
const slowFunctionWithQueryData = () => fetch('https://slow.site/with/slow/backend');
Object of options
options = {
cacheTime = 5 * 1000, // Time from first execution, then script will re-execute function. Returning CACHED data (Boolean, Time in milliseconds)
criticalCacheTime = 60 * 60 * 1000, // Time, after first execution, then cache is cleaned/ Function executed always (Milliseconds)
key, // Unique key in cache (String, Buffer, Array or Uint8Array)
onComplete = function(data: any) :any, // Do something with data from first function (Function)
isLogging = false, // Show logs or not (Boolean)
noCache = false, // if true - no magic (Boolean)
clearCache = false, // If true - ALL cache will be cleaned before execution (Boolean)
}
getData
- async, returning data
cacheTime
< then time from first execution - returning result from cachecacheTime
> then time from first execution: immediately returning result from cache, re-executing function and putting result to cachecriticalCacheTime
> then time from last execution: like in First executionЦель этого скрипта - немедленно и очень быстро (несколько миллисекунд) вернуть результат выполнения медленных функций из кеша и обновить данные в кэше после того, как данные будут возвращены.
Например, у вас есть fetch
, запрос выполняется в течение 200 миллисекунд, и каждый клиент ожидает загрузки данных, хотя данные обновляются раз в час. Этот скрипт после первого выполнения кэширует данные и возвращает результат предыдущего выполнения через ~5 миллисекунд.
Это похоже на getStaticProps с параметром revalidate
в последних версиях next.js .
npm i get-incremental-cached-data
или
yarn add get-incremental-cached-data
В папке
examples
есть пару примеров.
import ISR from 'get-incremental-cached-data';
const url = 'https://slow.site/with/slow/backend';
const slowFunctionWithQueryData = () => fetch(url);
const isr = new ISR(slowFunctionWithQueryData, {
key: url,
cacheTime: 30 * 1000,
});
let data = await isr.getData();
Медленная Асинхронная функция (запрос данных с бекенда, например)
const slowFunctionWithQueryData = () => fetch('https://slow.site/with/slow/backend');
Объект настроек выполнения
options = {
cacheTime = 5 * 1000, // Время с момента первого выполнения, затем скрипт повторно выполнит функцию. Возврат **кешированных** данных (Boolean, время в миллисекундах)
criticalCacheTime = 60 * 60 * 1000 , // Время, после первого выполнения, когда кэш очистится / Функция выполняется всегда (миллисекунды)
key, // Уникальный ключ в кэше (строка, буфер, массив или Uint8Array)
onComplete = function(data: any) :any, // Операции с данными из первой функции (Function)
isLogging = false, // Показывать отладку в консоли или нет (Boolean)
noCache = false, // если true - никакой магии (Boolean)
clearCache = false, // Если true - **весь** кэш будет очищен перед выполнением (Boolean)
}
getData
- асинхронная, возврат данных
cacheTime
< времени с момента первого выполнения - возвращается результат из кэшаcacheTime
>, времени с момента первого выполнения: немедленно возвращается результат из кэша, а затем выполняется функция и результат помещается в кэшcriticalCacheTime
> времени с момента последнего выполнения: все работает как при первом выполненииFAQs
Incremental Static Regeneration for any slow function. Get any data from cache and update in cache, if cache time is out
The npm package get-incremental-cached-data receives a total of 0 weekly downloads. As such, get-incremental-cached-data popularity was classified as not popular.
We found that get-incremental-cached-data demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.