fix: MiniApp type check

This commit is contained in:
手瓜一十雪
2024-12-01 13:11:56 +08:00
parent 9eaf51e15f
commit 97f317254e

View File

@@ -4,25 +4,33 @@ import { MiniAppInfo, MiniAppInfoHelper } from "@/core/packet/utils/helper/miniA
import { MiniAppData, MiniAppRawData, MiniAppReqCustomParams, MiniAppReqParams } from "@/core/packet/entities/miniApp"; import { MiniAppData, MiniAppRawData, MiniAppReqCustomParams, MiniAppReqParams } from "@/core/packet/entities/miniApp";
import { Static, Type } from '@sinclair/typebox'; import { Static, Type } from '@sinclair/typebox';
const SchemaData = Type.Object({ const SchemaData = Type.Union([
type: Type.Optional(Type.Union([Type.Literal('bili'), Type.Literal('weibo')])), Type.Object({
title: Type.String(), type: Type.Union([Type.Literal('bili'), Type.Literal('weibo')]),
desc: Type.String(), title: Type.String(),
picUrl: Type.String(), desc: Type.String(),
jumpUrl: Type.String(), picUrl: Type.String(),
iconUrl: Type.Optional(Type.String()), jumpUrl: Type.String(),
sdkId: Type.Optional(Type.String()), rawArkData: Type.Optional(Type.Union([Type.Boolean(), Type.String()]))
appId: Type.Optional(Type.String()), }),
scene: Type.Optional(Type.Union([Type.Number(), Type.String()])), Type.Object({
templateType: Type.Optional(Type.Union([Type.Number(), Type.String()])), title: Type.String(),
businessType: Type.Optional(Type.Union([Type.Number(), Type.String()])), desc: Type.String(),
verType: Type.Optional(Type.Union([Type.Number(), Type.String()])), picUrl: Type.String(),
shareType: Type.Optional(Type.Union([Type.Number(), Type.String()])), jumpUrl: Type.String(),
versionId: Type.Optional(Type.String()), iconUrl: Type.String(),
withShareTicket: Type.Optional(Type.Union([Type.Number(), Type.String()])), appId: Type.String(),
rawArkData: Type.Optional(Type.Union([Type.Boolean(), Type.String()])) scene: Type.Union([Type.Number(), Type.String()]),
}); templateType: Type.Union([Type.Number(), Type.String()]),
businessType: Type.Union([Type.Number(), Type.String()]),
verType: Type.Union([Type.Number(), Type.String()]),
shareType: Type.Union([Type.Number(), Type.String()]),
versionId: Type.String(),
sdkId: Type.String(),
withShareTicket: Type.Union([Type.Number(), Type.String()]),
rawArkData: Type.Optional(Type.Union([Type.Boolean(), Type.String()]))
})
]);
type Payload = Static<typeof SchemaData>; type Payload = Static<typeof SchemaData>;
export class GetMiniAppArk extends GetPacketStatusDepends<Payload, { export class GetMiniAppArk extends GetPacketStatusDepends<Payload, {
@@ -39,13 +47,10 @@ export class GetMiniAppArk extends GetPacketStatusDepends<Payload, {
picUrl: payload.picUrl, picUrl: payload.picUrl,
jumpUrl: payload.jumpUrl jumpUrl: payload.jumpUrl
} as MiniAppReqCustomParams; } as MiniAppReqCustomParams;
if (payload.type) { if ('type' in payload) {
reqParam = MiniAppInfoHelper.generateReq(customParams, MiniAppInfo.get(payload.type)!.template); reqParam = MiniAppInfoHelper.generateReq(customParams, MiniAppInfo.get(payload.type)!.template);
} else { } else {
const { appId, scene, iconUrl, templateType, businessType, verType, shareType, versionId, withShareTicket } = payload; const { appId, scene, iconUrl, templateType, businessType, verType, shareType, versionId, withShareTicket } = payload;
if (!appId || !scene || !iconUrl || !templateType || !businessType || !verType || !shareType || !versionId || !withShareTicket) {
throw new Error('Missing required parameters');
}
reqParam = MiniAppInfoHelper.generateReq( reqParam = MiniAppInfoHelper.generateReq(
customParams, customParams,
{ {