Files

29 lines
925 B
JavaScript

/** 内容页路由参数校验:id 必须是无前导零的正整数字符串,并处于 JS 安全整数范围。 */
function e(e) {
if (typeof e != `string` || !/^[1-9]\d*$/.test(e)) return null;
let t = Number(e);
return Number.isSafeInteger(t) ? t : null;
}
// 只接受当前前端实现的帮助、新闻、公告内容类型。
function t(e) {
return e === `help` || e === `news` || e === `notices` ? e : null;
}
// 通过插件记录确定类型;兼容缺省 status,明确停用或未知类型的插件不生成内容路由。
function n(t, n) {
let r = e(t);
return r
? ({
IdcsmartHelp: `help`,
IdcsmartNews: `news`,
IdcsmartAnnouncement: `notices`,
}[
n.find(
(e) =>
Number(e.id) === r &&
(e.status === void 0 || Number(e.status) === 1),
)?.name ?? ``
] ?? null)
: null;
}
export { n, t as r, e as t };