@endo/exo
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

@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);
...

Readme

Keywords

none

Package Sidebar

Install

npm i @endo/exo

Weekly Downloads

1,702

Version

1.5.0

License

Apache-2.0

Unpacked Size

52.8 kB

Total Files

19

Last publish

Collaborators

  • mhofman
  • kriskowal
  • michaelfig
  • erights
  • warner