@@ -653,6 +653,100 @@ return { }
653
653
}"
654
654
`;
655
655
656
+ exports[`SFC compile <script setup> > defineModel() > basic usage 1`] = `
657
+ "import { useModel as _useModel } from 'vue'
658
+
659
+ export default {
660
+ props: {
661
+ \\"modelValue\\": { required: true },
662
+ \\"count\\": {},
663
+ },
664
+ emits: [\\"update:modelValue\\", \\"update:count\\"],
665
+ setup(__props, { expose: __expose }) {
666
+ __expose();
667
+
668
+ const modelValue = _useModel(__props, \\"modelValue\\")
669
+ const c = _useModel(__props, \\"count\\")
670
+
671
+ return { modelValue, c }
672
+ }
673
+
674
+ }"
675
+ `;
676
+
677
+ exports[`SFC compile <script setup> > defineModel() > w/ array props 1`] = `
678
+ "import { useModel as _useModel, mergeModels as _mergeModels } from 'vue'
679
+
680
+ export default {
681
+ props: _mergeModels(['foo', 'bar'], {
682
+ \\"count\\": {},
683
+ }),
684
+ emits: [\\"update:count\\"],
685
+ setup(__props, { expose: __expose }) {
686
+ __expose();
687
+
688
+
689
+ const count = _useModel(__props, \\"count\\")
690
+
691
+ return { count }
692
+ }
693
+
694
+ }"
695
+ `;
696
+
697
+ exports[`SFC compile <script setup> > defineModel() > w/ defineProps and defineEmits 1`] = `
698
+ "import { useModel as _useModel, mergeModels as _mergeModels } from 'vue'
699
+
700
+ export default {
701
+ props: _mergeModels({ foo: String }, {
702
+ \\"modelValue\\": { default: 0 },
703
+ }),
704
+ emits: _mergeModels(['change'], [\\"update:modelValue\\"]),
705
+ setup(__props, { expose: __expose }) {
706
+ __expose();
707
+
708
+
709
+
710
+ const count = _useModel(__props, \\"modelValue\\")
711
+
712
+ return { count }
713
+ }
714
+
715
+ }"
716
+ `;
717
+
718
+ exports[`SFC compile <script setup> > defineModel() > w/ local flag 1`] = `
719
+ "import { useModel as _useModel } from 'vue'
720
+ const local = true
721
+
722
+ export default {
723
+ props: {
724
+ \\"modelValue\\": { local: true, default: 1 },
725
+ \\"bar\\": { [key]: true },
726
+ \\"baz\\": { ...x },
727
+ \\"qux\\": x,
728
+ \\"foo2\\": { local: true, ...x },
729
+ \\"hoist\\": { local },
730
+ },
731
+ emits: [\\"update:modelValue\\", \\"update:bar\\", \\"update:baz\\", \\"update:qux\\", \\"update:foo2\\", \\"update:hoist\\"],
732
+ setup(__props, { expose: __expose }) {
733
+ __expose();
734
+
735
+ const foo = _useModel(__props, \\"modelValue\\", { local: true })
736
+ const bar = _useModel(__props, \\"bar\\", { [key]: true })
737
+ const baz = _useModel(__props, \\"baz\\", { ...x })
738
+ const qux = _useModel(__props, \\"qux\\", x)
739
+
740
+ const foo2 = _useModel(__props, \\"foo2\\", { local: true })
741
+
742
+ const hoist = _useModel(__props, \\"hoist\\", { local })
743
+
744
+ return { foo, bar, baz, qux, foo2, local, hoist }
745
+ }
746
+
747
+ }"
748
+ `;
749
+
656
750
exports[`SFC compile <script setup> > defineOptions() > basic usage 1`] = `
657
751
"export default /*#__PURE__*/Object.assign({ name: 'FooApp' }, {
658
752
setup(__props, { expose: __expose }) {
@@ -1596,6 +1690,58 @@ return { emit }
1596
1690
})"
1597
1691
`;
1598
1692
1693
+ exports[`SFC compile <script setup> > with TypeScript > defineModel() > basic usage 1`] = `
1694
+ "import { useModel as _useModel, defineComponent as _defineComponent } from 'vue'
1695
+
1696
+ export default /*#__PURE__*/_defineComponent({
1697
+ props: {
1698
+ \\"modelValue\\": { type: [Boolean, String] },
1699
+ \\"count\\": { type: Number },
1700
+ \\"disabled\\": { type: Number, ...{ required: false } },
1701
+ \\"any\\": { type: Boolean, skipCheck: true },
1702
+ },
1703
+ emits: [\\"update:modelValue\\", \\"update:count\\", \\"update:disabled\\", \\"update:any\\"],
1704
+ setup(__props, { expose: __expose }) {
1705
+ __expose();
1706
+
1707
+ const modelValue = _useModel(__props, \\"modelValue\\")
1708
+ const count = _useModel(__props, \\"count\\")
1709
+ const disabled = _useModel(__props, \\"disabled\\")
1710
+ const any = _useModel(__props, \\"any\\")
1711
+
1712
+ return { modelValue, count, disabled, any }
1713
+ }
1714
+
1715
+ })"
1716
+ `;
1717
+
1718
+ exports[`SFC compile <script setup> > with TypeScript > defineModel() > w/ production mode 1`] = `
1719
+ "import { useModel as _useModel, defineComponent as _defineComponent } from 'vue'
1720
+
1721
+ export default /*#__PURE__*/_defineComponent({
1722
+ props: {
1723
+ \\"modelValue\\": { type: Boolean },
1724
+ \\"fn\\": {},
1725
+ \\"fnWithDefault\\": { type: Function, ...{ default: () => null } },
1726
+ \\"str\\": {},
1727
+ \\"optional\\": { required: false },
1728
+ },
1729
+ emits: [\\"update:modelValue\\", \\"update:fn\\", \\"update:fnWithDefault\\", \\"update:str\\", \\"update:optional\\"],
1730
+ setup(__props, { expose: __expose }) {
1731
+ __expose();
1732
+
1733
+ const modelValue = _useModel(__props, \\"modelValue\\")
1734
+ const fn = _useModel(__props, \\"fn\\")
1735
+ const fnWithDefault = _useModel(__props, \\"fnWithDefault\\")
1736
+ const str = _useModel(__props, \\"str\\")
1737
+ const optional = _useModel(__props, \\"optional\\")
1738
+
1739
+ return { modelValue, fn, fnWithDefault, str, optional }
1740
+ }
1741
+
1742
+ })"
1743
+ `;
1744
+
1599
1745
exports[`SFC compile <script setup> > with TypeScript > defineProps w/ TS assertion 1`] = `
1600
1746
"import { defineComponent as _defineComponent } from 'vue'
1601
1747
@@ -1961,7 +2107,7 @@ export default /*#__PURE__*/_defineComponent({
1961
2107
foo: { type: Function },
1962
2108
bar: { type: Boolean },
1963
2109
baz: { type: [Boolean, Function] },
1964
- qux: null
2110
+ qux: {}
1965
2111
}, { ...defaults }),
1966
2112
setup(__props: any, { expose: __expose }) {
1967
2113
__expose();
@@ -2063,7 +2209,7 @@ exports[`SFC compile <script setup> > with TypeScript > withDefaults (static) w/
2063
2209
2064
2210
export default /*#__PURE__*/_defineComponent({
2065
2211
props: {
2066
- foo: null ,
2212
+ foo: {} ,
2067
2213
bar: { type: Boolean },
2068
2214
baz: { type: [Boolean, Function], default: true },
2069
2215
qux: { default: 'hi' }
0 commit comments