@broberg/重力
Gravatar URL和Avatar为舰队首字母缩写. 零运行时间依赖性,同位素.
npm i @broberg/gravatar
import { gravatarUrl, gravatarLookup, getInitials } from "@broberg/gravatar";
await gravatarUrl("[email protected]", { size: 80, default: "404" });
await gravatarLookup("[email protected]"); // 'yes' | 'no' | 'unknown'
getInitials("Christian Broberg"); // 'CB'
还有船 @broberg/gravatar/react 财务报告和审定财务报表 @broberg/gravatar/preact。 。 。 .
gravatarLookup() ——三种结果,因为有三种
const presence = await gravatarLookup("[email protected]");
if (presence !== "unknown") cache.set(email, presence); // never cache a guess
| 回应 | 结果 | 含义 |
|---|---|---|
404 | no | 绝对不是虚构的 |
200 | yes | |
| 5xx 抛出 超时 出奇状态 | unknown | 不要将此缓存为否 |
为什么它存在(v0.2.0. 古老的布林把三个事实折叠成两个:一个503来自Automattic,一个中断的连接都回来了 false,其内容如下: "没有照片"。 。 。 .
还有你 缓存 这个答案,你必须, 或者你要求自动在每一页渲染。 因此,一个十秒打嗝使得一个用户花费了他们的Avatar,直到缓存到期,在呼叫站没有任何信息可以透露. 一个消费者在他们通过这个包裹的那天发现的.
gravatarExists() 现有呼叫者保持不变 他俩还是分不清 两者都是 false。如果存储结果,您会存储每一次失败的猜测。 使用 gravatarLookup 任何你缓存的东西.
getInitials() ——字母,而非字符
getInitials("Lens (verifikation)"); // 'LV' (was 'L(' before v0.2.0)
getInitials(null, "[email protected]"); // 'X' (was 'X@')
getInitials(" "); // '??' (was two spaces)
getInitials("李 明"); // '李明'
getInitials("José"); // 'JO'
在非字母/非数字,unicode-aware上进行分拆——因此CJK和重音拉丁语作品,只有ASCII的测试套房是永远不会抓到的.
电子邮件分支拿走 前缀 在此之前 @。这就是它的文件总是声称的;代码读取了整个地址,只看对了,因为大多数地址都是从两个字母开始的.
邮件在 name 插槽工程(v0.2.1). getInitials("[email protected]") → CB,与 getInitials(null, "[email protected]") - 因为.. navn = bruger.navn || bruger.email 是一个普通的呼叫站,两个论点必须同意。 侦测是保守的: 完全是一个 @,两侧无空和白空,所以 "Anne @ Hansen" 保持一个名字.
0.2.0 得到这个错误并运出它: 名字槽中的每一个地址都出现在TLD的第一个字母中(
[email protected]→CD) (中文(简体) ). 本来应该被它抓住的接受标准,在《公约》中也坚持了同样的标准 电子邮件 论点只是——索赔涉及的是普通案件,检验标准涉及的是一种论点,两者都是绿色的.
众所周知的限制,故意的. getInitials("Jens Hansen, direktør") 返回时 JD - 它以标题为姓氏。 在第一个逗号上断线就能修好丹麦人 "名字,标题" 表格和表格 换行 同样常见的 "苏姓,名出" 输出。 两会相会相会,相会相会相会,而弦中无所分辨. 独自一人 而不是猜测.
核心点是 async,目的
gravatarHash 财务报告和审定财务报表 gravatarUrl 返回承诺,因为使用 crypto.subtle - 在Node, Bun, Deno, 工人中存在的一个散列API 财务报告和审定财务报表 浏览器.
仅限节点的消费者期望同步 createHash 将惊讶。 这就是同位素税,这是刻意的:替代办法是每个消费者有两个代码路径和一个捆绑条件.
API 密码
| 导出 | |
|---|---|
gravatarHash(email) | SHA-256 修饰后,小写地址 |
gravatarUrl(email, { size?, default? }) | 完整图像 URL |
gravatarLookup(email, size?) | 'yes' | 'no' | 'unknown' |
gravatarExists(email, size?) | boolean 损失;见上文 |
getInitials(name?, email?) | 最多两个大写字符,或 '??' |