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

23 lines
842 B
Plaintext

import { CreateType } from '../create/type.mjs';
import { ReadonlyKind } from '../symbols/index.mjs';
import { Discard } from '../discard/index.mjs';
import { ReadonlyFromMappedResult } from './readonly-from-mapped-result.mjs';
import { IsMappedResult } from '../guard/kind.mjs';
function RemoveReadonly(schema) {
return CreateType(Discard(schema, [ReadonlyKind]));
}
function AddReadonly(schema) {
return CreateType({ ...schema, [ReadonlyKind]: 'Readonly' });
}
// prettier-ignore
function ReadonlyWithFlag(schema, F) {
return (F === false
? RemoveReadonly(schema)
: AddReadonly(schema));
}
/** `[Json]` Creates a Readonly property */
export function Readonly(schema, enable) {
const F = enable ?? true;
return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F) : ReadonlyWithFlag(schema, F);
}