Endo API documentation
    Preparing search index...

    Module @endo/exo - v1.5.12

    @endo/exo

    An Exo object is an exposed Remotable object with methods (aka a Far object) which is normally defined with an InterfaceGuard as a protective outer layer, providing the first layer of defensiveness.

    This @endo/exo package defines the APIs for making Exo objects, and for defining ExoClasses and ExoClassKits for making Exo objects.

    See exo-taxonomy for the taxonomy and naming conventions for the elements of this API.

    When an exo is defined with an InterfaceGuard, the exo is augmented by default with a meta-method for obtaining the self-describing InterfaceGuard from the exo:

    // `GET_INTERFACE_GUARD` holds the name of the meta-method
    import { GET_INTERFACE_GUARD } from '@endo/exo';
    import { getInterfaceMethodKeys } from '@endo/patterns';

    ...
    const interfaceGuard = await E(exo)[GET_INTERFACE_GUARD]();
    // `methodNames` omits names of automatically added meta-methods like
    // the value of `GET_INTERFACE_GUARD`.
    // Others may also be omitted if allowed by interfaceGuard options
    const methodNames = getInterfaceMethodKeys(interfaceGuard);
    ...

    Type Aliases

    Amplify
    ClassContext
    ClassContextProvider
    ContextProvider
    ExoClassInterfaceGuard
    ExoClassInterfaceGuardKit
    ExoClassKitMethods
    ExoClassMethods
    FacetName
    Farable
    FarClassOptions
    Guarded
    GuardedKit
    IsInstance
    KitContext
    KitContextProvider
    MatchConfig
    Methods
    ReceivePower
    StateShape

    Variables

    GET_INTERFACE_GUARD

    Functions

    defineExoClass
    defineExoClassKit
    initEmpty
    makeExo