8000 release: vue-class-setup@1.2.8 · dp-os/vue-class-setup@dfbcd42 · GitHub
[go: up one dir, main page]

Skip to content

Commit dfbcd42

Browse files
committed
release: vue-class-setup@1.2.8
1 parent ee46c32 commit dfbcd42

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.2.8
2+
3+
- fix: `$vm` return Vue instance on Vue2
4+
15
## 1.2.7
26

37
- chore: Update keywords

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-class-setup",
3-
"version": "1.2.7",
3+
"version": "1.2.8",
44
"main": "dist/index.cjs.js",
55
"module": "dist/index.es.js",
66
"types": "dist/index.d.ts",

src/vue.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,19 @@ import { getCurrentInstance as get, version } from 'vue';
33
export const isVue2 = /^2\./.test(version);
44
export const isVue3 = /^3\./.test(version);
55

6-
export function getCurrentInstance() {
6+
export function getCurrentInstance(): VueInstance {
77
const vm = get();
8-
return vm && vm.proxy;
8+
if (vm && vm.proxy) {
9+
return vm.proxy as VueInstance;
10+
}
11+
throw new Error(`'getCurrentInstance' use in setup`);
912
}
1013

11-
export type VueInstance = NonNullable<ReturnType<typeof getCurrentInstance>>;
14+
type Instance = NonNullable<NonNullable<ReturnType<typeof get>>['proxy']>;
15+
16+
type VueModule = typeof import('vue');
17+
type Vue = VueModule extends { default: unknown }
18+
? VueModule['default']
19+
: never;
20+
21+
export type VueInstance = Vue extends never ? Instance : InstanceType<Vue>;

0 commit comments

Comments
 (0)
0