跳到主要内容

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​

ParameterTypeDescription
runtimeGlobaltypeof 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​

ParameterType
lengthnumber

Returns​

Promise<Uint8Array<ArrayBufferLike>>