Utility functions
function O.deduplicateArrayOfRefs(array)
Given an array-like object containing Ref
or StoreObject
objects, return a de-duplicated list of Ref
objects.
This function guarantees the following properties. You must not rely on any other behaviour.
- Order is preserved.
- If a
Ref
value appears more than once in the input array, the output array will contain a singleRef
of that value in the position equivalent to the lowest index.
- The returned array will only contain
Ref
objects.
- If an entry in the input array is a
StoreObject
, the returned array will return the correspondingRef
.
undefined
andnull
values in the input array are ignored, and therefore will not be included in the output array.
- While the array may contain the exact
Ref
objects which appeared in the input array, only equivalence is guaranteed.
- A new array is returned, and the caller may modify that array.
- If
array
isundefined
ornull
, an empty array is returned.
- An exception will be thrown if the input array contains an object of an unexpected type.
function O.interpolateString(string, inserts)
Replace occurrences of {property}
within string
with the corresponding property from inserts
.
let s = O.interpolateString("Hello {name}, it's {day}.", { name: "world", day: "Tuesday" }); // s === "Hello world, it's Tuesday"
This is often useful for translating text in plugins.
function O.getPluginInstance(pluginName)
Returns the Plugin
object for the plugin named pluginName
. Throws an exception if the plugin is not installed.
You should never need to use this function, unless you’re writing a very special plugin. Use the platform’s inter-plugin communication APIs unless you know you have a very good reason why they won’t work.