refUtils.ts 709 B

123456789101112131415161718192021222324252627
  1. import type { UnwrapRef } from 'vue'
  2. import { ref, isRef } from 'vue'
  3. export default class RefUtils {
  4. /**
  5. * Convertit la valeur du filtre en référence. S'il s'agit déjà d'une ref,
  6. * selon que `maintainReactivity` est vrai ou faux, on conserve la référence existante
  7. * ou bien on la recréé pour briser la réactivité.
  8. *
  9. * @param value
  10. * @param maintainReactivity
  11. */
  12. static castToRef<T>(
  13. value: T | Ref<T>,
  14. maintainReactivity: boolean = true,
  15. ): Ref<T> | Ref<UnwrapRef<T>> {
  16. if (isRef(value)) {
  17. if (maintainReactivity) {
  18. return value
  19. } else {
  20. return ref(value.value as T)
  21. }
  22. } else {
  23. return ref(value as T)
  24. }
  25. }
  26. }