interface ExoZone {
    exo: (<T>(tag: string, interfaceGuard: undefined | InterfaceGuard<{
        [M in string | number | symbol]: MethodGuard
    }>, methods: T, options?: FarClassOptions<ClassContext<{}, T>>) => Guarded<T>);
    exoClass: (<I, M>(tag: string, interfaceGuard: undefined | ExoClassInterfaceGuard<M>, init: I, methods: ExoClassMethods<M, I>, options?: FarClassOptions<ClassContext<ReturnType<I>, M>>) => ((...args: Parameters<I>) => Guarded<M>));
    exoClassKit: (<I, F>(tag: string, interfaceGuardKit: undefined | ExoClassInterfaceGuardKit<F>, init: I, methodsKit: ExoClassKitMethods<F, I>, options?: FarClassOptions<KitContext<ReturnType<I>, GuardedKit<F>>, GuardedKit<F>>) => ((...args: Parameters<I>) => GuardedKit<F>));
    makeOnce: (<T>(key: string, maker: ((key: string) => T)) => T);
    subZone: ((label: string, options?: StoreOptions) => Zone);
    watchPromise: ((p: Promise<any>, watcher: PromiseWatcher, ...watcherArgs: unknown[]) => void);
}

Properties

exo: (<T>(tag: string, interfaceGuard: undefined | InterfaceGuard<{
    [M in string | number | symbol]: MethodGuard
}>, methods: T, options?: FarClassOptions<ClassContext<{}, T>>) => Guarded<T>)

create a singleton exo-object instance bound to this zone

exoClass: (<I, M>(tag: string, interfaceGuard: undefined | ExoClassInterfaceGuard<M>, init: I, methods: ExoClassMethods<M, I>, options?: FarClassOptions<ClassContext<ReturnType<I>, M>>) => ((...args: Parameters<I>) => Guarded<M>))

create a maker function that can be used to create exo-objects bound to this zone

exoClassKit: (<I, F>(tag: string, interfaceGuardKit: undefined | ExoClassInterfaceGuardKit<F>, init: I, methodsKit: ExoClassKitMethods<F, I>, options?: FarClassOptions<KitContext<ReturnType<I>, GuardedKit<F>>, GuardedKit<F>>) => ((...args: Parameters<I>) => GuardedKit<F>))

create a "kit" maker function that can be used to create a record of exo-objects sharing the same state

makeOnce: (<T>(key: string, maker: ((key: string) => T)) => T)

create or retrieve a singleton object bound to this zone

subZone: ((label: string, options?: StoreOptions) => Zone)

create a new Zone that can be passed to untrusted consumers without exposing the storage of the parent zone

watchPromise: ((p: Promise<any>, watcher: PromiseWatcher, ...watcherArgs: unknown[]) => void)

register a promise watcher created by this zone

Type declaration

    • (p, watcher, ...watcherArgs): void
    • Shim the promise watcher behaviour when VatData.watchPromise is not available.

      Parameters

      Returns void