Constructor
new Shelf(options)
- Source:
Parameters:
Name | Type | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Extends
- PsychObject
Members
(static, readonly) Status :Symbol
- Source:
Properties:
Name | Type | Description |
---|---|---|
READY |
Symbol | The shelf is ready. |
BUSY |
Symbol | The shelf is busy, e.g. storing or retrieving values. |
ERROR |
Symbol | The shelf has encountered an error. |
Shelf status
Type:
- Symbol
(static, readonly) Type :Symbol
- Source:
Properties:
Name | Type | Description |
---|---|---|
INTEGER |
Symbol | |
TEXT |
Symbol | |
DICTIONARY |
Symbol | |
BOOLEAN |
Symbol | |
LIST |
Symbol |
Shelf record types.
Type:
- Symbol
Methods
_checkAvailability(methodNameopt)
- Source:
Check whether it is possible to run a given shelf command.
Since all Shelf methods call _checkAvailability, we also use it as a means to throttle those calls.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
methodName |
string |
<optional> |
""
|
name of the method requiring a check |
Throws:
-
exception if it is not possible to run the given shelf command
- Type
- Object.<string, *>
_checkKey(key)
- Source:
Check the validity of the key.
Parameters:
Name | Type | Description |
---|---|---|
key |
object | key whose validity is to be checked |
Throws:
-
exception if the key is invalid
- Type
- Object.<string, *>
(async) _getValue(key, type, optionsopt) → {Promise.<any>}
- Source:
Get the value associated with the given key.
This is a generic method, typically called from the Shelf helper methods, e.g. getBinaryValue.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
key |
Array.<string> | key as an array of key components |
|
type |
Shelf.Type | the type of the record associated with the given key |
|
options |
Object |
<optional> |
the options, e.g. the default value returned if no record with the given key exists on the shelf |
Throws:
-
exception if there is a record associated with the given key but it is not of the given type
- Type
- Object.<string, *>
Returns:
the value
- Type
- Promise.<any>
(async) _updateValue(key, type, update) → {Promise.<any>}
- Source:
Update the value associated with the given key.
This is a generic method, typically called from the Shelf helper methods, e.g. setBinaryValue.
Parameters:
Name | Type | Description |
---|---|---|
key |
Array.<string> | key as an array of key components |
type |
Shelf.Type | the type of the record associated with the given key |
update |
* | the desired update |
Throws:
-
exception if there is no record associated with the given key or if there is one but it is not of the given type
- Type
- Object.<string, *>
Returns:
the updated value
- Type
- Promise.<any>
addIntegerValue(options) → {Promise.<number>}
- Source:
Add a delta to the value of a record of type INTEGER associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if delta is not an integer, or if there is no record with the given key, or if there is a record but it is locked or it is not of type INTEGER
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<number>
appendListValue(options) → {Promise.<Array.<*>>}
- Source:
Append an element, or a list of elements, to the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<Array.<*>>
clearListValue(options) → {Promise.<Array.<*>>}
- Source:
Empty the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the new, empty value, i.e. []
- Type
- Promise.<Array.<*>>
(async) counterBalanceSelect(options) → {Promise.<{string, boolean}>}
- Source:
Get the name of a group, using a counterbalanced design.
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Returns:
an object with the name of the selected group and whether all groups have been depleted
- Type
- Promise.<{string, boolean}>
flipBooleanValue(options) → {Promise.<boolean>}
- Source:
Flip the value of a record of type BOOLEAN associated with the given key.
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is not of type BOOLEAN
- Type
- Object.<string, *>
Returns:
the new, flipped, value
- Type
- Promise.<boolean>
getBooleanValue(options) → {Promise.<boolean>}
- Source:
Get the value of a record of type BOOLEAN associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is a record associated with the given key but it is not of type BOOLEAN
- Type
- Object.<string, *>
Returns:
the value associated with the key
- Type
- Promise.<boolean>
(async) getDictionaryFieldNames(options) → {Promise.<Array.<string>>}
- Source:
Get the names of the fields in the dictionary record associated with the given key.
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type DICTIONARY
- Type
- Object.<string, *>
Returns:
the list of field names
- Type
- Promise.<Array.<string>>
(async) getDictionaryFieldValue(options) → {Promise.<*>}
- Source:
Get the value of a given field in the dictionary record associated with the given key.
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type DICTIONARY
- Type
- Object.<string, *>
Returns:
the value of that field
- Type
- Promise.<*>
getDictionaryValue(options) → {Promise.<Object.<string, *>>}
- Source:
Get the value of a record of type DICTIONARY associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type DICTIONARY
- Type
- Object.<string, *>
Returns:
the value associated with the key
- Type
- Promise.<Object.<string, *>>
getIntegerValue(options) → {Promise.<number>}
- Source:
Get the value of a record of type INTEGER associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type BOOLEAN
- Type
- Object.<string, *>
Returns:
the value associated with the key
- Type
- Promise.<number>
getListValue(options) → {Promise.<Array.<*>>}
- Source:
Get the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the value associated with the key
- Type
- Promise.<Array.<*>>
getTextValue(options) → {Promise.<string>}
- Source:
Get the value of a record of type TEXT associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is a record associated with the given key but it is not of type TEXT
- Type
- Object.<string, *>
Returns:
the value associated with the key
- Type
- Promise.<string>
incrementComponent(key, increment, callback) → {function}
- Source:
Schedulable component that will block the experiment until the counter associated with the given key has been incremented by the given amount.
Example
const flowScheduler = new Scheduler(psychoJS);
var experimentCounter = '<>';
flowScheduler.add(psychoJS.shelf.incrementComponent(['counter'], 1, (value) => experimentCounter = value));
Parameters:
Name | Type | Default | Description |
---|---|---|---|
key |
|||
increment |
1
|
||
callback |
Returns:
a component that can be scheduled
- Type
- function
popListValue(options) → {Promise.<*>}
- Source:
Pop an element, at the given index, from the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the popped element
- Type
- Promise.<*>
setBooleanValue(options) → {Promise.<boolean>}
- Source:
Set the value of a record of type BOOLEAN associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if value is not a boolean, or if there is no record with the given key, or if there is a record but it is locked or it is not of type BOOLEAN
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<boolean>
(async) setDictionaryFieldValue(options) → {Promise.<Object.<string, *>>}
- Source:
Set a field in the dictionary record associated to the given key.
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type DICTIONARY
- Type
- Object.<string, *>
Returns:
the updated dictionary
- Type
- Promise.<Object.<string, *>>
setDictionaryValue(options) → {Promise.<Object.<string, *>>}
- Source:
Set the value of a record of type DICTIONARY associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if value is not an object, or or if there is no record with the given key, or if there is a record but it is locked or it is not of type DICTIONARY
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<Object.<string, *>>
setIntegerValue(options) → {Promise.<number>}
- Source:
Set the value of a record of type INTEGER associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if value is not an integer, or or if there is no record with the given key, or if there is a record but it is locked or it is not of type INTEGER
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<number>
setListValue(options) → {Promise.<Array.<*>>}
- Source:
Set the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if value is not an array or if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<Array.<*>>
setTextValue(options) → {Promise.<string>}
- Source:
Set the value of a record of type TEXT associated with the given key.
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if value is not a string, or if there is a record associated with the given key but it is not of type TEXT
- Type
- Object.<string, *>
Returns:
the new value
- Type
- Promise.<string>
shuffleListValue(options) → {Promise.<Array.<*>>}
- Source:
Shuffle the elements of the value of a record of type LIST associated with the given key.
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
options |
Object |
Properties
|
Throws:
-
exception if there is no record with the given key, or if there is a record but it is locked or it is not of type LIST
- Type
- Object.<string, *>
Returns:
the new, shuffled value
- Type
- Promise.<Array.<*>>