Durable Object ID
The DurableObjectId
interface refers to a new or existing Durable Object instance. This interface is most frequently used by DurableObjectNamespace::get
to obtain a stub for submitting requests to a Durable Object instance.
Note that creating an ID for a Durable Object instance does not create the Durable Object. The Durable Object is created lazily after calling DurableObjectNamespace::get
to create a DurableObjectStub
from a DurableObjectId
. This ensures that objects are not constructed until they are actually accessed.
toString
converts a DurableObjectId
to a 64 digit hex string. This string is useful for logging purposes or storing the DurableObjectId
elsewhere, for example, in a session cookie. This string can be used to reconstruct a DurableObjectId
via DurableObjectNamespace::idFromString
.
// Create a new unique IDconst id = env.MY_DURABLE_OBJECT.newUniqueId();// Convert the ID to a string to be saved elsewhere, e.g. a session cookieconst session_id = id.toString();
...// Recreate the ID from the stringconst id = env.MY_DURABLE_OBJECT.idFromString(session_id);
- None.
- A 64 digit hex string.
equals
is used to compare equality between two instances of DurableObjectId
.
const id1 = env.MY_DURABLE_OBJECT.newUniqueId();const id2 = env.MY_DURABLE_OBJECT.newUniqueId();console.assert(!id1.equals(id2), "Different unique ids should never be equal.");
- A required
DurableObjectId
to compare against.
- A boolean. True if equal and false otherwise.
name
is an optional property of a DurableObjectId
, which returns the name that was used to create the DurableObjectId
via DurableObjectNamespace::idFromName
. This value is undefined if the DurableObjectId
was constructed using DurableObjectNamespace::newUniqueId
.
const uniqueId = env.MY_DURABLE_OBJECT.newUniqueId();const fromNameId = env.MY_DURABLE_OBJECT.idFromName("foo");console.assert(uniqueId.name === undefined, "unique ids have no name");console.assert( fromNameId.name === "foo", "name matches parameter to idFromName",);