MiniProgramHost
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:87
平台无关的小程序宿主:同步文件、用户数据目录、安全随机源与平台 id。
每个平台一个实现,禁止用「形状像 wx」的全局对象冒充别的平台。
微信实现见 createWechatMiniProgramHost(wx),抖音见 createDouyinMiniProgramHost(tt),
支付宝见 createAlipayMiniProgramHost(my, options)。
Properties
capabilityNames
readonly capabilityNames: MiniProgramHostCapabilityNames;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:97
预检能力名。
defaultWasmPath?
readonly optional defaultWasmPath?: string;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:124
未传 wasmPath 时使用的代码包内 wasm 路径;缺省为 DEFAULT_WASM_PATH,微信不设。
Remarks
抖音把相对路径按当前页面目录解析,只有以 / 开头的代码包根路径能在任意页面加载。
displayName
readonly displayName: string;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:91
报错前缀,如 微信小程序。
fileLayout?
readonly optional fileLayout?: MiniProgramFileLayout;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:117
存储布局;缺省为 { kind: 'single' },微信不设。
Remarks
抖音覆盖写已有文件时旧文件在写成功前仍计入配额,整文件落盘让库上限只剩配额的一半左右,
撞配额后热 journal 回滚也没有空间,库永久打不开;chunked 只重写改过的块并预留回滚余量。
platform
readonly platform: "wechat" | "douyin" | "alipay";
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:89
平台 id,必须在 MINI_PROGRAM_PLATFORM_IDS 中。
runtimeGlobal?
readonly optional runtimeGlobal?: typeof globalThis;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:109
真实全局对象;缺省时用环境里的 globalThis。
Remarks
抖音页面模块的包装函数把 globalThis 遮蔽成 undefined,global 也只是不带内置对象的空壳,
只有非严格函数的 this 才是真实全局对象。adapter 是严格模式模块拿不到它,
要由调用方在非严格代码里取到后注入。补丁装在这里,RxDB 与 wa-sqlite 才能经自由变量读到。
不是当前 realm 的全局对象时直接拒绝,不回退到环境。
shortName
readonly shortName: string;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:93
文件 VFS 报错里的平台简称,如 微信。
userDataPath
readonly userDataPath: string | undefined;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:99
用户数据目录;平台不提供时为 undefined,由预检报缺失。
wasmRuntimeName
readonly wasmRuntimeName: string;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:95
平台 WASM 运行时全局名,如 WXWebAssembly。
Methods
getFileSystemManager()
getFileSystemManager():
| MiniProgramFileSystemManager
| undefined;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:126
同步文件系统;平台不提供时返回 undefined,由预检报缺失。
Returns
| MiniProgramFileSystemManager
| undefined
prepareRuntime()?
optional prepareRuntime(runtimeGlobal): Promise<void>;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:142
引导运行时时、装通用 polyfill 之前调用一次,给宿主补齐平台特有的缺口或检测连接依赖的能力;微信、抖音不设,支付宝设。
Parameters
| Parameter | Type | Description |
|---|---|---|
runtimeGlobal | typeof globalThis | 已解析的真实全局对象 |
Returns
Promise<void>
Remarks
只许做保持语义的修补;做不到就 reject,引导随之失败,不许降级。
requestRandomValues()
requestRandomValues(length): Promise<Uint8Array<ArrayBufferLike>>;
Defined in: packages/rxdb-adapter-miniprogram/src/mini-program.interface.ts:133
向平台申请恰好 length 字节的密码学安全随机数;做不到必须 reject,不许降级。
每次返回新分配的缓冲区,交出后宿主不再读写它:运行时直接把它当随机池,逐段发出并擦零。 复用仍在使用的缓冲区会被识别为违约并拒绝。
Parameters
| Parameter | Type |
|---|---|
length | number |
Returns
Promise<Uint8Array<ArrayBufferLike>>