Skip to content

Commit b17e3fe

Browse files
authored
fix: use-request plugin type
fix: use-request plugin type
2 parents f01235e + 67eea9d commit b17e3fe

File tree

9 files changed

+141
-118
lines changed

9 files changed

+141
-118
lines changed

.eslintrc.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ module.exports = {
3535
'no-inner-declarations': 0,
3636
'@typescript-eslint/indent': 0,
3737
'no-constant-condition': 0,
38+
'@typescript-eslint/explicit-function-return-type': 'off',
3839
'@typescript-eslint/no-empty-function': 0,
3940
'@typescript-eslint/explicit-member-accessibility': [2, { accessibility: 'no-public' }],
4041
'@typescript-eslint/no-non-null-assertion': 0,
41-
'@typescript-eslint/explicit-function-return-type': [1, { allowExpressions: true }],
42+
// '@typescript-eslint/explicit-function-return-type': [2, { allowExpressions: true }],
4243
'@typescript-eslint/no-use-before-define': [2, { functions: false }],
4344
'@typescript-eslint/no-namespace': 0,
4445
'@typescript-eslint/ban-ts-ignore': 0,

packages/hooks/docs/.vitepress/config.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ export default defineConfig({
2929
href: svg,
3030
},
3131
],
32+
[
33+
'meta',
34+
{
35+
name: 'viewport',
36+
content: 'width=device-width,height=device-height, maximum-scale=1.0,minimum-scale=1.0',
37+
},
38+
],
3239
],
3340
description: 'High-quality & Reliable 🧲 Vue3 Hooks library',
3441
base,
@@ -53,6 +60,7 @@ export default defineConfig({
5360
apiKey: '268129e44d6b58950b4626bf86e8bd1e',
5461
indexName: 'vue-hooks-plus-search',
5562
},
63+
// @ts-ignore
5664
localeLinks: {
5765
text: '',
5866
items: [
@@ -132,7 +140,7 @@ export default defineConfig({
132140
},
133141
{
134142
icon: 'discord',
135-
link: 'https://discord.gg/RU6ZPjf8',
143+
link: 'https://discord.gg/z5Ve5r9Kwp',
136144
},
137145
{
138146
icon: 'twitter',

packages/hooks/src/useAsyncOrder/demo/demo.vue

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -8,66 +8,66 @@
88
</template>
99

1010
<script lang="ts" setup>
11-
import { ref } from 'vue'
12-
import { useAsyncOrder } from 'vue-hooks-plus'
11+
import { ref } from 'vue'
12+
import { useAsyncOrder } from 'vue-hooks-plus'
1313
14-
const error = ref<number>(0)
15-
const list = ref<string[]>([])
14+
const error = ref<number>(0)
15+
const list = ref<string[]>([])
1616
17-
function getUsername(): Promise<string> {
18-
return new Promise((resolve, reject) => {
19-
setTimeout(() => {
20-
resolve('No.1')
21-
}, 3000)
22-
})
23-
}
17+
function getUsername(): Promise<string> {
18+
return new Promise((resolve, reject) => {
19+
setTimeout(() => {
20+
resolve('No.1')
21+
}, 3000)
22+
})
23+
}
2424
25-
function getUsername2(): Promise<string> {
26-
return new Promise((resolve, reject) => {
27-
setTimeout(() => {
28-
resolve('No.2')
29-
}, 2000)
30-
})
31-
}
25+
function getUsername2(): Promise<string> {
26+
return new Promise((resolve, reject) => {
27+
setTimeout(() => {
28+
resolve('No.2')
29+
}, 2000)
30+
})
31+
}
3232
33-
function getUsername3(): Promise<string> {
34-
return new Promise((resolve, reject) => {
35-
setTimeout(() => {
36-
resolve('No.3')
37-
}, 2000)
38-
})
39-
}
33+
function getUsername3(): Promise<string> {
34+
return new Promise((resolve, reject) => {
35+
setTimeout(() => {
36+
resolve('No.3')
37+
}, 2000)
38+
})
39+
}
4040
41-
useAsyncOrder({
42-
task: [
43-
resolve => {
44-
getUsername().then(res => {
45-
resolve?.(res)
46-
})
47-
},
48-
resolve => {
49-
getUsername2().then(res => {
50-
resolve?.(res)
51-
})
52-
},
53-
(_, reject) => {
54-
getUsername2().then(() => {
55-
reject?.({ err: 'error' })
56-
})
57-
},
58-
(_, reject) => {
59-
getUsername3().then(() => {
60-
reject?.({ error: 'error' })
61-
})
62-
},
63-
],
64-
option: {
65-
onError: err => {
66-
error.value += 1
67-
},
68-
onSuccess: res => {
69-
list.value.push(res as string)
70-
},
41+
useAsyncOrder({
42+
task: [
43+
resolve => {
44+
getUsername().then(res => {
45+
resolve?.(res)
46+
})
7147
},
72-
})
48+
resolve => {
49+
getUsername2().then(res => {
50+
resolve?.(res)
51+
})
52+
},
53+
(_, reject) => {
54+
getUsername2().then(() => {
55+
reject?.({ err: 'error' })
56+
})
57+
},
58+
(_, reject) => {
59+
getUsername3().then(() => {
60+
reject?.({ error: 'error' })
61+
})
62+
},
63+
],
64+
option: {
65+
onError: err => {
66+
error.value += 1
67+
},
68+
onSuccess: res => {
69+
list.value.push(res as string)
70+
},
71+
},
72+
})
7373
</script>

packages/hooks/src/useRequest/docs/basic/demo/demo.vue

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
</template>
55

66
<script lang="ts" setup>
7-
import { useRequest } from 'vue-hooks-plus'
7+
import { useRequest } from 'vue-hooks-plus'
88
9-
function getUsername(params: { desc: string }): Promise<string> {
10-
return new Promise(resolve => {
11-
setTimeout(() => {
12-
resolve(`vue-hooks-plus ${params.desc}`)
13-
}, 1000)
14-
})
15-
}
9+
function getUsername(params: { desc: string }): Promise<string> {
10+
return new Promise(resolve => {
11+
setTimeout(() => {
12+
resolve(`vue-hooks-plus ${params.desc}`)
13+
}, 1000)
14+
})
15+
}
1616
17-
const { data, loading } = useRequest(() => getUsername({ desc: 'good' }))
17+
const { data, loading } = useRequest(() => getUsername({ desc: 'good' }))
1818
</script>

packages/hooks/src/useRequest/docs/pluginDoc/demo/demo.vue

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,56 @@
44
</template>
55

66
<script lang="ts" setup>
7-
import { useRequest } from 'vue-hooks-plus'
7+
import { useRequest } from 'vue-hooks-plus'
88
9-
import { UseRequestPlugin } from '../../../types'
9+
import { UseRequestPlugin } from '../../../types'
1010
11-
interface FormatterDataType {
12-
name: string
13-
age: number
14-
}
11+
interface FormatterDataType {
12+
name: string
13+
age: number
14+
}
1515
16-
interface Formatter {
17-
(data?: FormatterDataType): { name: string; age: number }
18-
}
16+
interface CustomPluginFieldType {
17+
formatter: (data?: FormatterDataType) => { name: string; age: number }
18+
}
1919
20-
const useFormatterPlugin: UseRequestPlugin<
21-
FormatterDataType,
22-
[],
23-
{
24-
formatter: Formatter
25-
}
26-
> = (fetchInstance, { formatter }) => {
27-
return {
28-
onSuccess: () => {
29-
fetchInstance.setFetchState(formatter?.(fetchInstance.state.data), 'data')
30-
},
31-
}
20+
const useFormatterPlugin: UseRequestPlugin<
21+
FormatterDataType,
22+
[],
23+
{
24+
formatter: CustomPluginFieldType['formatter']
3225
}
33-
34-
function getUsername(): Promise<{ name: string; age: number }> {
35-
return new Promise(resolve => {
36-
setTimeout(() => {
37-
resolve({
38-
name: 'vue-hooks-plus',
39-
age: 18,
40-
})
41-
}, 1000)
42-
})
26+
> = (fetchInstance, { formatter }) => {
27+
return {
28+
onSuccess: () => {
29+
fetchInstance.setFetchState(formatter?.(fetchInstance.state.data), 'data')
30+
},
4331
}
32+
}
33+
34+
function getUsername(): Promise<{ name: string; age: number }> {
35+
return new Promise(resolve => {
36+
setTimeout(() => {
37+
resolve({
38+
name: 'vue-hooks-plus',
39+
age: 18,
40+
})
41+
}, 1000)
42+
})
43+
}
44+
45+
4446
45-
const { data, loading } = useRequest(
46-
() => getUsername(),
47-
{
48-
formatter: (params?: FormatterDataType) => {
49-
return {
50-
name: `${params?.name} - plugins update`,
51-
age: 20,
52-
}
53-
},
47+
const { data, loading } = useRequest(
48+
() => getUsername(),
49+
{
50+
formatter: (params?: FormatterDataType) => {
51+
return {
52+
name: `${params?.name} - plugins update`,
53+
age: 20
54+
}
5455
},
55-
[useFormatterPlugin],
56-
)
56+
},
57+
[useFormatterPlugin],
58+
)
5759
</script>

packages/hooks/src/useRequest/useRequest.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ function useRequest<
2323
PluginsOptions extends (infer P)[]
2424
? P extends UseRequestPlugin<TData, TParams, infer R>
2525
? R
26-
: any
27-
: any
26+
: never
27+
: never
2828
>,
2929
plugins?: PluginsOptions,
3030
) {

packages/hooks/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"types": ["node", "vitest", "vitest/globals"],
99
"paths": {
1010
"@/*": ["src/*"],
11-
"vue-hooks-plus": ["src/index.ts"],
11+
"vue-hooks-plus": ["./src/index.ts"],
1212
"test-utils/*": ["test-utils/*"]
1313
}
1414
},

packages/use-request/src/useRequest.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ function useRequest<
2323
PluginsOptions extends (infer P)[]
2424
? P extends UseRequestPlugin<TData, TParams, infer R>
2525
? R
26-
: any
27-
: any
26+
: never
27+
: never
2828
>,
2929
plugins?: PluginsOptions,
3030
) {

packages/use-request/src/useRequestImplement.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
import { ref, reactive, toRefs, onUnmounted, inject, UnwrapRef, watchEffect, computed, isRef, onMounted, unref } from 'vue'
1+
import {
2+
ref,
3+
reactive,
4+
toRefs,
5+
onUnmounted,
6+
inject,
7+
UnwrapRef,
8+
watchEffect,
9+
computed,
10+
isRef,
11+
onMounted,
12+
unref,
13+
} from 'vue'
214

315
import Fetch from './Fetch'
416
import { USEREQUEST_GLOBAL_OPTIONS_PROVIDE_KEY } from './config'
@@ -28,7 +40,7 @@ function useRequestImplement<TData, TParams extends any[]>(
2840
service: UseRequestService<TData, TParams>,
2941
options: UseRequestOptions<TData, TParams, any> = {},
3042
plugins: UseRequestPlugin<TData, TParams>[] = [],
31-
) {
43+
): useRequestResult<TData, TParams> {
3244
// global option
3345
const USEREQUEST_GLOBAL_OPTIONS = inject<Record<string, any>>(
3446
USEREQUEST_GLOBAL_OPTIONS_PROVIDE_KEY,
@@ -57,7 +69,7 @@ function useRequestImplement<TData, TParams extends any[]>(
5769
error: undefined,
5870
})
5971

60-
const setState = (currentState: unknown, field?: keyof typeof state) => {
72+
const setState = (currentState: unknown, field?: keyof typeof state): void => {
6173
if (field) {
6274
// if (isUseRequestFetchStateKey<UnwrapRef<TData>, UnwrapRef<TParams>>(field, currentState)) {
6375
// state[field] = currentState as any
@@ -89,7 +101,7 @@ function useRequestImplement<TData, TParams extends any[]>(
89101
return p(fetchInstance, fetchOptions)
90102
})
91103

92-
const readyComputed = computed(() => isRef(ready) ? ready.value : ready)
104+
const readyComputed = computed(() => (isRef(ready) ? ready.value : ready))
93105

94106
// const isMount = ref(false)
95107

0 commit comments

Comments
 (0)