Skip to main content

ModelLinksAny

@webda/models


Class: ModelLinksAny<K, T>

Defined in: packages/models/src/polymorphic.ts:132

Links to arbitrary model types. The second generic argument optionally restricts target model classes. Stored values are { model, key, ...custom }; links never cascade or remove dangling references automatically.

Type Parameters​

K​

K extends object = object

T​

T extends Storable = Storable

Implements​

Indexable​

[index: number]: ModelAnyRefWithData<K, T>

Constructors​

Constructor​

new ModelLinksAny<K, T>(targets?): ModelLinksAny<K, T>

Defined in: packages/models/src/polymorphic.ts:153

Create a new ModelLinksAny instance

Parameters​

targets?​

readonly ModelClass<T>[] = []

optional exact target classes, supplied by the content mapper for the second generic argument

Returns​

ModelLinksAny<K, T>

Properties​

[RelationRole]​

readonly [RelationRole]: "CustomLinks"

Defined in: packages/models/src/polymorphic.ts:139

[relation role]

Implementation of​

ModelLinker.[RelationRole]

Accessors​

length​

Get Signature​

get length(): number

Defined in: packages/models/src/polymorphic.ts:192

Get number of references

Returns​

number

number of references

Methods​

[iterator]()​

[iterator](): Iterator<ModelAnyRefWithData<K, T>>

Defined in: packages/models/src/polymorphic.ts:287

Return the iterator for this instance

Returns​

Iterator<ModelAnyRefWithData<K, T>>

reference iterator


add()​

add(target, custom?): ModelAnyRefWithData<K, T>

Defined in: packages/models/src/polymorphic.ts:211

Add a model instance with custom data, or a serialized reference.

Parameters​

target​

T | ModelLinkData<K>

model instance or reference

custom?​

K

data stored alongside the reference

Returns​

ModelAnyRefWithData<K, T>

the new reference


at()​

at(index): ModelAnyRefWithData<K, T> | undefined

Defined in: packages/models/src/polymorphic.ts:253

Return reference at the index

Parameters​

index​

number

array index (negative counts from the end)

Returns​

ModelAnyRefWithData<K, T> | undefined

reference at the index


filter()​

filter(predicate): ModelAnyRefWithData<K, T>[]

Defined in: packages/models/src/polymorphic.ts:271

Filter operation

Parameters​

predicate​

(reference, index) => boolean

reference predicate

Returns​

ModelAnyRefWithData<K, T>[]

matching references


map()​

map<U>(callback): U[]

Defined in: packages/models/src/polymorphic.ts:262

Map operation

Type Parameters​

U​

U

Parameters​

callback​

(reference, index) => U

mapper

Returns​

U[]

mapped results


pop()​

pop(): ModelAnyRefWithData<K, T> | undefined

Defined in: packages/models/src/polymorphic.ts:244

Pop operation

Returns​

ModelAnyRefWithData<K, T> | undefined

last reference, removing it


push()​

push(...values): number

Defined in: packages/models/src/polymorphic.ts:223

Append serialized references.

Parameters​

values​

...ModelLinkData<K>[]

references

Returns​

number

new length


remove()​

remove(target): boolean

Defined in: packages/models/src/polymorphic.ts:232

Remove every link to one target, comparing both model and key.

Parameters​

target​

ModelLinkData<object> | T

model or reference

Returns​

boolean

whether anything was removed


set()​

set(values?): void

Defined in: packages/models/src/polymorphic.ts:201

Replace the references, validating before changing the collection.

Parameters​

values?​

readonly ModelLinkData<K>[] = []

stored references

Returns​

void

Webda Auto Setter​


toJSON()​

toJSON(): ModelLinkData<K>[]

Defined in: packages/models/src/polymorphic.ts:279

Serialize this instance to a JSON-compatible value

Returns​

ModelLinkData<K>[]

serialized references, never target objects