Collection

Validates an Object with the given keys and with values matching the given pattern. The value must not contain any arbitrary keys(not listed in the pattern). The value must be a plain Object or class instance.

returns Returns true if value is matching explicit Collection pattern or implicit expectation as plain object, else throws.

example

import { expect } from 'chai';
import {
check,
validate,
PropTypes,
UnexpectedKeyError,
} from 'typend';
check<Record<any, any>>({ foo: 'foo' });
check<Record<keyof any, any>>({ foo: 'foo' });
check<{}>({});
check<{ name: string; age: number }>({ name: 'Jane Doe', age: 28 });
check<Car>({ brand: 'Tesla' });
// Explicit:
validate({}, PropTypes.object);
validate({ foo: 'foo' }, PropTypes.shape({ foo: 'foo' }));
validate(
{ name: 'Jane Doe', age: 28 },
PropTypes.shape({
name: String,
age: Number,
})
);
expect(() =>
validate({ foo: 'foo', bar: 'bar' }, PropTypes.shape({ foo: 'foo' }))
).to.throw(UnexpectedKeyError);
// Implicit: you can omit defining explicit pattern(`Collection`) by passing plain object:
validate({ foo: 'foo' }, { foo: 'foo' });
// By default, validator will run in strict mode - so its equivalent of:
validate({ foo: 'foo' }, { foo: 'foo' }, true);

Hierarchy

Pattern

  • Pattern

    Collection

Implements

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

+ new Collection(properties?: Record‹keyof any, any›): Collection

Overrides Pattern.constructor

Creates an instance of an Collection. Creates an instance of an Collection.

throws {InvalidTypeError} Thrown if provided properties is not an object.

throws {InvalidTypeError} Thrown if provided properties is not an object.

Parameters:

NameTypeDescription
properties?Record‹keyof any, any›Properties that will be used to validate value.

Returns: Collection

Properties

Static describer

describer: Describer

Inherited from Pattern.describer

Overrides void


Static kind

kind: KINDS = KINDS.OBJECT

Overrides Pattern.kind

Accessors

isOptional

get isOptional(): Optional

Inherited from Pattern.isOptional

Overrides void

Returns: Optional


isRequired

get isRequired(): any

Inherited from Pattern.isRequired

Overrides void

Returns: any

Methods

describe

describe(value: any): string

Inherited from Pattern.describe

Overrides void

Parameters:

NameType
valueany

Returns: string


getInitializer

getInitializer(): any | undefined

Implementation of Pattern

Inherited from Pattern.getInitializer

Overrides void

Returns: any | undefined


getKind

getKind(): string

Implementation of Pattern

Inherited from Pattern.getKind

Overrides void

Returns: string


hasInitializer

hasInitializer(): boolean

Implementation of Pattern

Inherited from Pattern.hasInitializer

Overrides void

Returns: boolean


hasOwnProperty

hasOwnProperty(v: PropertyKey): boolean

Inherited from Pattern.hasOwnProperty

Overrides Pattern.hasOwnProperty

Determines whether an object has a property with the specified name.

Parameters:

NameTypeDescription
vPropertyKeyA property name.

Returns: boolean


isPrototypeOf

isPrototypeOf(v: Object): boolean

Inherited from Pattern.isPrototypeOf

Overrides Pattern.isPrototypeOf

Determines whether an object exists in another object's prototype chain.

Parameters:

NameTypeDescription
vObjectAnother object whose prototype chain is to be checked.

Returns: boolean


propertyIsEnumerable

propertyIsEnumerable(v: PropertyKey): boolean

Inherited from Pattern.propertyIsEnumerable

Overrides Pattern.propertyIsEnumerable

Determines whether a specified property is enumerable.

Parameters:

NameTypeDescription
vPropertyKeyA property name.

Returns: boolean


setInitializer

setInitializer(initializer: any): void

Implementation of Pattern

Inherited from Pattern.setInitializer

Overrides void

Parameters:

NameType
initializerany

Returns: void


toLocaleString

toLocaleString(): string

Inherited from Pattern.toLocaleString

Overrides Pattern.toLocaleString

Returns a date converted to a string using the current locale.

Returns: string


toString

toString(): string

Inherited from Pattern.toString

Overrides Pattern.toString

Returns a string representation of an object.

Returns: string


valueOf

valueOf(): Object

Inherited from Pattern.valueOf

Overrides Pattern.valueOf

Returns the primitive value of the specified object.

Returns: Object


Static getDescriber

getDescriber(): Describer

Inherited from Pattern.getDescriber

Overrides void

Returns: Describer


Static setDescriber

setDescriber(describer: Describer): void

Inherited from Pattern.setDescriber

Overrides void

Parameters:

NameType
describerDescriber

Returns: void