Перейти к основному содержимому

withSignature

@mineflow/contracts


@mineflow/contracts / withSignature

Function: withSignature()

function withSignature<T>(base: T): ZodObject<{
[key: string]: any;
_signature: ZodOptional<ZodObject<{
cms: ZodString;
format: ZodLiteral<"cms">;
}, $strip>>;
_signatures: ZodOptional<ZodArray<ZodObject<{
cms: ZodString;
format: ZodLiteral<"cms">;
}, $strip>>>;
}, $strip>;

Defined in: shared.ts:134

withSignature(base) — навешивает на подписываемый DTO зарезервированные опциональные поля транспорта ЭЦП: _signature (одиночная) и _signatures (массив для dual-party, ступень 4). Применяется к .strict()-DTO подписываемых write-роутов, чтобы _signature(s) прошёл ZodValidationPipe (иначе .strict() отвергнет неизвестный ключ). Доменная логика use-case'а эти поля игнорирует — подпись снимает SignatureGuard ДО ValidationPipe. Роуты без тела получают минимальное опциональное тело: withSignature(z.object({}).strict()).

Type Parameters​

Type Parameter
T extends ZodObject<$ZodLooseShape, $strip>

Parameters​

ParameterType
baseT

Returns​

ZodObject<{ [key: string]: any; _signature: ZodOptional<ZodObject<{ cms: ZodString; format: ZodLiteral<"cms">; }, $strip>>; _signatures: ZodOptional<ZodArray<ZodObject<{ cms: ZodString; format: ZodLiteral<"cms">; }, $strip>>>; }, $strip>

Example​

const ApproveBody = withSignature(z.object({}).strict());