@nietzsci/zarith-bridge
v0.3.2
Published
POS Native Core JS Bridge SDK — window.zarith.invoke wrapper with HTTP fallback
Readme
@nietzsci/zarith-bridge
JavaScript Bridge SDK for POS Native Core — wraps
window.zarith.invokewith type safety, retry, interceptors, HTTP fallback.
设计
- 6 个域客户端:
pay/print/device/config/log/job(与bridge-spec-v1.md§ 4 一一对应) - invoke 协议:成功
{status:'ok',data}resolve(data) / 失败 reject(BridgeError) - 9 类错误码:BridgeError + ErrorCode enum
- HTTP fallback:无 native bridge 时直接 fetch
127.0.0.1:51168(开发环境 / PWA 模式) - mock fallback:测试用,返回固定响应
- 重试 + 拦截器:可选;默认
pay.sale/refund/void永不重试 - 事件订阅:on / off / emit,自动桥接
window.__zarithEvent
用法
import { Zarith } from '@nietzsci/zarith-bridge';
const pos = new Zarith({
fallbackHttpUrl: 'http://127.0.0.1:51168',
retry: { enabled: true, maxRetries: 2 },
});
// 支付
const resp = await pos.pay.sale({ amount: '12.34', jobId: 'ORDER001' });
// 打印
await pos.print.receipt({ dsl: builder.build(), copies: 2 });
// 事件
const unsub = pos.on('job.progress', ({ jobId, progress }) => {
console.log(jobId, progress);
});错误处理
import { BridgeError, ErrorCode } from '@nietzsci/zarith-bridge';
try {
await pos.pay.sale({ amount: '12.34', jobId: 'X' });
} catch (e) {
if (e instanceof BridgeError && e.code === ErrorCode.PoslinkDeclined) {
alert('交易被拒');
}
}