@sinclair/typebox
Advanced tools
Comparing version 0.10.0 to 0.10.1
{ | ||
"name": "@sinclair/typebox", | ||
"version": "0.10.0", | ||
"version": "0.10.1", | ||
"description": "JSONSchema Type Builder with Static Type Resolution for TypeScript", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -205,8 +205,9 @@ export interface UserDefinedOptions { | ||
export declare type TComposite = TIntersect | TUnion | TTuple; | ||
export declare const modifierSymbol: unique symbol; | ||
export declare const OptionalModifier: unique symbol; | ||
export declare const ReadonlyModifier: unique symbol; | ||
export declare type TOptional<T extends TSchema | TComposite> = T & { | ||
[modifierSymbol]: 'optional'; | ||
modifier: typeof OptionalModifier; | ||
}; | ||
export declare type TReadonly<T extends TSchema | TComposite> = T & { | ||
[modifierSymbol]: 'readonly'; | ||
modifier: typeof ReadonlyModifier; | ||
}; | ||
@@ -213,0 +214,0 @@ export declare type TModifier = TOptional<any> | TReadonly<any>; |
@@ -30,3 +30,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Type = exports.modifierSymbol = void 0; | ||
exports.Type = exports.ReadonlyModifier = exports.OptionalModifier = void 0; | ||
function reflect(value) { | ||
@@ -42,3 +42,4 @@ switch (typeof value) { | ||
// #region TModifier | ||
exports.modifierSymbol = Symbol('Modifier'); | ||
exports.OptionalModifier = Symbol('OptionalModifier'); | ||
exports.ReadonlyModifier = Symbol('ReadonlyModifier'); | ||
class Type { | ||
@@ -48,7 +49,7 @@ // #region TModifier | ||
static Optional(item) { | ||
return { ...item, [exports.modifierSymbol]: 'optional' }; | ||
return { ...item, modifier: exports.OptionalModifier }; | ||
} | ||
/** Modifies the inner type T into an readonly T. */ | ||
static Readonly(item) { | ||
return { ...item, [exports.modifierSymbol]: 'readonly' }; | ||
return { ...item, modifier: exports.ReadonlyModifier }; | ||
} | ||
@@ -104,3 +105,3 @@ /** Creates a Union type for the given arguments. */ | ||
const candidate = properties[name]; | ||
return (candidate[exports.modifierSymbol] && candidate[exports.modifierSymbol] === 'optional'); | ||
return (candidate.modifier && candidate.modifier === exports.OptionalModifier); | ||
}); | ||
@@ -107,0 +108,0 @@ const required = property_names.filter(name => !optional.includes(name)); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
64383
639