LogoRobo.js
Framework

UniqueIndexManager

Class: UniqueIndexManager

Manages unique constraints for a model.

Uses adapter setIfNotExists for race-free constraints when available, otherwise falls back to check-then-set (embedded mode only).

Constructors

new UniqueIndexManager()

new UniqueIndexManager(adapter): UniqueIndexManager

Parameters

ParameterType
adapterFlashcoreAdapter<string, unknown>

Returns

UniqueIndexManager

Methods

acquire()

acquire(
   options, 
   value, 
recordId): Promise<void>

Acquire a unique constraint for a record.

Parameters

ParameterTypeDescription
optionsUniqueConstraintOptionsModel/field options
valueunknownThe unique field value
recordIdstringThe record ID claiming this value

Returns

Promise<void>

Throws

UniqueConstraintError if value is already taken


exists()

exists(options, value): Promise<boolean>

Check if a unique value exists.

Parameters

ParameterTypeDescription
optionsUniqueConstraintOptionsModel/field options
valueunknownThe unique field value

Returns

Promise<boolean>

True if value exists


lookup()

lookup(options, value): Promise<string>

Look up the record ID for a unique value.

Parameters

ParameterTypeDescription
optionsUniqueConstraintOptionsModel/field options
valueunknownThe unique field value

Returns

Promise<string>

Record ID or null if not found


release()

release(options, value): Promise<void>

Release a unique constraint.

Parameters

ParameterTypeDescription
optionsUniqueConstraintOptionsModel/field options
valueunknownThe unique field value to release

Returns

Promise<void>


update()

update(
   options, 
   oldValue, 
   newValue, 
recordId): Promise<void>

Update a unique constraint (release old, acquire new).

Parameters

ParameterTypeDescription
optionsUniqueConstraintOptionsModel/field options
oldValueunknownThe old unique field value
newValueunknownThe new unique field value
recordIdstringThe record ID

Returns

Promise<void>

On this page