Skip to main content

Class: EmbedType

Defined in: schema/types/embed-type.ts:48

EmbedType will allow declaration of path as another schema, set type to the sub-schema's instance.

Options

  • required flag to define if the field is mandatory
  • validator that will be applied to the field a validation function, validation object or string with the name of the custom validator
  • default that will define the initial value of the field, this option allows a value or a function
  • immutable that will define this field as immutable. Ottoman prevents you from changing immutable fields if the schema as configure like strict

Example

const userSchema = new Schema({
name: String,
email: Schema.Types.String,
createAt: Date,
});

const schema = new Schema({
...
user: userSchema
});

You can also use a JavaScript plain Object as value for an EmbedType. Therefore the below example will behave the same as the example above.

const schema = new Schema({
...
user: {
name: String,
email: String,
createAt: Date,
}
});

Tip

EmbedType will allow you to easily reuse existing schemas into new ones using composition.

Extends

Constructors

Constructor

new EmbedType(name, schema, options?): EmbedType

Defined in: schema/types/embed-type.ts:49

Parameters

name

string

schema

Schema

options?

CoreTypeOptions

Returns

EmbedType

Overrides

CoreType.constructor

Properties

name

name: string

Defined in: schema/interfaces/schema.types.ts:51

Inherited from

CoreType.name


options?

optional options: CoreTypeOptions

Defined in: schema/types/core-type.ts:23

Inherited from

CoreType.options


schema

schema: Schema

Defined in: schema/types/embed-type.ts:49


typeName

typeName: string

Defined in: schema/interfaces/schema.types.ts:51

Inherited from

CoreType.typeName


sName

static sName: string = 'Embed'

Defined in: schema/types/embed-type.ts:52

Overrides

CoreType.sName

Accessors

default

Get Signature

get default(): unknown

Defined in: schema/types/core-type.ts:39

Returns

unknown

Inherited from

CoreType.default


required

Get Signature

get required(): boolean | RequiredOption | RequiredFunction

Defined in: schema/types/core-type.ts:31

Returns

boolean | RequiredOption | RequiredFunction

Inherited from

CoreType.required


validator

Get Signature

get validator(): undefined | string | ValidatorFunction | ValidatorOption

Defined in: schema/types/core-type.ts:35

Returns

undefined | string | ValidatorFunction | ValidatorOption

Inherited from

CoreType.validator

Methods

buildDefault()

buildDefault(): unknown

Defined in: schema/types/core-type.ts:43

Returns

unknown

Inherited from

CoreType.buildDefault


cast()

cast(value, strategy): unknown

Defined in: schema/types/embed-type.ts:54

Parameters

value

unknown

strategy

CAST_STRATEGY = CAST_STRATEGY.DEFAULT_OR_DROP

Returns

unknown

Overrides

CoreType.cast


checkRequired()

checkRequired(): string | void

Defined in: schema/types/core-type.ts:62

Returns

string | void

Inherited from

CoreType.checkRequired


checkValidator()

checkValidator(value): void

Defined in: schema/types/core-type.ts:71

Parameters

value

unknown

Returns

void

Inherited from

CoreType.checkValidator


isEmpty()

isEmpty(value): boolean

Defined in: schema/types/core-type.ts:75

Parameters

value

unknown

Returns

boolean

Inherited from

CoreType.isEmpty


isStrictStrategy()

isStrictStrategy(strategy): boolean

Defined in: schema/types/core-type.ts:79

Parameters

strategy

VALIDATION_STRATEGY

Returns

boolean

Inherited from

CoreType.isStrictStrategy


validate()

validate(value, strategy): any

Defined in: schema/types/embed-type.ts:62

Parameters

value

unknown

strategy

any

Returns

any

Overrides

CoreType.validate