@brooswit/ sundry (英语)
一个小型、经过良好测试的TypeScript工具箱。 每一个都是独立的;多加一点.
watch(fn, onChange, intervalMs, options?)
选票 fn 间隔和呼叫 onChange(next, prev) 当值变化时。 回返a stop()。 。 。 .
import { watch } from "@brooswit/sundry";
const stop = watch(
() => fs.statSync("config.json").mtimeMs, // sync or async
(next, prev) => console.log("changed", prev, "→", next),
1000,
);
// ...later
stop(); // idempotent
- 第一个呼叫是基线 ——它捕捉到初始值并且确实 没有 开火
onChange。 。 。 . - 变化被稳定、独立的散列探测到这样
{a:1,b:2}→{b:2,a:1}实值 没有 变化. - 适应性粗放. 每个勾选符运行间隔计时器和
fn一次; 下个勾选开始于两个完成时——max(interval, fn-duration)。斋戒fn保持平稳间隔; 缓慢fn连续运行,没有间隙和滴出滴出。 滴答从不重复下一个. fn可能同步或同步.- 投出/ 弹出跳过此勾选 (不变,基线)。 过
options.onError以观察之. options数字 :onError?, (中文(简体) ),hash?(覆盖散列),setTimeout?编号 :clearTimeout?(输入计时器,例如用于测试).
也导出 : hashValue, (中文(简体) ), stableStringify, (中文(简体) ), fnv1a。 。 。 .
发展
bun run check # generate + typecheck + tests + coverage ≥90% (what CI runs)
bun test
每换到 src/ 需要一个 CHANGELOG.md 条目和版本凸起( CI 强制); 合并到 main 以出处发布到 npm.