Files
NapCatQQ/.pnpm-store/v3/files/bf/d3b7b83ed678b5addf3e181c61ed27951f46e10992443024d17b94a6d8ba36bc4f0cfc431794dbccd0409456752bd04e903f8189821e4457cb9b5bee42b84a
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

20 lines
1.0 KiB
Plaintext

import { CreateType } from '../create/type.mjs';
import { Kind } from '../symbols/index.mjs';
// ------------------------------------------------------------------
// TypeGuard
// ------------------------------------------------------------------
import { IsObject, IsSchema } from '../guard/kind.mjs';
// ------------------------------------------------------------------
// IntersectCreate
// ------------------------------------------------------------------
// prettier-ignore
export function IntersectCreate(T, options = {}) {
const allObjects = T.every((schema) => IsObject(schema));
const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties)
? { unevaluatedProperties: options.unevaluatedProperties }
: {};
return CreateType((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects
? { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: T }
: { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: T }), options);
}