Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(useWebWoker): return worker #507

Merged
merged 3 commits into from May 13, 2021
Merged

feat(useWebWoker): return worker #507

merged 3 commits into from May 13, 2021

Conversation

wheatjs
Copy link
Member

@wheatjs wheatjs commented May 13, 2021

Closes #381

@@ -55,5 +55,6 @@ export function useWebWorker(
data,
post,
terminate,
worker: worker!,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem here is that the worker is a variable and might changes during the lifecyle. Better to make it a shallowRef internally and expose the ref.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeah I started doing that at first but had some issues with the typing, I'll try to update it to use shallowRef again

@wheatjs
Copy link
Member Author

wheatjs commented May 13, 2021

For the types I'm no sure how to keep it consistent with what it was before, so I created a dummy variable. Let me know if you have a better idea on how we should handle that


const post: typeof worker.postMessage = function post(val: any) {
if (!worker)
const post: typeof _worker.postMessage = function post(val: any) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const post: typeof _worker.postMessage = function post(val: any) {
const post: typeof Worker['postMessage'] = function post(val: any) {

Would this work?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't seem to, gives the following error

Property 'postMessage' does not exist on type '{ new (stringUrl: string | URL, options?: WorkerOptions | undefined): Worker; prototype: Worker; }'

@antfu antfu enabled auto-merge (squash) May 13, 2021 20:32
@antfu antfu merged commit c5cf03a into main May 13, 2021
antfu added a commit that referenced this pull request May 25, 2021
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
antfu added a commit that referenced this pull request Jun 6, 2021
* feat(useTransition): support for vectors (#376)

* refactor(useTransition): cleaning up (#385)

* refactor(useWebWorkerFn): Small doc and type improvements (#382)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* feat: pwa reload prompt

* chore: update docs

* refactor(useWebWorkerFn): Small doc and type improvements (#382)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* chore: update docs

* test: simpilfy tests for useTransition

* chore: fix tests

* feat(useTransition): support for delayed transitions (#386)

* feat(useTransition): support for disabled transitions (#436)

* feat!: introduce `controls` option

* chore: update

* chore: update

* refactor(useRafFn): remove depreacted APIs

* chore: enabled tests for next branch

* fix(useFetch)!: allow setting response type before doing request (#454)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* chore: resolve conflicts

* feat(useMediaControls): expose source types (#495)

* fix(useMediaControls): Removes tracks that have been inserted in html (#493)

* chore: release v4.9.3

* fix(usePermission): tolerate error on FireFox

* fix(useDevicesList): treat as premssion granted after getUserMedia

* chore: release v4.9.4

* chore: fix typo (#502)

* feat(useWebSocket): add immediate option (#503)

* feat(useAxios): bring API into line with useFetch (#499)

* feat(createEventHook): new function (#497)

* chore: release v4.10.0

* fix(useMediaControls): Doesn't rewrite default media properties (#500)

* feat(useMediaControls): add error event (#509)

* feat(useStorage): optimize event handling logic (#505)

* feat(useFetch): add afterFetch option, onFetchResponse, and onFetchError (#506)

* feat(useWebWoker): return worker (#507)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* fix: Change `onMediaError` to `onSourceError` (#510)

* feat(onClickOutside): default to just pointerDown (#508)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
Co-authored-by: sibbng <sibbngheid@gmail.com>

* chore: update docs

* chore: release v4.11.0

* fix(onClickOutside): duplicate code (#519)

Co-authored-by: Nurettin Kaya <sibbngheid@gmail.com>

* feat(createEventHook): added interface (#531)

* feat(createEventHook): added interface

* added types for EventHookOn, EventHookOff, and EventHook trigger

* feat(useStorage): allow custom serializer (#528)

* feat(useStorage): allow custom serializer

* update test

* refactor(useMediaControls): Deprecate options that can simply be set as attributes (#514)

* useMediaControls: Add `volumechange` event listener

* fix: `mute` returned

* feat: Deprecate video options:
* `poster`
* `autoplay`
* `preload`
* `loop`
* `controls`
* `playsinline`
* `autoPictureInPicture`

* fix: Fix deprecated behaviour in demo

* fix: Remove deprecated usage from doc

* refactor: More polite messages

* fix: Remove `console.warn`s

* chore: release v4.11.1

* refactor!: remove deprecated apis

* chore: add next tag

* chore: release v5.0.0-beta.1

* feat: introduce `components` & `directives` (#486)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* docs: re-organize

* chore: fix lint

* docs: about components

* chore: include directives

* chore: release v5.0.0-beta.2

* chore: rollback jest

* chore: fix docs build

* docs: readme for components

* docs: add @vueuse/gesture

* chore: ship indexes.json

* chore: release v5.0.0-beta.3

* feat(typedef): add return typedefs (#543) (#544)

* refactor!: change publish strcture and support submodules, close #469

* chore: cleanup stories.tsx

* docs: update docs about submodules

* chore: fix docs

* chore: release v5.0.0-beta.4

* chore: update lock

* chore: release v5.0.0-beta.5

* chore: update deps and extend publish memory

* refactor: remove `useDeviceLight`

* chore: update

* chore: fix tests

* chore: release v5.0.0-beta.7

* refactor(useWebSocket)!: change immediate default for 5.0.0 (#545)

* feat(useIpcRenderer): new add-one & new functions (#547)

Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>

* chore: update deps

* chore: release v5.0.0-beta.8

* chore: fix docs build

* chore(usePointerSwipe): fix typo (#557)

* fix(useAuth): now reqiures the auth instance, close #538

* chore: update deps

* docs(biSyncRef): fix console output comment (#555)

* docs: removed deprecated value from example (#556)

* docs(guidlines): added guidelines (#535)

* docs: update guidelines

* chore: update guidelines

Co-authored-by: Scott Bedard <scottbedard@users.noreply.github.com>
Co-authored-by: Fabian <donskelle@googlemail.com>
Co-authored-by: Ismail Gjevori <isgjevori@protonmail.com>
Co-authored-by: Alex Kozack <cawa-93@users.noreply.github.com>
Co-authored-by: Shinigami <chrissi92@hotmail.de>
Co-authored-by: wheat <jacobrclevenger@gmail.com>
Co-authored-by: sibbng <sibbngheid@gmail.com>
Co-authored-by: JserWang <jserwang@gmail.com>
Co-authored-by: Pig Fang <g-plane@hotmail.com>
Co-authored-by: ArcherGu <34826812+ArcherGu@users.noreply.github.com>
Co-authored-by: Ilya Komichev <hello@ilko.me>
Co-authored-by: Daiki Ojima <daiking.ca2@gmail.com>
Co-authored-by: Manaus <manaustransez@hotmail.com>
@antfu antfu deleted the feat/useWebWorker branch July 8, 2021 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

useWebWorker: return also the worker
2 participants