diff --git a/.gitignore b/.gitignore index b752b89..c059530 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ node_modules coverage build dist -react-native +/react-native .rpt2_cache # misc diff --git a/CHANGELOG.md b/CHANGELOG.md index 51a4326..b6c133b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [v6.0.2](https://github.com/mayteio/use-pusher/compare/v6.0.1...v6.0.2) + +> 23 July 2020 + +- ✨ allow channel to be undefined across hooks that take a channel argument [`1162edf`](https://github.com/mayteio/use-pusher/commit/1162edfd9b1688f3213d7789c59497c0d96a72e4) + +#### [v6.0.1](https://github.com/mayteio/use-pusher/compare/v6.0.0...v6.0.1) + +> 22 July 2020 + +- 📦 Update changelog [`41daf31`](https://github.com/mayteio/use-pusher/commit/41daf3110396e7854d96b3ebf1be2cd705303dd4) +- 📦 include netlify deployment in docs script [`eba9ccd`](https://github.com/mayteio/use-pusher/commit/eba9ccdd147035c7ab3f1c82e72378d3ed397922) + +### [v6.0.0](https://github.com/mayteio/use-pusher/compare/v5.1.0...v6.0.0) + +> 22 July 2020 + +- ✨ react native support [`#7`](https://github.com/mayteio/use-pusher/pull/7) +- Bump websocket-extensions from 0.1.3 to 0.1.4 in /example [`#12`](https://github.com/mayteio/use-pusher/pull/12) +- Bump acorn from 5.7.3 to 5.7.4 in /example [`#9`](https://github.com/mayteio/use-pusher/pull/9) +- ♻️ Loosen channelName requirement in use(presence)Channel to allow channelName to be undefined (plus tests) [`ca6e1af`](https://github.com/mayteio/use-pusher/commit/ca6e1af6b3c2253a1f915a88f44747529d46611d) +- ✍️ Document new changes [`573f7e3`](https://github.com/mayteio/use-pusher/commit/573f7e3c60345b738ab97c6affe91e7351ba136f) + +#### [v5.1.0](https://github.com/mayteio/use-pusher/compare/v5.0.0...v5.1.0) + +> 11 July 2020 + +- Bump acorn from 5.7.3 to 5.7.4 [`#8`](https://github.com/mayteio/use-pusher/pull/8) +- 📦 upgrade dependencies [`e029fe7`](https://github.com/mayteio/use-pusher/commit/e029fe71c06c062c464edcfc1af7d86ad2b86325) +- ✨ unsubscribe from channel on effect cleanup [`2680446`](https://github.com/mayteio/use-pusher/commit/268044619e47101579c87fedcccd59a69a0980fa) +- ✨ add 'me' and 'count' to presenceChannel return [`80c017b`](https://github.com/mayteio/use-pusher/commit/80c017b337d5b62f107e662c43902483a0c2485e) + ### [v5.0.0](https://github.com/mayteio/use-pusher/compare/v4.1.5...v5.0.0) > 23 June 2020 @@ -44,13 +76,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [v4.1.0](https://github.com/mayteio/use-pusher/compare/v4.0.1...v4.1.0) -<<<<<<< HEAD - -> # 27 February 2020 -> -> 26 February 2020 -> -> > > > > > > master +> 27 February 2020 - ✨ removed local mocks, migrate to pusher-js-mock. Not happy with the tests. [`8d09648`](https://github.com/mayteio/use-pusher/commit/8d09648b5ca4a12ce709704dca0a4dba574eba0d) @@ -126,17 +152,11 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [v3.0.6](https://github.com/mayteio/use-pusher/compare/v3.0.5...v3.0.6) -> 4 June 2020 +> 21 January 2020 #### [v3.0.5](https://github.com/mayteio/use-pusher/compare/v3.0.4...v3.0.5) -<<<<<<< HEAD - -> # 14 February 2020 -> -> 13 February 2020 -> -> > > > > > > master +> 14 February 2020 - 🏷 use official typescript typings [`d3b5d4f`](https://github.com/mayteio/use-pusher/commit/d3b5d4f7acc5d8d0a593ebf752d7d23fe94a58c5) - udpate docs [`ac90b4d`](https://github.com/mayteio/use-pusher/commit/ac90b4d9cfe4513eaf998c8898f5ba7f1c95c620) @@ -166,7 +186,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 29 October 2019 -- ♻️ improve DX: `useEvent<T>(data?: T)` [`42bb95a`](https://github.com/mayteio/use-pusher/commit/42bb95a48bb8b42c038166b5b557fea446d84607) +- ♻️ improve DX: `useEvent<T>(data?: T)` [`42bb95a`](https://github.com/mayteio/use-pusher/commit/42bb95a48bb8b42c038166b5b557fea446d84607) ### [v2.0.0](https://github.com/mayteio/use-pusher/compare/v1.1.5...v2.0.0) @@ -251,7 +271,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). > 17 August 2019 -- remove **tests** from dist [`3bf4195`](https://github.com/mayteio/use-pusher/commit/3bf4195df85b7f4903fdd0b264e95e2199fdcc51) +- remove __tests__ from dist [`3bf4195`](https://github.com/mayteio/use-pusher/commit/3bf4195df85b7f4903fdd0b264e95e2199fdcc51) #### [v1.0.4](https://github.com/mayteio/use-pusher/compare/v1.0.3...v1.0.4) diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 579619d..a8654af 100644 --- a/docs/assets/js/search.js +++ b/docs/assets/js/search.js @@ -1,3 +1,3 @@ var typedoc = typedoc || {}; typedoc.search = typedoc.search || {}; - typedoc.search.data = {"kinds":{"1":"External module","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"types\"","url":"modules/_types_.html","classes":"tsd-kind-external-module"},{"id":1,"kind":256,"name":"PusherContextValues","url":"interfaces/_types_.pushercontextvalues.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"types\""},{"id":2,"kind":1024,"name":"client","url":"interfaces/_types_.pushercontextvalues.html#client","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherContextValues"},{"id":3,"kind":1024,"name":"triggerEndpoint","url":"interfaces/_types_.pushercontextvalues.html#triggerendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherContextValues"},{"id":4,"kind":256,"name":"PusherProviderProps","url":"interfaces/_types_.pusherproviderprops.html","classes":"tsd-kind-interface tsd-parent-kind-external-module","parent":"\"types\""},{"id":5,"kind":1024,"name":"clientKey","url":"interfaces/_types_.pusherproviderprops.html#clientkey","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherProviderProps"},{"id":6,"kind":1024,"name":"cluster","url":"interfaces/_types_.pusherproviderprops.html#cluster","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"\"types\".PusherProviderProps"},{"id":7,"kind":1024,"name":"triggerEndpoint","url":"interfaces/_types_.pusherproviderprops.html#triggerendpoint","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherProviderProps"},{"id":8,"kind":1024,"name":"defer","url":"interfaces/_types_.pusherproviderprops.html#defer","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherProviderProps"},{"id":9,"kind":1024,"name":"value","url":"interfaces/_types_.pusherproviderprops.html#value","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".PusherProviderProps"},{"id":10,"kind":1024,"name":"activityTimeout","url":"interfaces/_types_.pusherproviderprops.html#activitytimeout","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":11,"kind":1024,"name":"enableStats","url":"interfaces/_types_.pusherproviderprops.html#enablestats","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":12,"kind":1024,"name":"disableStats","url":"interfaces/_types_.pusherproviderprops.html#disablestats","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":13,"kind":1024,"name":"authEndpoint","url":"interfaces/_types_.pusherproviderprops.html#authendpoint","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":14,"kind":1024,"name":"auth","url":"interfaces/_types_.pusherproviderprops.html#auth","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":15,"kind":1024,"name":"authTransport","url":"interfaces/_types_.pusherproviderprops.html#authtransport","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":16,"kind":1024,"name":"authorizer","url":"interfaces/_types_.pusherproviderprops.html#authorizer","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":17,"kind":1024,"name":"disabledTransports","url":"interfaces/_types_.pusherproviderprops.html#disabledtransports","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":18,"kind":1024,"name":"enabledTransports","url":"interfaces/_types_.pusherproviderprops.html#enabledtransports","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":19,"kind":1024,"name":"encrypted","url":"interfaces/_types_.pusherproviderprops.html#encrypted","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":20,"kind":1024,"name":"forceTLS","url":"interfaces/_types_.pusherproviderprops.html#forcetls","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":21,"kind":1024,"name":"ignoreNullOrigin","url":"interfaces/_types_.pusherproviderprops.html#ignorenullorigin","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":22,"kind":1024,"name":"pongTimeout","url":"interfaces/_types_.pusherproviderprops.html#pongtimeout","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":23,"kind":1024,"name":"statsHost","url":"interfaces/_types_.pusherproviderprops.html#statshost","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":24,"kind":1024,"name":"timelineParams","url":"interfaces/_types_.pusherproviderprops.html#timelineparams","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":25,"kind":1024,"name":"unavailable_timeout","url":"interfaces/_types_.pusherproviderprops.html#unavailable_timeout","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":26,"kind":1024,"name":"wsHost","url":"interfaces/_types_.pusherproviderprops.html#wshost","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":27,"kind":1024,"name":"httpHost","url":"interfaces/_types_.pusherproviderprops.html#httphost","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":28,"kind":1024,"name":"wsPath","url":"interfaces/_types_.pusherproviderprops.html#wspath","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":29,"kind":1024,"name":"wsPort","url":"interfaces/_types_.pusherproviderprops.html#wsport","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":30,"kind":1024,"name":"wssPort","url":"interfaces/_types_.pusherproviderprops.html#wssport","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":31,"kind":1024,"name":"httpPort","url":"interfaces/_types_.pusherproviderprops.html#httpport","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":32,"kind":1024,"name":"httpsPort","url":"interfaces/_types_.pusherproviderprops.html#httpsport","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"\"types\".PusherProviderProps"},{"id":33,"kind":1,"name":"\"PusherProvider\"","url":"modules/_pusherprovider_.html","classes":"tsd-kind-external-module"},{"id":34,"kind":32,"name":"PusherContext","url":"modules/_pusherprovider_.html#pushercontext","classes":"tsd-kind-variable tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"PusherProvider\""},{"id":35,"kind":32,"name":"__PusherContext","url":"modules/_pusherprovider_.html#__pushercontext","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"PusherProvider\""},{"id":36,"kind":64,"name":"PusherProvider","url":"modules/_pusherprovider_.html#pusherprovider","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"PusherProvider\""},{"id":37,"kind":1,"name":"\"mocks\"","url":"modules/_mocks_.html","classes":"tsd-kind-external-module"},{"id":38,"kind":128,"name":"PusherChannelMock","url":"classes/_mocks_.pusherchannelmock.html","classes":"tsd-kind-class tsd-parent-kind-external-module","parent":"\"mocks\""},{"id":39,"kind":1024,"name":"callbacks","url":"classes/_mocks_.pusherchannelmock.html#callbacks","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":40,"kind":65536,"name":"__type","url":"classes/_mocks_.pusherchannelmock.html#callbacks.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"mocks\".PusherChannelMock.callbacks"},{"id":41,"kind":1024,"name":"name","url":"classes/_mocks_.pusherchannelmock.html#name","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":42,"kind":512,"name":"constructor","url":"classes/_mocks_.pusherchannelmock.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":43,"kind":2048,"name":"bind","url":"classes/_mocks_.pusherchannelmock.html#bind","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":44,"kind":2048,"name":"unbind","url":"classes/_mocks_.pusherchannelmock.html#unbind","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":45,"kind":2048,"name":"emit","url":"classes/_mocks_.pusherchannelmock.html#emit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":46,"kind":2048,"name":"trigger","url":"classes/_mocks_.pusherchannelmock.html#trigger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherChannelMock"},{"id":47,"kind":128,"name":"PusherPresenceChannelMock","url":"classes/_mocks_.pusherpresencechannelmock.html","classes":"tsd-kind-class tsd-parent-kind-external-module","parent":"\"mocks\""},{"id":48,"kind":1024,"name":"members","url":"classes/_mocks_.pusherpresencechannelmock.html#members","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":49,"kind":1024,"name":"myID","url":"classes/_mocks_.pusherpresencechannelmock.html#myid","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":50,"kind":512,"name":"constructor","url":"classes/_mocks_.pusherpresencechannelmock.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":51,"kind":1024,"name":"callbacks","url":"classes/_mocks_.pusherpresencechannelmock.html#callbacks","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":52,"kind":65536,"name":"__type","url":"classes/_mocks_.pusherpresencechannelmock.html#callbacks.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"mocks\".PusherPresenceChannelMock.callbacks"},{"id":53,"kind":1024,"name":"name","url":"classes/_mocks_.pusherpresencechannelmock.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":54,"kind":2048,"name":"bind","url":"classes/_mocks_.pusherpresencechannelmock.html#bind","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":55,"kind":2048,"name":"unbind","url":"classes/_mocks_.pusherpresencechannelmock.html#unbind","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":56,"kind":2048,"name":"emit","url":"classes/_mocks_.pusherpresencechannelmock.html#emit","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":57,"kind":2048,"name":"trigger","url":"classes/_mocks_.pusherpresencechannelmock.html#trigger","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"mocks\".PusherPresenceChannelMock"},{"id":58,"kind":128,"name":"PusherMock","url":"classes/_mocks_.pushermock.html","classes":"tsd-kind-class tsd-parent-kind-external-module","parent":"\"mocks\""},{"id":59,"kind":1024,"name":"key","url":"classes/_mocks_.pushermock.html#key","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":60,"kind":1024,"name":"config","url":"classes/_mocks_.pushermock.html#config","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":61,"kind":1024,"name":"channels","url":"classes/_mocks_.pushermock.html#channels","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":62,"kind":65536,"name":"__type","url":"classes/_mocks_.pushermock.html#channels.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"\"mocks\".PusherMock.channels"},{"id":63,"kind":512,"name":"constructor","url":"classes/_mocks_.pushermock.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":64,"kind":2048,"name":"channel","url":"classes/_mocks_.pushermock.html#channel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":65,"kind":2048,"name":"subscribe","url":"classes/_mocks_.pushermock.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":66,"kind":2048,"name":"unsubscribe","url":"classes/_mocks_.pushermock.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":67,"kind":2048,"name":"disconnect","url":"classes/_mocks_.pushermock.html#disconnect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"mocks\".PusherMock"},{"id":68,"kind":4194304,"name":"CallbackSignature","url":"modules/_mocks_.html#callbacksignature","classes":"tsd-kind-type-alias tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"mocks\""},{"id":69,"kind":65536,"name":"__type","url":"modules/_mocks_.html#callbacksignature.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"mocks\".CallbackSignature"},{"id":70,"kind":1,"name":"\"usePusher\"","url":"modules/_usepusher_.html","classes":"tsd-kind-external-module"},{"id":71,"kind":64,"name":"usePusher","url":"modules/_usepusher_.html#usepusher","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"usePusher\""},{"id":72,"kind":32,"name":"NOT_IN_CONTEXT_WARNING","url":"modules/_usepusher_.html#not_in_context_warning","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"usePusher\""},{"id":73,"kind":1,"name":"\"useChannel\"","url":"modules/_usechannel_.html","classes":"tsd-kind-external-module"},{"id":74,"kind":64,"name":"useChannel","url":"modules/_usechannel_.html#usechannel","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useChannel\""},{"id":75,"kind":1,"name":"\"useClientTrigger\"","url":"modules/_useclienttrigger_.html","classes":"tsd-kind-external-module"},{"id":76,"kind":64,"name":"useClientTrigger","url":"modules/_useclienttrigger_.html#useclienttrigger","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useClientTrigger\""},{"id":77,"kind":1,"name":"\"useEvent\"","url":"modules/_useevent_.html","classes":"tsd-kind-external-module"},{"id":78,"kind":64,"name":"useEvent","url":"modules/_useevent_.html#useevent","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useEvent\""},{"id":79,"kind":1,"name":"\"usePresenceChannel\"","url":"modules/_usepresencechannel_.html","classes":"tsd-kind-external-module"},{"id":80,"kind":64,"name":"usePresenceChannel","url":"modules/_usepresencechannel_.html#usepresencechannel","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":81,"kind":1,"name":"\"useTrigger\"","url":"modules/_usetrigger_.html","classes":"tsd-kind-external-module"},{"id":82,"kind":64,"name":"useTrigger","url":"modules/_usetrigger_.html#usetrigger","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useTrigger\""}]}; \ No newline at end of file + typedoc.search.data = {"kinds":{"1":"External module","32":"Variable","64":"Function","256":"Interface","1024":"Property","65536":"Type literal","4194304":"Type alias","16777216":"Reference"},"rows":[{"id":0,"kind":1,"name":"\"PusherProvider\"","url":"modules/_pusherprovider_.html","classes":"tsd-kind-external-module"},{"id":1,"kind":32,"name":"PusherContext","url":"modules/_pusherprovider_.html#pushercontext","classes":"tsd-kind-variable tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"PusherProvider\""},{"id":2,"kind":32,"name":"__PusherContext","url":"modules/_pusherprovider_.html#__pushercontext","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"PusherProvider\""},{"id":3,"kind":64,"name":"PusherProvider","url":"modules/_pusherprovider_.html#pusherprovider","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"PusherProvider\""},{"id":4,"kind":1,"name":"\"react-native/PusherProvider\"","url":"modules/_react_native_pusherprovider_.html","classes":"tsd-kind-external-module"},{"id":5,"kind":16777216,"name":"__PusherContext","url":"modules/_react_native_pusherprovider_.html#__pushercontext","classes":"tsd-kind-reference tsd-parent-kind-external-module","parent":"\"react-native/PusherProvider\""},{"id":6,"kind":64,"name":"PusherProvider","url":"modules/_react_native_pusherprovider_.html#pusherprovider","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"react-native/PusherProvider\""},{"id":7,"kind":1,"name":"\"testUtils\"","url":"modules/_testutils_.html","classes":"tsd-kind-external-module"},{"id":8,"kind":64,"name":"actAndFlushPromises","url":"modules/_testutils_.html#actandflushpromises","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"testUtils\""},{"id":9,"kind":64,"name":"renderHookWithProvider","url":"modules/_testutils_.html#renderhookwithprovider","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"testUtils\""},{"id":10,"kind":64,"name":"makeAuthPusherConfig","url":"modules/_testutils_.html#makeauthpusherconfig","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"testUtils\""},{"id":11,"kind":1,"name":"\"usePusher\"","url":"modules/_usepusher_.html","classes":"tsd-kind-external-module"},{"id":12,"kind":64,"name":"usePusher","url":"modules/_usepusher_.html#usepusher","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"usePusher\""},{"id":13,"kind":32,"name":"NOT_IN_CONTEXT_WARNING","url":"modules/_usepusher_.html#not_in_context_warning","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"usePusher\""},{"id":14,"kind":1,"name":"\"useChannel\"","url":"modules/_usechannel_.html","classes":"tsd-kind-external-module"},{"id":15,"kind":64,"name":"useChannel","url":"modules/_usechannel_.html#usechannel","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useChannel\""},{"id":16,"kind":32,"name":"NO_CHANNEL_NAME_ERROR","url":"modules/_usechannel_.html#no_channel_name_error","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"useChannel\""},{"id":17,"kind":1,"name":"\"useClientTrigger\"","url":"modules/_useclienttrigger_.html","classes":"tsd-kind-external-module"},{"id":18,"kind":64,"name":"useClientTrigger","url":"modules/_useclienttrigger_.html#useclienttrigger","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useClientTrigger\""},{"id":19,"kind":1,"name":"\"useEvent\"","url":"modules/_useevent_.html","classes":"tsd-kind-external-module"},{"id":20,"kind":64,"name":"useEvent","url":"modules/_useevent_.html#useevent","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useEvent\""},{"id":21,"kind":1,"name":"\"usePresenceChannel\"","url":"modules/_usepresencechannel_.html","classes":"tsd-kind-external-module"},{"id":22,"kind":256,"name":"usePresenceChannelValue","url":"interfaces/_usepresencechannel_.usepresencechannelvalue.html","classes":"tsd-kind-interface tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"usePresenceChannel\""},{"id":23,"kind":1024,"name":"channel","url":"interfaces/_usepresencechannel_.usepresencechannelvalue.html#channel","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"usePresenceChannel\".usePresenceChannelValue"},{"id":24,"kind":4194304,"name":"PresenceChannelState","url":"modules/_usepresencechannel_.html#presencechannelstate","classes":"tsd-kind-type-alias tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"usePresenceChannel\""},{"id":25,"kind":65536,"name":"__type","url":"modules/_usepresencechannel_.html#presencechannelstate.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"usePresenceChannel\".PresenceChannelState"},{"id":26,"kind":32,"name":"members","url":"modules/_usepresencechannel_.html#presencechannelstate.__type-1.members","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".PresenceChannelState.__type"},{"id":27,"kind":32,"name":"me","url":"modules/_usepresencechannel_.html#presencechannelstate.__type-1.me","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".PresenceChannelState.__type"},{"id":28,"kind":32,"name":"myID","url":"modules/_usepresencechannel_.html#presencechannelstate.__type-1.myid","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".PresenceChannelState.__type"},{"id":29,"kind":32,"name":"count","url":"modules/_usepresencechannel_.html#presencechannelstate.__type-1.count","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".PresenceChannelState.__type"},{"id":30,"kind":4194304,"name":"MemberAction","url":"modules/_usepresencechannel_.html#memberaction","classes":"tsd-kind-type-alias tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"usePresenceChannel\""},{"id":31,"kind":65536,"name":"__type","url":"modules/_usepresencechannel_.html#memberaction.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"usePresenceChannel\".MemberAction"},{"id":32,"kind":32,"name":"id","url":"modules/_usepresencechannel_.html#memberaction.__type.id","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".MemberAction.__type"},{"id":33,"kind":32,"name":"info","url":"modules/_usepresencechannel_.html#memberaction.__type.info","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".MemberAction.__type"},{"id":34,"kind":4194304,"name":"ReducerAction","url":"modules/_usepresencechannel_.html#reduceraction","classes":"tsd-kind-type-alias tsd-parent-kind-external-module tsd-is-not-exported","parent":"\"usePresenceChannel\""},{"id":35,"kind":65536,"name":"__type","url":"modules/_usepresencechannel_.html#reduceraction.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"usePresenceChannel\".ReducerAction"},{"id":36,"kind":32,"name":"type","url":"modules/_usepresencechannel_.html#reduceraction.__type-2.type","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".ReducerAction.__type"},{"id":37,"kind":32,"name":"payload","url":"modules/_usepresencechannel_.html#reduceraction.__type-2.payload","classes":"tsd-kind-variable tsd-parent-kind-type-literal tsd-is-not-exported","parent":"\"usePresenceChannel\".ReducerAction.__type"},{"id":38,"kind":32,"name":"SET_STATE","url":"modules/_usepresencechannel_.html#set_state","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":39,"kind":32,"name":"ADD_MEMBER","url":"modules/_usepresencechannel_.html#add_member","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":40,"kind":32,"name":"REMOVE_MEMBER","url":"modules/_usepresencechannel_.html#remove_member","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":41,"kind":64,"name":"presenceChannelReducer","url":"modules/_usepresencechannel_.html#presencechannelreducer","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":42,"kind":64,"name":"usePresenceChannel","url":"modules/_usepresencechannel_.html#usepresencechannel","classes":"tsd-kind-function tsd-parent-kind-external-module","parent":"\"usePresenceChannel\""},{"id":43,"kind":1,"name":"\"useTrigger\"","url":"modules/_usetrigger_.html","classes":"tsd-kind-external-module"},{"id":44,"kind":64,"name":"useTrigger","url":"modules/_usetrigger_.html#usetrigger","classes":"tsd-kind-function tsd-parent-kind-external-module tsd-has-type-parameter","parent":"\"useTrigger\""},{"id":45,"kind":32,"name":"NO_AUTH_HEADERS_WARNING","url":"modules/_usetrigger_.html#no_auth_headers_warning","classes":"tsd-kind-variable tsd-parent-kind-external-module","parent":"\"useTrigger\""}]}; \ No newline at end of file diff --git a/docs/classes/_mocks_.pusherchannelmock.html b/docs/classes/_mocks_.pusherchannelmock.html deleted file mode 100644 index 2ac2261..0000000 --- a/docs/classes/_mocks_.pusherchannelmock.html +++ /dev/null @@ -1,459 +0,0 @@ - - -
- - -Bind callback to an event name.
-name of the event.
-callback to be called on event.
-Emit event with data.
-name of the event.
-data you want to pass in to callback function that gets * called.
-Unbind callback from an event name.
-name of the event.
-callback to be called on event.
-Generated using TypeDoc
-Initialize PusherMock with empty channels object.
-Get channel by its name.
-name of the channel.
-PusherChannelMock object that represents channel
-Mock subscribing to a channel.
-name of the channel.
-PusherChannelMock object that represents channel
-Unsubscribe from a mocked channel.
-name of the channel.
-Generated using TypeDoc
-Initialize PusherChannelMock with callbacks object.
-Bind callback to an event name.
-name of the event.
-callback to be called on event.
-Emit event with data.
-name of the event.
-data you want to pass in to callback function that gets * called.
-Unbind callback from an event name.
-name of the event.
-callback to be called on event.
-Generated using TypeDoc
-@harelpls/use-pusher
-- - -Easy as hooks that integrate with the pusher-js library.
+Easy as React hooks that integrate with the
pusher-js
library.
useChannel
usePresenceChannel
useEvent
useTrigger
usePusher
useClientTrigger
You must wrap your app with a PusherProvider
and pass it config props for pusher-js
initialisation.
import React from 'react';
-import { PusherProvider } from '@harelpls/use-pusher';
+ import React from "react";
+import { PusherProvider } from "@harelpls/use-pusher";
const config = {
// required config props
- clientKey: 'client-key',
- cluster: 'ap4',
+ clientKey: "client-key",
+ cluster: "ap4",
// optional if you'd like to trigger events. BYO endpoint.
// see "Trigger Server" below for more info
- triggerEndpoint: '/pusher/trigger',
+ triggerEndpoint: "/pusher/trigger",
// required for private/presence channels
// also sends auth headers to trigger endpoint
- authEndpoint: '/pusher/auth',
+ authEndpoint: "/pusher/auth",
auth: {
- headers: { Authorization: 'Bearer token' },
+ headers: { Authorization: "Bearer token" },
},
};
@@ -119,13 +139,13 @@ Usage
<Example />
</PusherProvider>;
};
-
+
useChannel
Use this hook to subscribe to a channel.
// returns channel instance.
-const channel = useChannel('channel-name');
-
+const channel = useChannel("channel-name");
+
usePresenceChannel
Augments a regular channel with member functionality.
@@ -145,22 +165,19 @@usePresenceChannel
useEvent
Bind to events on a channel with a callback.
const Example = () => {
const [message, setMessages] = useState();
- const channel = useChannel('channel-name');
- useEvent(
- channel,
- 'message',
- ({ data }) => setMessages(messages => [...messages, data]),
- // optional dependencies array. Passed through to useCallback. Defaults to [].
- []
+ const channel = useChannel("channel-name");
+ useEvent(channel, "message", ({ data }) =>
+ setMessages((messages) => [...messages, data])
);
};
-
+ Note: This will bind and unbind to the event on each render. You may want to memoise your callback with useCallback
before passing it in if you notice performance issues.
useTrigger
A helper function to create a server triggered event. BYO server (See Trigger Server below). Pass in triggerEndpoint
prop to <PusherProvider />
. Any auth headers from config.auth.headers
automatically get passed to the fetch
call.
useTrigger
usePusher
Get access to the Pusher instance to do other things.
-import { usePusher } from '@harelpls/use-pusher';
+ import { usePusher } from "@harelpls/use-pusher";
const Example = () => {
const { client } = usePusher();
- client.log('Look ma, logs!');
+ client.log("Look ma, logs!");
return null;
};
@@ -191,13 +208,13 @@ usePusher
Trigger Server
In order to trigger an event, you'll have to create a simple lambda (or an express server if that's your thing). Below is a short lambda that can handle triggered events from useTrigger
.
- import Pusher from 'pusher';
+ import Pusher from "pusher";
const pusher = new Pusher({
- appId: 'app-id',
- key: 'client-key',
- secret: 'mad-secret',
- cluster: 'ap4',
+ appId: "app-id",
+ key: "client-key",
+ secret: "mad-secret",
+ cluster: "ap4",
});
export async function handler(event) {
@@ -205,20 +222,20 @@ Trigger Server
pusher.trigger(channelName, eventName, data);
return { statusCode: 200 };
}
-
+
useClientTrigger
I don't want a server though
I hear ya. If you're feeling audacious, you can use client events to push directly from the client:
- import { useChannel, useClientTrigger } from '@harelpls/use-pusher';
+ import { useChannel, useClientTrigger } from "@harelpls/use-pusher";
const Example = () => {
- const channel = useChannel('presence-danger-zone');
+ const channel = useChannel("presence-ca");
const trigger = useClientTrigger(channel);
const handleClientEvent = () => {
- trigger('Pew pew');
+ trigger("Pew pew");
};
return <button onClick={handleClientEvent}>Fire</button>;
@@ -230,34 +247,34 @@ Typescript
Testing
- Typed PusherMock
, PusherChannelMock
and PusherPresenceChannelMock
utils are provided based on pusher-js-mock
(thanks mate 🙏). Use these to stub out the client and channels, with an additional emit
method on the channel classes.
+ I've teamed up with @nikolalsvk on pusher-js-mock
to bring y'all a great pusher mock.
Testing emitted events with jest can be achieved using jest.mock
and @testing-library/react
(or enzyme
, though your tests should reflect what the user should see NOT how the component handles events internally):
// Example.tsx
-import React from 'react';
-import { useChannel, useEvent } from '@harelpls/use-pusher';
+import React from "react";
+import { useChannel, useEvent } from "@harelpls/use-pusher";
const Example = () => {
const [title, setTitle] = useState();
- const channel = useChannel('my-channel');
- useEvent(channel, 'title', ({ data }) => setTitle(data));
+ const channel = useChannel("my-channel");
+ useEvent(channel, "title", ({ data }) => setTitle(data));
return <span>{title}</span>;
};
// Example.test.tsx
-import { render, act } from '@testing-library/react';
-import { PusherMock, PusherChannelMock } from '@harelpls/use-pusher';
+import { render, act } from "@testing-library/react";
+import { PusherMock, PusherChannelMock } from "pusher-js-mock";
// mock out the result of the useChannel hook
const mockChannel = new PusherChannelMock();
-jest.mock('@harelpls/use-pusher', () => ({
- ...require.requireActual('@harelpls/use-pusher'),
+jest.mock("@harelpls/use-pusher", () => ({
+ ...require.requireActual("@harelpls/use-pusher"),
useChannel: () => mockChannel,
}));
-test('should show a title when it receives a title event', async () => {
+test("should show a title when it receives a title event", async () => {
// mock the client
- const client = { current: new PusherMock('client-key', { cluster: 'ap4' }) };
+ const client = new PusherMock("client-key", { cluster: "ap4" });
// render component and provider with a mocked context value
const { findByText } = render(
@@ -267,12 +284,17 @@ Testing
);
// emit an event on the mocked channel
- act(() => mockChannel.emit('title', { data: 'Hello world' }));
+ act(() => mockChannel.emit("title", { data: "Hello world" }));
// assert expectations
- expect(await findByText('Hello world')).toBeInTheDocument();
+ expect(await findByText("Hello world")).toBeInTheDocument();
});
Check out the example tests for testing presence channels.
+
+ React Native
+
+ This package comes with React Native support. Import your PusherProvider
from @harelpls/use-pusher/react-native
instead of the default @harelpls/use-pusher
. All exports (except testing utils) are re-exported from there.
+ import { PusherProvider, useChannel } from "@harelpls/use-pusher/react-native";
Contributing
@@ -299,10 +321,10 @@ License
"PusherProvider"
-
- "mocks"
+ "react-
native/PusherProvider"
-
- "types"
+ "test
Utils"
-
"use
Channel"
diff --git a/docs/interfaces/_types_.pushercontextvalues.html b/docs/interfaces/_types_.pushercontextvalues.html
deleted file mode 100644
index ddc2873..0000000
--- a/docs/interfaces/_types_.pushercontextvalues.html
+++ /dev/null
@@ -1,359 +0,0 @@
-
-
-
-
-
- PusherContextValues | @harelpls/use-pusher
-
-
-
-
-
-
-
-
- Interface PusherContextValues
-
-
-
-
-
-
-
-
-
- Hierarchy
-
- -
- PusherContextValues
-
-
-
-
- Index
-
-
-
- Properties
-
- -
- client
-
- -
- trigger
Endpoint
-
-
-
-
-
-
-
- Properties
-
-
- Optional client
-
-
-
-
-
- Optional trigger Endpoint
-
-
-
-
-
-
-
-
-
-
- Generated using TypeDoc
-
-
-
-
-
-
diff --git a/docs/interfaces/_types_.pusherproviderprops.html b/docs/interfaces/_types_.pusherproviderprops.html
deleted file mode 100644
index 058dbf1..0000000
--- a/docs/interfaces/_types_.pusherproviderprops.html
+++ /dev/null
@@ -1,1269 +0,0 @@
-
-
-
-
-
- PusherProviderProps | @harelpls/use-pusher
-
-
-
-
-
-
-
-
- Interface PusherProviderProps
-
-
-
-
-
-
-
-
-
- Hierarchy
-
- -
- Options
-
- -
- PusherProviderProps
-
-
-
-
-
-
- Index
-
-
-
- Properties
-
- -
- activity
Timeout
-
- -
- auth
-
- -
- auth
Endpoint
-
- -
- auth
Transport
-
- -
- authorizer
-
- -
- client
Key
-
- -
- cluster
-
- -
- defer
-
- -
- disable
Stats
-
- -
- disabled
Transports
-
- -
- enable
Stats
-
- -
- enabled
Transports
-
- -
- encrypted
-
- -
- forceTLS
-
- -
- http
Host
-
- -
- http
Port
-
- -
- https
Port
-
- -
- ignore
Null Origin
-
- -
- pong
Timeout
-
- -
- stats
Host
-
- -
- timeline
Params
-
- -
- trigger
Endpoint
-
- -
- unavailable_
timeout
-
- -
- value
-
- -
- ws
Host
-
- -
- ws
Path
-
- -
- ws
Port
-
- -
- wss
Port
-
-
-
-
-
-
-
- Properties
-
-
- Optional activity Timeout
-
-
-
-
-
- Optional auth
-
-
-
-
-
- Optional auth Endpoint
-
-
-
-
-
- Optional auth Transport
-
-
-
-
-
- Optional authorizer
-
-
-
-
-
- client Key
-
-
-
-
-
- cluster
-
-
-
-
-
- Optional defer
-
-
-
-
-
- Optional disable Stats
-
-
-
-
-
-
- Optional disabled Transports
-
-
-
-
-
-
- Optional enable Stats
-
-
-
-
-
-
- Optional enabled Transports
-
-
-
-
-
-
- Optional encrypted
-
-
-
-
-
- Optional forceTLS
-
-
-
-
-
- Optional http Host
-
-
-
-
-
- Optional http Port
-
-
-
-
-
- Optional https Port
-
-
-
-
-
-
- Optional
- ignore Null Origin
-
-
-
-
-
-
- Optional pong Timeout
-
-
-
-
-
- Optional stats Host
-
-
-
-
-
- Optional timeline Params
-
-
-
-
-
- Optional trigger Endpoint
-
-
-
-
-
-
- Optional unavailable_ timeout
-
-
-
-
-
-
- Optional value
-
-
-
-
-
- Optional ws Host
-
-
-
-
-
- Optional ws Path
-
-
-
-
-
- Optional ws Port
-
-
-
-
-
- Optional wss Port
-
-
-
-
-
-
-
-
-
-
- Generated using TypeDoc
-
-
-
-
-
-
diff --git a/docs/modules/_mocks_.html b/docs/interfaces/_usepresencechannel_.usepresencechannelvalue.html
similarity index 67%
rename from docs/modules/_mocks_.html
rename to docs/interfaces/_usepresencechannel_.usepresencechannelvalue.html
index 7bbb8b0..4a0ec9b 100644
--- a/docs/modules/_mocks_.html
+++ b/docs/interfaces/_usepresencechannel_.usepresencechannelvalue.html
@@ -3,7 +3,7 @@
- "mocks" | @harelpls/use-pusher
+ usePresenceChannelValue | @harelpls/use-pusher
@@ -56,72 +56,63 @@
Globals
-
- "mocks"
+ "usePresenceChannel"
+
+ -
+ usePresenceChannelValue
- External module "mocks"
+ Interface usePresenceChannelValue
Hook return value
+- Provider that creates your pusher instance and provides it to child hooks - throughout your app. Note, you can pass in value={{}} as a prop if you'd - like to override the pusher client passed. This is handy when simulating - pusher locally, or for testing. -
-Generated using TypeDoc
-Provider that creates your pusher instance and provides it to child hooks throughout your app. + Note, you can pass in value={{}} as a prop if you'd like to override the pusher client passed. + This is handy when simulating pusher locally, or for testing.
+Generated using TypeDoc
+Wrapper around the core PusherProvider that passes in the Pusher react-native lib
+
Initialize PusherChannelMock with callbacks object.
-