@xylabs/object-model


Base functionality used throughout XY Labs TypeScript/JavaScript libraries
Reference
@xylabs/object-model
Interfaces
| TypeCheckConfig | Configuration options for type check functions, with optional logging. |
| TypeCheckRequiredConfig | Type check configuration that marks the value as required, causing assertions on failure. |
| TypeCheckOptionalConfig | Type check configuration that marks the value as optional, returning undefined on failure. |
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 | A type-narrowing function that attempts to cast a value to T, with optional assertion and configuration overloads. |
| AsOptionalTypeFunction | A simplified type-narrowing function that returns T or undefined, without assertion support. |
| Compare | A comparator function that returns a negative number if a < b, zero if a == b, and a positive number if a > b. |
| 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 | A string message or function that produces an assertion error message for a failed type check. |
| TypeCheck | A type guard function that checks whether a value conforms to type T, with optional configuration. |
interfaces
TypeCheckConfig
@xylabs/object-model
Configuration options for type check functions, with optional logging.
Extended by
Properties
TypeCheckOptionalConfig
@xylabs/object-model
Type check configuration that marks the value as optional, returning undefined on failure.
Extends
Properties
TypeCheckRequiredConfig
@xylabs/object-model
Type check configuration that marks the value as required, causing assertions on failure.
Extends
Properties
type-aliases
AnyObject
@xylabs/object-model
type AnyObject = EmptyObject & Partial<Record<TypedKey, unknown>>;
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
AsOptionalTypeFunction
@xylabs/object-model
type AsOptionalTypeFunction<T> = <TType>(value: AnyNonPromise) => TType | undefined;
A simplified type-narrowing function that returns T or undefined, without assertion support.
Type Parameters
T extends AnyNonPromise | AnyNonPromise |
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType | undefined
AsTypeFunction
@xylabs/object-model
type AsTypeFunction<T> = {
<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;
};
A type-narrowing function that attempts to cast a value to T, with optional assertion and configuration overloads.
Type Parameters
T extends AnyNonPromise | AnyNonPromise |
Call Signature
<TType>(value: AnyNonPromise): TType | undefined;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType | undefined
Call Signature
<TType>(value: AnyNonPromise, config: TypeCheckRequiredConfig): TType;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType
Call Signature
<TType>(value: AnyNonPromise, config:
| TypeCheckConfig
| TypeCheckOptionalConfig): TType | undefined;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType | undefined
Call Signature
<TType>(value: AnyNonPromise, assert: StringOrAlertFunction<TType>): TType | undefined;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType | undefined
Call Signature
<TType>(
value: AnyNonPromise,
assert: StringOrAlertFunction<TType>,
config: TypeCheckRequiredConfig): TType;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType
Call Signature
<TType>(
value: AnyNonPromise,
assert: StringOrAlertFunction<TType>,
config:
| TypeCheckConfig
| TypeCheckOptionalConfig): TType | undefined;
Type Parameters
TType extends AnyNonPromise |
Parameters
Returns
TType | undefined
Compare
@xylabs/object-model
type Compare<T> = (a: T, b: T) => number;
A comparator function that returns a negative number if a < b, zero if a == b, and a positive number if a > b.
Type Parameters
Parameters
Returns
number
EmptyObject
@xylabs/object-model
type EmptyObject<T> = Exclude<{ [K in keyof T]?: never }, unknown[] | (...args: unknown[]) => unknown | null>;
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
Type Parameters
StringOrAlertFunction
@xylabs/object-model
type StringOrAlertFunction<T> = string | AssertExMessageFunc<T>;
A string message or function that produces an assertion error message for a failed type check.
Type Parameters
TypeCheck
@xylabs/object-model
type TypeCheck<T> = {
(obj: AnyNonPromise): obj is T;
(obj: AnyNonPromise, config: TypeCheckConfig): obj is T;
(obj: AnyNonPromise, config:
| number
| TypeCheckConfig
| undefined): obj is T;
};
A type guard function that checks whether a value conforms to type T, with optional configuration.
Type Parameters
Call Signature
(obj: AnyNonPromise): obj is T;
Parameters
Returns
obj is T
Call Signature
(obj: AnyNonPromise, config: TypeCheckConfig): obj is T;
Parameters
Returns
obj is T
Call Signature
(obj: AnyNonPromise, config:
| number
| TypeCheckConfig
| undefined): obj is T;
Parameters
Returns
obj is T
Part of sdk-js
Maintainers
License
See the LICENSE file for license details
Credits
Made with 🔥 and ❄️ by XYLabs