@opensea/stream-js
Version:
A TypeScript SDK to receive pushed updates from OpenSea over websocket
3 lines (2 loc) • 5.22 kB
JavaScript
import{Socket as n}from"phoenix";function e(){return e=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o])}return n},e.apply(this,arguments)}function t(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,o=new Array(e);t<e;t++)o[t]=n[t];return o}var o,r,i,c;!function(n){n.MAINNET="mainnet"}(o||(o={})),function(n){n.ITEM_METADATA_UPDATED="item_metadata_updated",n.ITEM_LISTED="item_listed",n.ITEM_SOLD="item_sold",n.ITEM_TRANSFERRED="item_transferred",n.ITEM_RECEIVED_OFFER="item_received_offer",n.ITEM_RECEIVED_BID="item_received_bid",n.ITEM_CANCELLED="item_cancelled",n.COLLECTION_OFFER="collection_offer",n.TRAIT_OFFER="trait_offer",n.ORDER_INVALIDATE="order_invalidate",n.ORDER_REVALIDATE="order_revalidate"}(r||(r={})),function(n){n[n.DEBUG=20]="DEBUG",n[n.INFO=30]="INFO",n[n.WARN=40]="WARN",n[n.ERROR=50]="ERROR"}(i||(i={}));var s=((c={})[o.MAINNET]="wss://stream.openseabeta.com/socket",c),a=/*#__PURE__*/function(){function c(c){var a=this,u=c.network,f=void 0===u?o.MAINNET:u,l=c.token,d=c.apiUrl,E=c.connectOptions,v=c.logLevel,h=void 0===v?i.INFO:v,g=c.onError,I=void 0===g?function(n){return a.error(n)}:g,R=c.onEvent,m=void 0===R?function(){return!0}:R;this.socket=void 0,this.channels=void 0,this.logLevel=void 0,this.onEvent=void 0,this.connect=function(){a.debug("Connecting to socket"),a.socket.connect()},this.disconnect=function(n){return void 0===n&&(n=function(){return a.info("Successfully disconnected from socket")}),a.channels.clear(),a.socket.disconnect(n)},this.createChannel=function(n){var e=a.socket.channel(n);return e.join().receive("ok",function(){return a.info('Successfully joined channel "'+n+'"')}).receive("error",function(){return a.error('Failed to join channel "'+n+'"')}),a.channels.set(n,e),e},this.getChannel=function(n){var e=a.channels.get(n);return e||(a.debug('Creating channel for topic: "'+n+'"'),e=a.createChannel(n)),e},this.on=function(n,e,t){a.socket.connect();var o="collection:"+e;a.debug("Fetching channel "+o);var r=a.getChannel(o);a.debug("Subscribing to "+n+" events on "+o);var i=a.onEvent;return r.on(n,function(o){i(e,n,o)&&t(o)}),function(){a.debug("Unsubscribing from "+n+" events on "+o),r.leave().receive("ok",function(){a.channels.delete(o),a.info('Successfully left channel "'+o+'" listening for '+n)})}},this.onItemMetadataUpdated=function(n,e){return a.debug('Listening for item metadata updates on "'+n+'"'),a.on(r.ITEM_METADATA_UPDATED,n,e)},this.onItemCancelled=function(n,e){return a.debug('Listening for item cancellations on "'+n+'"'),a.on(r.ITEM_CANCELLED,n,e)},this.onItemListed=function(n,e){return a.debug('Listening for item listings on "'+n+'"'),a.on(r.ITEM_LISTED,n,e)},this.onItemSold=function(n,e){return a.debug('Listening for item sales on "'+n+'"'),a.on(r.ITEM_SOLD,n,e)},this.onItemTransferred=function(n,e){return a.debug('Listening for item transfers on "'+n+'"'),a.on(r.ITEM_TRANSFERRED,n,e)},this.onItemReceivedOffer=function(n,e){return a.debug('Listening for item offers on "'+n+'"'),a.on(r.ITEM_RECEIVED_OFFER,n,e)},this.onItemReceivedBid=function(n,e){return a.debug('Listening for item bids on "'+n+'"'),a.on(r.ITEM_RECEIVED_BID,n,e)},this.onCollectionOffer=function(n,e){return a.debug('Listening for collection offers on "'+n+'"'),a.on(r.COLLECTION_OFFER,n,e)},this.onTraitOffer=function(n,e){return a.debug('Listening for trait offers on "'+n+'"'),a.on(r.TRAIT_OFFER,n,e)},this.onOrderInvalidate=function(n,e){return a.debug('Listening for order invalidation events on "'+n+'"'),a.on(r.ORDER_INVALIDATE,n,e)},this.onOrderRevalidate=function(n,e){return a.debug('Listening for order revalidation events on "'+n+'"'),a.on(r.ORDER_REVALIDATE,n,e)},this.onEvents=function(n,e,o){var r=e.map(function(e){return a.on(e,n,o)});return function(){for(var n,e=function(n,e){var o="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(o)return(o=o.call(n)).next.bind(o);if(Array.isArray(n)||(o=function(n,e){if(n){if("string"==typeof n)return t(n,e);var o=Object.prototype.toString.call(n).slice(8,-1);return"Object"===o&&n.constructor&&(o=n.constructor.name),"Map"===o||"Set"===o?Array.from(n):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(n,e):void 0}}(n))){o&&(n=o);var r=0;return function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(r);!(n=e()).done;)(0,n.value)()}};var _="undefined"!=typeof window?window.WebSocket:void 0;this.socket=new n(d||s[f],e({params:{token:l},transport:_},E)),this.socket.onError(I),this.channels=new Map,this.logLevel=h,this.onEvent=m}var a=c.prototype;return a.debug=function(n){this.logLevel<=i.DEBUG&&console.debug("[DEBUG]:",n)},a.info=function(n){this.logLevel<=i.INFO&&console.info("[INFO]:",n)},a.warn=function(n){this.logLevel<=i.WARN&&console.warn("[WARN]:",n)},a.error=function(n){this.logLevel<=i.ERROR&&console.error("[ERROR]:",n)},c}();export{r as EventType,i as LogLevel,o as Network,a as OpenSeaStreamClient};
//# sourceMappingURL=index.module.js.map