29 lines
925 B
JavaScript
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 };
|