UNPKG

endpointjs

Version:

Endpoint.js enables modules within a web application to discover and use each other, whether that be on the same web page, other browser windows and tabs, iframes, servers and web workers in a reactive way by providing robust discovery, execution and stre

234 lines (204 loc) 6.56 kB
# API This page contains a very high level view of all methods used in the application, up to date as of version 0.4.0. This will most likely NOT be updated between minor releases, and is meant as an 'at a glance' view, to allow developers to understand the scope of the user facing API. To get the latest API methods, see the JSDocs. ## Table of Contents - [High Level API](#high-level-api) - [Configuration APIs](#configuration-apis) - [Stateless APIs](#stateless-apis) - [Stateful APIs](#stateful-apis) - [Adapter APIs](#adapter-apis) - [Facade APIs](#facade-apis) - [Link APIs](#link-apis) ## High Level API Main API, Retrieved with 'window.endpoint': ```javascript api.getInstanceId() api.getEndpointManager() api.getConfiguration() api.createQuery(name, version, settings) api.createFacade(name, version, settings) api.manageFacades([[name1, version1, settings1], ...]) api.registerAdapter(name, version, object, settings) ``` Endpoint Manager, Retrieved with 'api.getEndpointManager()': ```javascript endpointManager.getInstanceId() endpointManager.getConfiguration() endpointManager.getService(serviceName) endpointManager.createEndpoint(id, type, identification) endpointManager.closeAll() ``` Facade Manager, Retrieved with 'api.manageFacades()': ```javascript facadeManager.getFacade(name) facadeManager.getApi(name) facadeManager.getEvents(name) facadeManager.close() ``` ## Configuration APIs Configuration, Retrieved with 'api.getConfiguration()': ```javascript configuration.addLinks(linksJson) configuration.get(optionName) configuration.addCustomLinkType(linkType, linkFunction) configuration.addLink(linkConfig) configuration.getLink(linkId) configuration.removeLink(linkId) configuration.createBridge(links, selfRelay) ``` Link Bridge, Retrived with 'configuration.createBridge()': ```javascript linkBridge.getId() linkBridge.hasLinkId(linkId) linkBridge.addLinkId(linkId) linkBridge.removeLinkId(linkId) linkBridge.close() ``` ## Stateless APIs Bus, Retrieved with 'endpointManager.getService('bus')': ```javascript bus.emitDirect(destinationBridgeId, destinationHostId, neighborhood, eventName, args ...) bus.emit(neighborhood, eventName, args ...) ``` Messenger, Retrieved with 'endpointManager.getService('messenger')': ```javascript messenger.register(id, callback) messenger.unRegister(id) messenger.sendMessage(address, remoteId, message) ``` Streamer, Retrieved with 'endpointManager.getService('streamer')': ```javascript streamer.createStream(type, remoteAddress, meta, opts) streamer.getStreamInfo(streamId) streamer.addHandler(name) streamer.removeHandler(name) streamer.hasHandler(name) ``` ## Stateful APIs ### Adapter APIs Adapter, Retrieved with 'api.registerAdapter()': ```javascript adapter.getName() adapter.getVersion() adapter.getObject() adapter.getEvents() adapter.getMetadata() adapter.setMetadata(metadata) adapter.getCurrentContext() adapter.getId() adapter.close() adapter.registerBusEvent(event, callback) adapter.registerObjectEvent(object, event, callback) adapter.registerMessenger(id, callback) adapter.registerStreamer(id, callback) adapter.attachEndpoint(endpoint) ``` Client Instance, Retrieved with 'context.getClientInstance()': ```javascript clientInstance.getAdapter() clientInstance.getRemoteAddress() clientInstance.getRemoteId() clientInstance.getEvents() clientInstance.getId() clientInstance.close() clientInstance.attachEndpoint(endpoint) clientInstance.registerBusEvent(event, callback) clientInstance.registerObjectEvent(object, event, callback) clientInstance.registerMessenger(id, callback) clientInstance.registerStreamer(id, callback) ``` Call Context, Retrieved with 'adapter.getCurrentContext()': ```javascript context.getClientInstance() context.getObjectInstance() context.isBuffered() context.setAsyncMode() context.isAsync() context.setAsyncResult(result) context.setAsyncError(exception) context.hasInputStream() context.hasOutputStream() context.getInputStream() context.getOutputStream() context.transformDuplexStream(forwardTransformFunc, reverseTransformFunc) context.transformStream(transformFunc) ``` ### Facade APIs Client, Retrieved with 'facade.getClient()': ```javascript client.getName() client.getVersion() client.getRemoteAddress() client.getRemoteId() client.getNeighborhood() client.getEvents() client.getId() client.close() client.attachEndpoint(endpoint) client.registerBusEvent(event, callback) client.registerObjectEvent(object, event, callback) client.registerMessenger(id, callback) client.registerStreamer(id, callback) ``` Facade, Retrieved with 'api.createFacade() or facadeManager.getFacade()': ```javascript facade.getName() facade.getVersion() facade.getClient() facade.getEvents() facade.getRemoteAddress() facade.getRemoteId() facade.isReady() facade.getApi() facade.getId() facade.close() facade.attachEndpoint(endpoint) facade.registerBusEvent(event, callback) facade.registerObjectEvent(object, event, callback) facade.registerMessenger(id, callback) facade.registerStreamer(id, callback) ``` Query, Retrieved with 'api.createQuery()': ```javascript query.getFoundApis() query.getFoundApisCount() query.close() query.attachEndpoint(endpoint) query.registerBusEvent(event, callback) query.registerObjectEvent(object, event, callback) query.registerMessenger(id, callback) query.registerStreamer(id, callback) ``` Strategy, Retrieved with 'facade.getApi().<any function call>() or facadeManager.getApi(name).<any function call>()': ```javascript strategy.pipe(/* stream or strategy or function */, /* [reverse stream or function, if specified] */) strategy.then(thenFunc) strategy.catch(catchFunc) strategy.stream() strategy.facade() strategy.buffered() strategy.execute() strategy.cancel() ``` ## Link APIs Server Link, Retrieved with 'configuration.getLink('default-server')': ```javascript serverLink.addSocket(worker) serverLink.close() ``` Tab Link, Retrieved with 'configuration.getLink('default-tab')': ```javascript tabLink.close() ``` Window Link, Retrieved with 'configuration.getLink('default-window')': ```javascript windowLink.announceWindow(obj) windowLink.close() ``` Web Worker Link, Retrieved with 'configuration.getLink('default-worker')': ```javascript workerLink.addWorker(worker) workerLink.addHub(workerGlobalScope) workerLink.close() ```