[feature request] `use` function for supplies
- Vorherrschende Sprache
- JavaScript
- Sterne
- 159
- Forks
- 16
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### What problem does this feature solve?
Using `use` function to create mixin from supply definition is fine for components but it is not implemented to be used inside supplies. Sometimes there is a need for a resource that contains other resources. That's why I suggest adding the `use` method equivalent for in supply use.
Mixin created with `use` functions cause `grasp` call inside component's `created` hook, while inside supply the proper behaviour would be to call `grasp` on `active` state change (analogously for `release`).
### What does the proposed API look like?
It could be a separate function or an additional flag for the `use` function.
Below I put an example helper that I created. Due to the fact that there is no access to registered supplies definitions and it is just simple proof-of-concept it accepts only supply definition as an argument. Another problem of this simple function is the lack of access to supplyCache (in my proof of concept it is imported).
```js
import { supplyCache } from '@/supplies/cache'
export function include (supplyDef) {
let name = ''
const options = {
created () {
const resource = getResource(supplyDef, supplyCache)
name = supplyDef.name
if (!this.$supply) this.$supply = {}
this.$supply[name] = resource
},
watch: {
active (val, oldVal) {
if (!this.$supply[name]) return
if (val && !oldVal) {
this.$supply[name].grasp()
} else if (!val && oldVal) {
this.$supply[name].release()
}
}
}
}
return options
}
```
I am ready to prepare a better, more complete implementation. Cheers!
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.