不可信声明。undefined 和 [] 均返回空绑定;其他值必须是最多 20 项的
字符串数组,不接受 null、单个字符串、number 数组或类数组对象。
可选诊断来源;sourceLabel 默认 package.json#heybox.bindAppIds,并原样
作为所有错误消息的前缀。
新建、按 appid 数值升序排列且经 Object.freeze 冻结的 readonly string[]。
输入数组及其顺序不会被修改;空输入也返回新的冻结空数组。
Error ${sourceLabel} 包含非法游戏 appid:<value>:任一项不是 string,或不匹配
/^[1-9]\d*$/。因此空串、首尾空白、0、前导零、正负号、小数、指数和非十进制字符
都不会被自动修正。
合法范围是闭区间 1..2147483647,每项在输出中仍保持十进制 string。排序按数值而不是
字典序执行,所以 ['3513350', '730', '10'] 输出为 ['10', '730', '3513350']。
函数先复制后排序并冻结结果,不排序或冻结调用方传入的数组。
这是同步、纯离线的格式规范化函数,不访问网络,也不确认 appid 是否真实存在、可绑定或
属于当前开发者。miniappManifest() 用它校验 package.json#heybox.bindAppIds 并把非空结果
写入 Manifest;远端 deploy 预检和提审才校验游戏可用性。缺失和空数组在普通构建中都表示
无绑定,函数本身不处理 remote deploy --from-version 的历史快照继承语义。
bindAppIds 是版本发布元数据,不是 Runtime 权限,也不会因调用
navigation.openAppPage 而变化。后者的 appId 是一次
页面导航参数,允许 string 或 number、只要求字符串化后非空,不适用本函数的数组、int32、
前导零、去重、20 项或排序规则。
import { parseMiniappBindAppIds } from '@heybox/hb-sdk/miniapp-publish'
const declared = ['3513350', '730', '10']
const appIds = parseMiniappBindAppIds(declared)
console.log(appIds) // ['10', '730', '3513350']
console.log(declared) // ['3513350', '730', '10'],输入顺序不变
console.log(Object.isFrozen(appIds)) // true
校验并规范化小程序关联的游戏 App ID。