@xylabs/object-model
Advanced tools
+7
-7
| { | ||
| "name": "@xylabs/object-model", | ||
| "version": "5.0.84", | ||
| "version": "5.0.86", | ||
| "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries", | ||
@@ -38,10 +38,10 @@ "homepage": "https://xyo.network", | ||
| "dependencies": { | ||
| "@xylabs/assert": "~5.0.84", | ||
| "@xylabs/logger": "~5.0.84", | ||
| "@xylabs/promise": "~5.0.84", | ||
| "@xylabs/typeof": "~5.0.84" | ||
| "@xylabs/assert": "~5.0.86", | ||
| "@xylabs/logger": "~5.0.86", | ||
| "@xylabs/promise": "~5.0.86", | ||
| "@xylabs/typeof": "~5.0.86" | ||
| }, | ||
| "devDependencies": { | ||
| "@xylabs/ts-scripts-yarn3": "~7.4.13", | ||
| "@xylabs/tsconfig": "~7.4.13", | ||
| "@xylabs/ts-scripts-yarn3": "~7.4.16", | ||
| "@xylabs/tsconfig": "~7.4.16", | ||
| "typescript": "~5.9.3", | ||
@@ -48,0 +48,0 @@ "vitest": "~4.0.18" |
+148
-186
@@ -18,2 +18,4 @@ # @xylabs/object-model | ||
| ## Reference | ||
@@ -27,15 +29,19 @@ | ||
| - [TypeCheckConfig](#interfaces/TypeCheckConfig) | ||
| - [TypeCheckRequiredConfig](#interfaces/TypeCheckRequiredConfig) | ||
| - [TypeCheckOptionalConfig](#interfaces/TypeCheckOptionalConfig) | ||
| | Interface | Description | | ||
| | ------ | ------ | | ||
| | [TypeCheckConfig](#interfaces/TypeCheckConfig) | Configuration options for type check functions, with optional logging. | | ||
| | [TypeCheckRequiredConfig](#interfaces/TypeCheckRequiredConfig) | Type check configuration that marks the value as required, causing assertions on failure. | | ||
| | [TypeCheckOptionalConfig](#interfaces/TypeCheckOptionalConfig) | Type check configuration that marks the value as optional, returning undefined on failure. | | ||
| ## Type Aliases | ||
| - [AnyObject](#type-aliases/AnyObject) | ||
| - [AsTypeFunction](#type-aliases/AsTypeFunction) | ||
| - [AsOptionalTypeFunction](#type-aliases/AsOptionalTypeFunction) | ||
| - [Compare](#type-aliases/Compare) | ||
| - [EmptyObject](#type-aliases/EmptyObject) | ||
| - [StringOrAlertFunction](#type-aliases/StringOrAlertFunction) | ||
| - [TypeCheck](#type-aliases/TypeCheck) | ||
| | Type Alias | Description | | ||
| | ------ | ------ | | ||
| | [AnyObject](#type-aliases/AnyObject) | Any object, which means that it does not enforce the set of fields that it has. Extending from AnyObject will result in a type that includes the universal set of field names | | ||
| | [AsTypeFunction](#type-aliases/AsTypeFunction) | A type-narrowing function that attempts to cast a value to T, with optional assertion and configuration overloads. | | ||
| | [AsOptionalTypeFunction](#type-aliases/AsOptionalTypeFunction) | A simplified type-narrowing function that returns T or undefined, without assertion support. | | ||
| | [Compare](#type-aliases/Compare) | A comparator function that returns a negative number if a < b, zero if a == b, and a positive number if a > b. | | ||
| | [EmptyObject](#type-aliases/EmptyObject) | An empty object, which means that it does enforce the set of field names, defaulting to an empty set until extended from, which then adds only those additional fields | | ||
| | [StringOrAlertFunction](#type-aliases/StringOrAlertFunction) | A string message or function that produces an assertion error message for a failed type check. | | ||
| | [TypeCheck](#type-aliases/TypeCheck) | A type guard function that checks whether a value conforms to type T, with optional configuration. | | ||
@@ -59,8 +65,6 @@ ### interfaces | ||
| ### log? | ||
| | Property | Type | | ||
| | ------ | ------ | | ||
| | <a id="log"></a> `log?` | `boolean` \| `Logger` | | ||
| ```ts | ||
| optional log: boolean | Logger; | ||
| ``` | ||
| ### <a id="TypeCheckOptionalConfig"></a>TypeCheckOptionalConfig | ||
@@ -80,20 +84,7 @@ | ||
| ### log? | ||
| | Property | Type | Inherited from | | ||
| | ------ | ------ | ------ | | ||
| | <a id="log"></a> `log?` | `boolean` \| `Logger` | [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log) | | ||
| | <a id="required"></a> `required` | `false` | - | | ||
| ```ts | ||
| optional log: boolean | Logger; | ||
| ``` | ||
| ### Inherited from | ||
| [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log) | ||
| *** | ||
| ### required | ||
| ```ts | ||
| required: false; | ||
| ``` | ||
| ### <a id="TypeCheckRequiredConfig"></a>TypeCheckRequiredConfig | ||
@@ -113,20 +104,7 @@ | ||
| ### log? | ||
| | Property | Type | Inherited from | | ||
| | ------ | ------ | ------ | | ||
| | <a id="log"></a> `log?` | `boolean` \| `Logger` | [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log) | | ||
| | <a id="required"></a> `required` | `true` | - | | ||
| ```ts | ||
| optional log: boolean | Logger; | ||
| ``` | ||
| ### Inherited from | ||
| [`TypeCheckConfig`](#TypeCheckConfig).[`log`](TypeCheckConfig.md#log) | ||
| *** | ||
| ### required | ||
| ```ts | ||
| required: true; | ||
| ``` | ||
| ### type-aliases | ||
@@ -154,3 +132,3 @@ | ||
| ```ts | ||
| type AsOptionalTypeFunction<T> = <TType>(value) => TType | undefined; | ||
| type AsOptionalTypeFunction<T> = <TType>(value: AnyNonPromise) => TType | undefined; | ||
| ``` | ||
@@ -162,18 +140,18 @@ | ||
| ### T | ||
| | Type Parameter | Default type | | ||
| | ------ | ------ | | ||
| | `T` *extends* `AnyNonPromise` | `AnyNonPromise` | | ||
| `T` *extends* `AnyNonPromise` = `AnyNonPromise` | ||
| ## Type Parameters | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ## Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| `AnyNonPromise` | ||
| ## Returns | ||
@@ -191,8 +169,12 @@ | ||
| type AsTypeFunction<T> = { | ||
| <TType> (value): TType | undefined; | ||
| <TType> (value, config): TType; | ||
| <TType> (value, config): TType | undefined; | ||
| <TType> (value, assert): TType | undefined; | ||
| <TType> (value, assert, config): TType; | ||
| <TType> (value, assert, config): TType | undefined; | ||
| <TType> (value: AnyNonPromise): TType | undefined; | ||
| <TType> (value: AnyNonPromise, config: TypeCheckRequiredConfig): TType; | ||
| <TType> (value: AnyNonPromise, config: | ||
| | TypeCheckConfig | ||
| | TypeCheckOptionalConfig): TType | undefined; | ||
| <TType> (value: AnyNonPromise, assert: StringOrAlertFunction<TType>): TType | undefined; | ||
| <TType> (value: AnyNonPromise, assert: StringOrAlertFunction<TType>, config: TypeCheckRequiredConfig): TType; | ||
| <TType> (value: AnyNonPromise, assert: StringOrAlertFunction<TType>, config: | ||
| | TypeCheckConfig | ||
| | TypeCheckOptionalConfig): TType | undefined; | ||
| }; | ||
@@ -205,10 +187,10 @@ ``` | ||
| ### T | ||
| | Type Parameter | Default type | | ||
| | ------ | ------ | | ||
| | `T` *extends* `AnyNonPromise` | `AnyNonPromise` | | ||
| `T` *extends* `AnyNonPromise` = `AnyNonPromise` | ||
| ## Call Signature | ||
| ```ts | ||
| <TType>(value): TType | undefined; | ||
| <TType>(value: AnyNonPromise): TType | undefined; | ||
| ``` | ||
@@ -218,12 +200,12 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| `AnyNonPromise` | ||
| ### Returns | ||
@@ -236,3 +218,3 @@ | ||
| ```ts | ||
| <TType>(value, config): TType; | ||
| <TType>(value: AnyNonPromise, config: TypeCheckRequiredConfig): TType; | ||
| ``` | ||
@@ -242,16 +224,13 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| | `config` | [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig) | | ||
| `AnyNonPromise` | ||
| ### config | ||
| [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig) | ||
| ### Returns | ||
@@ -264,3 +243,5 @@ | ||
| ```ts | ||
| <TType>(value, config): TType | undefined; | ||
| <TType>(value: AnyNonPromise, config: | ||
| | TypeCheckConfig | ||
| | TypeCheckOptionalConfig): TType | undefined; | ||
| ``` | ||
@@ -270,16 +251,13 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| | `config` | \| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) \| [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig) | | ||
| `AnyNonPromise` | ||
| ### config | ||
| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig) | ||
| ### Returns | ||
@@ -292,3 +270,3 @@ | ||
| ```ts | ||
| <TType>(value, assert): TType | undefined; | ||
| <TType>(value: AnyNonPromise, assert: StringOrAlertFunction<TType>): TType | undefined; | ||
| ``` | ||
@@ -298,16 +276,13 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| | `assert` | [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | | ||
| `AnyNonPromise` | ||
| ### assert | ||
| [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | ||
| ### Returns | ||
@@ -321,5 +296,5 @@ | ||
| <TType>( | ||
| value, | ||
| assert, | ||
| config): TType; | ||
| value: AnyNonPromise, | ||
| assert: StringOrAlertFunction<TType>, | ||
| config: TypeCheckRequiredConfig): TType; | ||
| ``` | ||
@@ -329,20 +304,14 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| | `assert` | [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | | ||
| | `config` | [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig) | | ||
| `AnyNonPromise` | ||
| ### assert | ||
| [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | ||
| ### config | ||
| [`TypeCheckRequiredConfig`](#../interfaces/TypeCheckRequiredConfig) | ||
| ### Returns | ||
@@ -356,5 +325,7 @@ | ||
| <TType>( | ||
| value, | ||
| assert, | ||
| config): TType | undefined; | ||
| value: AnyNonPromise, | ||
| assert: StringOrAlertFunction<TType>, | ||
| config: | ||
| | TypeCheckConfig | ||
| | TypeCheckOptionalConfig): TType | undefined; | ||
| ``` | ||
@@ -364,20 +335,14 @@ | ||
| ### TType | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `TType` *extends* `AnyNonPromise` | | ||
| `TType` *extends* `AnyNonPromise` | ||
| ### Parameters | ||
| ### value | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `value` | `AnyNonPromise` | | ||
| | `assert` | [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | | ||
| | `config` | \| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) \| [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig) | | ||
| `AnyNonPromise` | ||
| ### assert | ||
| [`StringOrAlertFunction`](#StringOrAlertFunction)\<`TType`\> | ||
| ### config | ||
| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | [`TypeCheckOptionalConfig`](#../interfaces/TypeCheckOptionalConfig) | ||
| ### Returns | ||
@@ -394,3 +359,3 @@ | ||
| ```ts | ||
| type Compare<T> = (a, b) => number; | ||
| type Compare<T> = (a: T, b: T) => number; | ||
| ``` | ||
@@ -402,16 +367,13 @@ | ||
| ### T | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `T` | | ||
| `T` | ||
| ## Parameters | ||
| ### a | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `a` | `T` | | ||
| | `b` | `T` | | ||
| `T` | ||
| ### b | ||
| `T` | ||
| ## Returns | ||
@@ -428,3 +390,3 @@ | ||
| ```ts | ||
| type EmptyObject<T> = Exclude<{ [K in keyof T]?: never }, unknown[] | (...args) => unknown | null>; | ||
| type EmptyObject<T> = Exclude<{ [K in keyof T]?: never }, unknown[] | (...args: unknown[]) => unknown | null>; | ||
| ``` | ||
@@ -437,6 +399,6 @@ | ||
| ### T | ||
| | Type Parameter | Default type | | ||
| | ------ | ------ | | ||
| | `T` *extends* `object` | `object` | | ||
| `T` *extends* `object` = `object` | ||
| ### <a id="StringOrAlertFunction"></a>StringOrAlertFunction | ||
@@ -456,6 +418,6 @@ | ||
| ### T | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `T` *extends* `AnyNonPromise` | | ||
| `T` *extends* `AnyNonPromise` | ||
| ### <a id="TypeCheck"></a>TypeCheck | ||
@@ -469,5 +431,8 @@ | ||
| type TypeCheck<T> = { | ||
| (obj): obj is T; | ||
| (obj, config): obj is T; | ||
| (obj, config): obj is T; | ||
| (obj: AnyNonPromise): obj is T; | ||
| (obj: AnyNonPromise, config: TypeCheckConfig): obj is T; | ||
| (obj: AnyNonPromise, config: | ||
| | number | ||
| | TypeCheckConfig | ||
| | undefined): obj is T; | ||
| }; | ||
@@ -480,10 +445,10 @@ ``` | ||
| ### T | ||
| | Type Parameter | | ||
| | ------ | | ||
| | `T` *extends* `TypedValue` | | ||
| `T` *extends* `TypedValue` | ||
| ## Call Signature | ||
| ```ts | ||
| (obj): obj is T; | ||
| (obj: AnyNonPromise): obj is T; | ||
| ``` | ||
@@ -493,6 +458,6 @@ | ||
| ### obj | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `obj` | `AnyNonPromise` | | ||
| `AnyNonPromise` | ||
| ### Returns | ||
@@ -505,3 +470,3 @@ | ||
| ```ts | ||
| (obj, config): obj is T; | ||
| (obj: AnyNonPromise, config: TypeCheckConfig): obj is T; | ||
| ``` | ||
@@ -511,10 +476,7 @@ | ||
| ### obj | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `obj` | `AnyNonPromise` | | ||
| | `config` | [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | | ||
| `AnyNonPromise` | ||
| ### config | ||
| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | ||
| ### Returns | ||
@@ -527,3 +489,6 @@ | ||
| ```ts | ||
| (obj, config): obj is T; | ||
| (obj: AnyNonPromise, config: | ||
| | number | ||
| | TypeCheckConfig | ||
| | undefined): obj is T; | ||
| ``` | ||
@@ -533,10 +498,7 @@ | ||
| ### obj | ||
| | Parameter | Type | | ||
| | ------ | ------ | | ||
| | `obj` | `AnyNonPromise` | | ||
| | `config` | \| `number` \| [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) \| `undefined` | | ||
| `AnyNonPromise` | ||
| ### config | ||
| `number` | [`TypeCheckConfig`](#../interfaces/TypeCheckConfig) | `undefined` | ||
| ### Returns | ||
@@ -543,0 +505,0 @@ |
61178
5.54%514
-6.88%Updated
Updated
Updated
Updated