外观
为 Web 与 WebView 应用准备的运行时基础库。
统一存储、网络请求与宿主通信,让常用能力触手可及。
TypeScript 优先 框架无关 按需使用
import { createStorage } from '@freenotes/web-runtime';
// 类型跟随 key,读写更安心
interface Preferences {
theme: 'light' | 'dark';
}
const storage = createStorage<Preferences>('local');
storage.set('theme', 'dark');
const theme = storage.get('theme');
// theme 的类型:'light' | 'dark' | undefinedCAPABILITIES
从浏览器中的一次读写,
到 WebView 与宿主的每次交互。
统一 localStorage 与 sessionStorage,管理类型、版本、过期与校验。
createStorage()通过契约声明业务接口,集中管理请求配置、重试、解码与错误语义。
createHttp()连接 WebView 与 App,统一类型化调用、宿主事件和错误处理。
createBridge()用 Promise 操作 IndexedDB,保留数据库、索引与升级迁移的原生语义。
createDb()标准化日志记录与异常信息,通过 transport 接入自己的上报平台。
createLogger()复制链接、日志与文本,统一原生 Clipboard API 和 WebView fallback。
createClipboard()pnpm add @freenotes/web-runtime