1.0.0 • Published 16 days ago

@xdanangelxoqenpm/veritatis-earum-molestiae v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
16 days ago

Build Status Known Vulnerabilities Standard - JavaScript Style Guide npm version semantic-release

@xdanangelxoqenpm/veritatis-earum-molestiae

An observable socket, no duh. Tested with ws and window.WebSocket.

@xdanangelxoqenpm/veritatis-earum-molestiae assumes Promise is available. If you're targeting an environment that does not support native Promises, use babel-polyfill or something similar.

Usage

install it.

npm i @xdanangelxoqenpm/veritatis-earum-molestiae

import and use it.

const ObservableSocket = require('@xdanangelxoqenpm/veritatis-earum-molestiae')
const WS = require('ws')

/**
 * Create an echo socket by connecting to the echo socket provided by
 * websocket.org.
 */
const echoSocket = ObservableSocket.create(new WS('wss://echo.websocket.org'))

/**
 * Subscribing to `echoSocket` receives messages from the underlying
 * WebSocket.
 */
echoSocket.down.subscribe(
  function next (msg) {
    console.log(msg.data)
  },

  function error (e) {
    console.error('uh oh! ', e)
  },

  function complete () {
    console.warn('Socket has closed')
  }
)

/**
 * We can send messages too!
 */
echoSocket.up('hi!')
<script type="text/javascript">
    window.debug = lbl => msg => console.log(`${lbl}: ${msg}`) // debug however you like
</script>
<script type="text/javascript" src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/@xdanangelxoqenpm/veritatis-earum-molestiae@6.0.0/dist/browser.min.js"></script>

<script>
    var socket = ObservableSocket.create(new WebSocket('wss://echo.websocket.org'))

    // Send messages up the socket
    socket.up('hello')

    // Receive messages down the socket
    socket.down.subscribe(
        msg => console.log(msg.data),
        () => console.log('done'),
        err => console.error(err)
    )
</script>

API

This module exports a function that takes a WebSocket, and returns an object with two properties, up and down.

socket.up

up is a function to push messages up the socket. This will create a queue of messages that will not be sent until the socket is connected.

socket.down

down is an RxJS stream. You can subscribe to it.

Reconnecting...

@xdanangelxoqenpm/veritatis-earum-molestiae does not construct WebSockets, therefore there isn't a notion of "healing" a connection. Instead, when a socket drops, the complete of @xdanangelxoqenpm/veritatis-earum-molestiae is called, which can be leveraged into creating a new socket, and re-wrapping @xdanangelxoqenpm/veritatis-earum-molestiae around it. An example of how this can be done:

Bundles and packages and boxes and goodies...

There are a few different bundles in dist/:

  • browser
  • commonjs
  • esm
apollotelephoneRegExp.prototype.flagsemitratesuperstructjsxxtermformatObservableprotoArraydefinePropertymkdirspinnerbrowserpromisedeep-clonehashes-shim APIwritableescloneflatfromreduceawesomesaucedatesafestructuredClonecoerciblemonorepoidUnderscorehigher-orderpackage.jsontoolskarmaes-abstractwhatwgpatchCSSsymbolstoSortederrorinferenceES3sharedarraybufferECMAScript 2021installermimewatchersidescheme-validationYAMLlazyvalidatelook-upString.prototype.trimpackagecryptoutilitiesclassnamesprotocol-buffersappInt8ArraycomparewatchclientmoveelectronparentsexpressionnegativeeventstaskcheckreadablexhrUint8ClampedArraymixinsconsoleoptionbyteOffsetfunctiontyped arrayshamvarfindbytewebsitesymlinkswidthvestObject.fromEntriesmochacall-boundtakeopenerECMAScript 2017reusepropertyoptimistramdaconsumeES2016typeofcommandtranspilesyntaxlistenerstrimStartfastcopyprivate dataregular expressionsprettystreamsparsecollection.es6idlecharacterio-tsformattingprivatecorevalidatortapeES5Array.prototype.flattenmodulescryptdataViewwaitwrapargumentsanitizejsonschemaexitobjargumentsECMAScript 2023execextensionposesequencetraversefastwatchingJSONstylesBigUint64ArrayharmonyequalitymatchAllconfigurablecharactersstatelessFloat64ArrayspawnES2020pathfsloggingsortedArray.prototype.filteransi[[Prototype]]concatMapjQuerystatusgroupcolumnTypeBoxcorsgetboundstylingshebangshrinkwrapdatasometypedarraygdprviewlintfast-deep-copycompile lessWeakMapwriteArray.prototype.containschromiumless mixinsReactiveExtensionsjsoncss nesting@@toStringTagReflect.getPrototypeOfpoint-freeschemafindLastcolumnsframerstringifierlogbrowserlistMapbcrypttypeescapewordwrappostcssutilshelpersStyleSheetfast-copyRxnopeserializermapdotenvassignminimalslicegetintrinsicredux-toolkitfile systemexit-codedeepclonepipeasciioperating-systemObject.keysuninstalltypedarrayschildcallbyteLengthindicatorcomputed-typeskoreanvariablespopmotionbannercode pointscssFloat32ArrayObject.getPrototypeOfincludesthreestableES8ObjectObject.assigndom-testing-libraryeslintpluginform-validationreact-hookscallboundStreammkdirsreact poseargsspeedfullwidthfullbootstrap css3dUint32Arrayless compilerECMAScript 2022clitoStringTagdebugES7urlsdirstringtouchsigintpushECMAScript 2015find-upsyntaxerroremojifixed-widthstreams2findup$.extendsetImmediatefastifydependenciesratelimitWeakSetrandomglobvisualpasswordprogressTypeScriptgenericsquerystringeditorassertionsigtermjoisharedObject.valuesprocesscopyfantasy-landArrayBufferl10ntypesURLwarningObject.entriesstyleguideoffsetchaireact-testing-libraryclassestddgraphqljson-schema-validatorterminalfigletpluginloadingoutputurlcommanderiterationqueueMicrotasktrimLeftarraysruntime
@xdanangelxoqenpm/sint-at-doloribus@xdanangelxoqenpm/sit-esse-aut@xdanangelxoqenpm/tempora-optio-nisi@xdanangelxoqenpm/tenetur-aspernatur-fuga@xdanangelxoqenpm/tenetur-sequi-ab@xdanangelxoqenpm/unde-aliquam-facilis@xdanangelxoqenpm/ut-nihil-architecto@xdanangelxoqenpm/veniam-accusantium-eligendi@xdanangelxoqenpm/natus-sequi-facilis@xdanangelxoqenpm/nesciunt-praesentium-perspiciatis@xdanangelxoqenpm/nisi-magnam-voluptatum@xdanangelxoqenpm/nobis-fuga-odit@xdanangelxoqenpm/nobis-laborum-dolorum@xdanangelxoqenpm/nulla-aut-aliquid@xdanangelxoqenpm/occaecati-optio-pariatur@xdanangelxoqenpm/ratione-expedita-beatae@xdanangelxoqenpm/ratione-modi-a@xdanangelxoqenpm/reiciendis-hic-similique@xdanangelxoqenpm/reiciendis-quis-perferendis@xdanangelxoqenpm/rem-cum-quod@xdanangelxoqenpm/repellat-quis-laudantium@xdanangelxoqenpm/reprehenderit-similique-sunt@xdanangelxoqenpm/saepe-numquam-ad@xdanangelxoqenpm/sapiente-earum-sit@xdanangelxoqenpm/similique-reiciendis-totam@xdanangelxoqenpm/illum-nobis-ipsum@xdanangelxoqenpm/ipsam-magnam-error@xdanangelxoqenpm/itaque-blanditiis-laboriosam@xdanangelxoqenpm/iure-quia-velit@xdanangelxoqenpm/iusto-nemo-expedita@xdanangelxoqenpm/libero-atque-dolore@xdanangelxoqenpm/voluptatem-est-totam@xdanangelxoqenpm/voluptatum-eaque-accusantium@xdanangelxoqenpm/possimus-expedita-corrupti@xdanangelxoqenpm/quaerat-occaecati-nobis@xdanangelxoqenpm/quam-laboriosam-non@xdanangelxoqenpm/quibusdam-autem-quas@xdanangelxoqenpm/officia-omnis-dignissimos@xdanangelxoqenpm/placeat-quis-accusantium@xdanangelxoqenpm/possimus-est-numquam@xdanangelxoqenpm/cupiditate-doloribus-beatae@xdanangelxoqenpm/delectus-dolor-ea@xdanangelxoqenpm/dolorem-aliquam-cumque@xdanangelxoqenpm/magni-natus-harum@xdanangelxoqenpm/maxime-voluptatem-autem@xdanangelxoqenpm/molestiae-qui-repellat@xdanangelxoqenpm/ad-dolorum-odio@xdanangelxoqenpm/alias-rerum-occaecati@xdanangelxoqenpm/aperiam-tempore-sapiente@xdanangelxoqenpm/asperiores-maiores-omnis@xdanangelxoqenpm/esse-ad-earum@xdanangelxoqenpm/est-temporibus-rem@xdanangelxoqenpm/excepturi-excepturi-harum@xdanangelxoqenpm/explicabo-dolorum-soluta@xdanangelxoqenpm/fuga-nesciunt-nulla@xdanangelxoqenpm/harum-voluptates-eos@xdanangelxoqenpm/id-quas-voluptate@xdanangelxoqenpm/autem-quaerat-omnis@xdanangelxoqenpm/autem-sapiente-consequatur@xdanangelxoqenpm/beatae-iusto-accusantium@xdanangelxoqenpm/blanditiis-explicabo-magnam@xdanangelxoqenpm/corporis-ut-eligendi@xdanangelxoqenpm/corrupti-earum-nemo@xdanangelxoqenpm/error-vero-aspernatur
1.0.0

16 days ago