)
assertCode(content)
})
+
+ test('binding type for edge cases', () => {
+ const { bindings } = compile(
+ `<script setup lang="ts">
+ import { toRef } from 'vue'
+ const props = defineProps<{foo: string}>()
+ const foo = toRef(() => props.foo)
+ </script>`
+ )
+ expect(bindings).toStrictEqual({
+ toRef: BindingTypes.SETUP_CONST,
+ props: BindingTypes.SETUP_REACTIVE_CONST,
+ foo: BindingTypes.SETUP_REF
+ })
+ })
})
</script>
`)
expect(bindings).toStrictEqual({
- bar: BindingTypes.SETUP_MAYBE_REF,
+ bar: BindingTypes.SETUP_REF,
computed: BindingTypes.SETUP_CONST
})
})
: BindingTypes.SETUP_CONST
} else if (isConst) {
if (
- isCallOf(init, userImportAliases['ref']) ||
- isCallOf(init, DEFINE_MODEL)
+ isCallOf(
+ init,
+ m =>
+ m === userImportAliases['ref'] ||
+ m === userImportAliases['computed'] ||
+ m === userImportAliases['shallowRef'] ||
+ m === userImportAliases['customRef'] ||
+ m === userImportAliases['toRef'] ||
+ m === DEFINE_MODEL
+ )
) {
bindingType = BindingTypes.SETUP_REF
} else {