@flowlist/js-core 1.7.5 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -1
- package/dist/js-core.es.js +582 -1
- package/dist/js-core.umd.js +1 -1
- package/package.json +17 -16
- package/src/actions.ts +20 -48
- package/src/setters.ts +24 -38
- package/src/types.ts +2 -23
- package/src/utils.ts +9 -4
- package/dist/src/actions.d.ts +0 -5
- package/dist/src/enum.d.ts +0 -32
- package/dist/src/index.d.ts +0 -4
- package/dist/src/setters.d.ts +0 -3
- package/dist/src/types.d.ts +0 -118
- package/dist/src/utils.d.ts +0 -58
- package/dist/tests/unit/api.d.ts +0 -68
- package/dist/tests/unit/env.d.ts +0 -20
- package/dist/tests/unit/item-factory.d.ts +0 -23
- package/src/index.ts +0 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowlist/js-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "dist/js-core.umd.js",
|
|
5
5
|
"module": "dist/js-core.es.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -31,25 +31,26 @@
|
|
|
31
31
|
"lint": "eslint --ext js,jsx,ts,tsx,vue . --fix"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "^4.18.0",
|
|
35
|
-
"@typescript-eslint/parser": "^4.18.0",
|
|
36
|
-
"@vue/eslint-config-prettier": "^6.0.0",
|
|
37
|
-
"@vue/eslint-config-typescript": "^7.0.0",
|
|
38
|
-
"eslint": "^6.7.2",
|
|
39
|
-
"eslint-plugin-prettier": "^3.3.1",
|
|
40
|
-
"eslint-plugin-vue": "^7.0.0",
|
|
41
34
|
"@babel/preset-env": "^7.14.7",
|
|
42
35
|
"@babel/preset-typescript": "^7.14.5",
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"
|
|
36
|
+
"@faker-js/faker": "^6.1.2",
|
|
37
|
+
"@types/jest": "^27.4.1",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
|
39
|
+
"@typescript-eslint/parser": "^5.19.0",
|
|
40
|
+
"@vue/cli-plugin-unit-jest": "~5.0.4",
|
|
41
|
+
"@vue/cli-service": "~5.0.4",
|
|
42
|
+
"@vue/eslint-config-prettier": "^7.0.0",
|
|
43
|
+
"@vue/eslint-config-typescript": "^10.0.0",
|
|
44
|
+
"@vue/test-utils": "^2.0.0-rc.19",
|
|
45
|
+
"eslint": "^8.13.0",
|
|
46
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
47
|
+
"eslint-plugin-vue": "^8.6.0",
|
|
48
48
|
"jest-localstorage-mock": "^2.4.8",
|
|
49
|
-
"ts-babel": "^6.1.7",
|
|
50
49
|
"prettier": "^2.3.2",
|
|
51
|
-
"
|
|
50
|
+
"ts-babel": "^6.1.7",
|
|
51
|
+
"ts-jest": "^27.1.4",
|
|
52
|
+
"typescript": "^4.6.3",
|
|
52
53
|
"vite": "^2.3.8",
|
|
53
|
-
"vite-plugin-dts": "^0.5
|
|
54
|
+
"vite-plugin-dts": "^1.0.5"
|
|
54
55
|
}
|
|
55
56
|
}
|
package/src/actions.ts
CHANGED
|
@@ -25,8 +25,8 @@ export const initState = ({
|
|
|
25
25
|
setter,
|
|
26
26
|
func,
|
|
27
27
|
type,
|
|
28
|
-
query
|
|
29
|
-
opts
|
|
28
|
+
query,
|
|
29
|
+
opts
|
|
30
30
|
}: initStateType): Promise<null> => {
|
|
31
31
|
return new Promise((resolve) => {
|
|
32
32
|
const fieldName = generateFieldName({ func, type, query })
|
|
@@ -50,20 +50,18 @@ export const initState = ({
|
|
|
50
50
|
export const initData = ({
|
|
51
51
|
getter,
|
|
52
52
|
setter,
|
|
53
|
-
cache,
|
|
54
53
|
func,
|
|
55
54
|
type,
|
|
56
|
-
query
|
|
55
|
+
query,
|
|
57
56
|
api,
|
|
58
|
-
cacheTimeout,
|
|
59
57
|
uniqueKey,
|
|
60
58
|
callback
|
|
61
59
|
}: initDataType): Promise<any> =>
|
|
62
60
|
new Promise((resolve, reject) => {
|
|
63
61
|
const fieldName = generateFieldName({ func, type, query })
|
|
64
62
|
const fieldData = getter(fieldName)
|
|
65
|
-
const doRefresh = !!query
|
|
66
|
-
const needReset = !!query
|
|
63
|
+
const doRefresh = !!query?.__refresh__
|
|
64
|
+
const needReset = !!query?.__reload__
|
|
67
65
|
// 如果 error 了,就不再请求
|
|
68
66
|
if (fieldData && fieldData.error && !doRefresh) {
|
|
69
67
|
return resolve(null)
|
|
@@ -87,7 +85,6 @@ export const initData = ({
|
|
|
87
85
|
query,
|
|
88
86
|
type
|
|
89
87
|
})
|
|
90
|
-
let fromLocal = false
|
|
91
88
|
|
|
92
89
|
const getData = () => {
|
|
93
90
|
const loadData = () =>
|
|
@@ -103,19 +100,7 @@ export const initData = ({
|
|
|
103
100
|
})
|
|
104
101
|
}
|
|
105
102
|
|
|
106
|
-
|
|
107
|
-
cache
|
|
108
|
-
.get({ key: fieldName })
|
|
109
|
-
.then((data) => {
|
|
110
|
-
fromLocal = true
|
|
111
|
-
res(data)
|
|
112
|
-
})
|
|
113
|
-
.catch(() => {
|
|
114
|
-
getDataFromAPI()
|
|
115
|
-
})
|
|
116
|
-
} else {
|
|
117
|
-
getDataFromAPI()
|
|
118
|
-
}
|
|
103
|
+
getDataFromAPI()
|
|
119
104
|
})
|
|
120
105
|
|
|
121
106
|
loadData().then((data) => {
|
|
@@ -123,12 +108,9 @@ export const initData = ({
|
|
|
123
108
|
SET_DATA({
|
|
124
109
|
getter,
|
|
125
110
|
setter,
|
|
126
|
-
cache,
|
|
127
111
|
data,
|
|
128
112
|
fieldName,
|
|
129
113
|
type,
|
|
130
|
-
fromLocal,
|
|
131
|
-
cacheTimeout,
|
|
132
114
|
page: params.page || 0,
|
|
133
115
|
insertBefore: false
|
|
134
116
|
}).then(() => {
|
|
@@ -177,12 +159,10 @@ export const initData = ({
|
|
|
177
159
|
export const loadMore = ({
|
|
178
160
|
getter,
|
|
179
161
|
setter,
|
|
180
|
-
|
|
181
|
-
query = {},
|
|
162
|
+
query,
|
|
182
163
|
type,
|
|
183
164
|
func,
|
|
184
165
|
api,
|
|
185
|
-
cacheTimeout,
|
|
186
166
|
uniqueKey,
|
|
187
167
|
errorRetry,
|
|
188
168
|
callback
|
|
@@ -207,7 +187,11 @@ export const loadMore = ({
|
|
|
207
187
|
return resolve(null)
|
|
208
188
|
}
|
|
209
189
|
|
|
210
|
-
if (
|
|
190
|
+
if (
|
|
191
|
+
type === ENUM.FETCH_TYPE.PAGINATION &&
|
|
192
|
+
query &&
|
|
193
|
+
+query.page === fieldData.page
|
|
194
|
+
) {
|
|
211
195
|
return resolve(null)
|
|
212
196
|
}
|
|
213
197
|
|
|
@@ -245,14 +229,11 @@ export const loadMore = ({
|
|
|
245
229
|
SET_DATA({
|
|
246
230
|
getter,
|
|
247
231
|
setter,
|
|
248
|
-
cache,
|
|
249
232
|
data,
|
|
250
233
|
fieldName,
|
|
251
234
|
type,
|
|
252
|
-
fromLocal: false,
|
|
253
|
-
cacheTimeout,
|
|
254
235
|
page: params.page || 0,
|
|
255
|
-
insertBefore: !!query
|
|
236
|
+
insertBefore: !!query?.is_up
|
|
256
237
|
}).then(() => {
|
|
257
238
|
if (callback) {
|
|
258
239
|
callback({
|
|
@@ -281,16 +262,14 @@ export const loadMore = ({
|
|
|
281
262
|
export const updateState = ({
|
|
282
263
|
getter,
|
|
283
264
|
setter,
|
|
284
|
-
cache,
|
|
285
265
|
type,
|
|
286
266
|
func,
|
|
287
|
-
query
|
|
267
|
+
query,
|
|
288
268
|
method,
|
|
289
269
|
value,
|
|
290
270
|
id,
|
|
291
271
|
uniqueKey,
|
|
292
|
-
changeKey
|
|
293
|
-
cacheTimeout
|
|
272
|
+
changeKey
|
|
294
273
|
}: updateStateType) => {
|
|
295
274
|
return new Promise((resolve, reject) => {
|
|
296
275
|
const fieldName = generateFieldName({ func, type, query })
|
|
@@ -300,6 +279,11 @@ export const updateState = ({
|
|
|
300
279
|
return
|
|
301
280
|
}
|
|
302
281
|
|
|
282
|
+
if (fieldData.page === -1) {
|
|
283
|
+
resolve(null)
|
|
284
|
+
return
|
|
285
|
+
}
|
|
286
|
+
|
|
303
287
|
const _id = id || ''
|
|
304
288
|
const _uniqueKey = uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME
|
|
305
289
|
const _changeKey = changeKey || ENUM.FIELD_DATA.RESULT_KEY
|
|
@@ -397,18 +381,6 @@ export const updateState = ({
|
|
|
397
381
|
type: ENUM.SETTER_TYPE.MERGE,
|
|
398
382
|
value: fieldData,
|
|
399
383
|
callback: () => {
|
|
400
|
-
if (cacheTimeout && cache) {
|
|
401
|
-
cache
|
|
402
|
-
.set({
|
|
403
|
-
key: fieldName,
|
|
404
|
-
value: fieldData,
|
|
405
|
-
timeout: cacheTimeout
|
|
406
|
-
})
|
|
407
|
-
.then(resolve)
|
|
408
|
-
.catch(resolve)
|
|
409
|
-
return
|
|
410
|
-
}
|
|
411
|
-
|
|
412
384
|
resolve(null)
|
|
413
385
|
}
|
|
414
386
|
})
|
package/src/setters.ts
CHANGED
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
import { computeResultLength, setReactivityField } from './utils'
|
|
1
|
+
import { computeResultLength, setReactivityField, isObjectResult } from './utils'
|
|
2
2
|
import ENUM from './enum'
|
|
3
3
|
import type { setDataType, setErrorType } from './types'
|
|
4
4
|
|
|
5
5
|
export const SET_DATA = ({
|
|
6
6
|
getter,
|
|
7
7
|
setter,
|
|
8
|
-
cache,
|
|
9
8
|
data,
|
|
10
9
|
fieldName,
|
|
11
10
|
type,
|
|
12
|
-
fromLocal,
|
|
13
|
-
cacheTimeout,
|
|
14
11
|
page,
|
|
15
12
|
insertBefore
|
|
16
13
|
}: setDataType): Promise<any> => {
|
|
17
14
|
return new Promise((resolve, reject) => {
|
|
18
|
-
if (fromLocal) {
|
|
19
|
-
setter({
|
|
20
|
-
key: fieldName,
|
|
21
|
-
type: ENUM.SETTER_TYPE.RESET,
|
|
22
|
-
value: data,
|
|
23
|
-
callback: () => {
|
|
24
|
-
resolve(null)
|
|
25
|
-
}
|
|
26
|
-
})
|
|
27
|
-
return
|
|
28
|
-
}
|
|
29
|
-
|
|
30
15
|
const fieldData = getter(fieldName)
|
|
31
16
|
if (!fieldData) {
|
|
32
17
|
reject()
|
|
33
18
|
return
|
|
34
19
|
}
|
|
35
20
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
fieldData.
|
|
43
|
-
fieldData.
|
|
21
|
+
let result
|
|
22
|
+
let extra
|
|
23
|
+
|
|
24
|
+
if (isObjectResult(data)) {
|
|
25
|
+
result = data
|
|
26
|
+
fieldData.nothing = false
|
|
27
|
+
fieldData.fetched = true
|
|
28
|
+
fieldData.noMore = true
|
|
29
|
+
fieldData.page = -1
|
|
44
30
|
} else {
|
|
45
|
-
|
|
46
|
-
|
|
31
|
+
result = data.result
|
|
32
|
+
extra = data.extra
|
|
33
|
+
const isEmpty = computeResultLength(result) === 0
|
|
34
|
+
fieldData.nothing = fieldData.fetched ? false : isEmpty
|
|
35
|
+
fieldData.fetched = true
|
|
36
|
+
fieldData.total = data.total || 0
|
|
37
|
+
if (type === ENUM.FETCH_TYPE.PAGINATION) {
|
|
38
|
+
fieldData.noMore = false
|
|
39
|
+
fieldData.page = +page
|
|
40
|
+
} else {
|
|
41
|
+
fieldData.noMore = data.no_more || isEmpty
|
|
42
|
+
fieldData.page = fieldData.page + 1
|
|
43
|
+
}
|
|
47
44
|
}
|
|
45
|
+
|
|
48
46
|
fieldData.loading = false
|
|
49
47
|
setReactivityField(
|
|
50
48
|
fieldData,
|
|
@@ -68,18 +66,6 @@ export const SET_DATA = ({
|
|
|
68
66
|
type: ENUM.SETTER_TYPE.RESET,
|
|
69
67
|
value: fieldData,
|
|
70
68
|
callback: () => {
|
|
71
|
-
if (cacheTimeout && cache && !fieldData.nothing) {
|
|
72
|
-
cache
|
|
73
|
-
.set({
|
|
74
|
-
key: fieldName,
|
|
75
|
-
value: fieldData,
|
|
76
|
-
timeout: cacheTimeout
|
|
77
|
-
})
|
|
78
|
-
.then(resolve)
|
|
79
|
-
.catch(resolve)
|
|
80
|
-
return
|
|
81
|
-
}
|
|
82
|
-
|
|
83
69
|
resolve(null)
|
|
84
70
|
}
|
|
85
71
|
})
|
package/src/types.ts
CHANGED
|
@@ -33,13 +33,13 @@ export type fieldKeys =
|
|
|
33
33
|
export type generateFieldProps = {
|
|
34
34
|
func: string | (() => {})
|
|
35
35
|
type: fetchTypes
|
|
36
|
-
query
|
|
36
|
+
query?: keyMap
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export type generateParamsType = {
|
|
40
40
|
field: defaultField
|
|
41
41
|
uniqueKey: string
|
|
42
|
-
query
|
|
42
|
+
query?: keyMap
|
|
43
43
|
type: fetchTypes
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -66,24 +66,9 @@ export type initStateType = {
|
|
|
66
66
|
opts?: keyMap
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export type cacheType = {
|
|
70
|
-
get: ({ key }: { key: string }) => Promise<any>
|
|
71
|
-
set: ({
|
|
72
|
-
key,
|
|
73
|
-
value,
|
|
74
|
-
timeout
|
|
75
|
-
}: {
|
|
76
|
-
key: string
|
|
77
|
-
value: any
|
|
78
|
-
timeout?: number
|
|
79
|
-
}) => Promise<any>
|
|
80
|
-
del: ({ key }: { key: string }) => void
|
|
81
|
-
}
|
|
82
|
-
|
|
83
69
|
export type initDataType = {
|
|
84
70
|
getter: (str: string) => defaultField
|
|
85
71
|
setter: (obj: setterFuncParams) => void
|
|
86
|
-
cache: cacheType
|
|
87
72
|
func: string | (() => {})
|
|
88
73
|
type: fetchTypes
|
|
89
74
|
query?: keyMap
|
|
@@ -96,7 +81,6 @@ export type initDataType = {
|
|
|
96
81
|
export type loadMoreType = {
|
|
97
82
|
getter: (str: string) => defaultField
|
|
98
83
|
setter: (obj: setterFuncParams) => void
|
|
99
|
-
cache: cacheType
|
|
100
84
|
func: string | (() => {})
|
|
101
85
|
type: fetchTypes
|
|
102
86
|
query?: keyMap
|
|
@@ -110,7 +94,6 @@ export type loadMoreType = {
|
|
|
110
94
|
export type updateStateType = {
|
|
111
95
|
getter: (str: string) => defaultField
|
|
112
96
|
setter: (obj: setterFuncParams) => void
|
|
113
|
-
cache: cacheType
|
|
114
97
|
func: string | (() => {})
|
|
115
98
|
type: fetchTypes
|
|
116
99
|
query?: keyMap
|
|
@@ -120,18 +103,14 @@ export type updateStateType = {
|
|
|
120
103
|
changeKey: string
|
|
121
104
|
cacheTimeout: number
|
|
122
105
|
uniqueKey: string
|
|
123
|
-
callback: (obj?: keyMap) => void
|
|
124
106
|
}
|
|
125
107
|
|
|
126
108
|
export type setDataType = {
|
|
127
109
|
getter: (str: string) => defaultField
|
|
128
110
|
setter: (obj: setterFuncParams) => void
|
|
129
|
-
cache: cacheType
|
|
130
111
|
data: any
|
|
131
112
|
fieldName: string
|
|
132
113
|
type: fetchTypes
|
|
133
|
-
fromLocal: boolean
|
|
134
|
-
cacheTimeout: number
|
|
135
114
|
page: number
|
|
136
115
|
insertBefore: boolean
|
|
137
116
|
}
|
package/src/utils.ts
CHANGED
|
@@ -12,6 +12,10 @@ import type {
|
|
|
12
12
|
generateParamsResp
|
|
13
13
|
} from './types'
|
|
14
14
|
|
|
15
|
+
export const isObjectResult = (data: Record<string, any>): boolean => {
|
|
16
|
+
return data.result === undefined
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
export const generateDefaultField = (opts = {}): defaultField => ({
|
|
16
20
|
...{
|
|
17
21
|
result: [],
|
|
@@ -27,7 +31,6 @@ export const generateDefaultField = (opts = {}): defaultField => ({
|
|
|
27
31
|
...opts
|
|
28
32
|
})
|
|
29
33
|
|
|
30
|
-
let seed = 0
|
|
31
34
|
/**
|
|
32
35
|
* 根据参数生成 field 的 namespace
|
|
33
36
|
* @param {string} func
|
|
@@ -40,7 +43,10 @@ export const generateFieldName = ({
|
|
|
40
43
|
type,
|
|
41
44
|
query = {}
|
|
42
45
|
}: generateFieldProps): string => {
|
|
43
|
-
func =
|
|
46
|
+
func =
|
|
47
|
+
typeof func === 'string'
|
|
48
|
+
? func
|
|
49
|
+
: `api-${Math.random().toString(36).substring(2)}`
|
|
44
50
|
type = type || 'auto'
|
|
45
51
|
let result = `${func}-${type}`
|
|
46
52
|
Object.keys(query)
|
|
@@ -263,11 +269,10 @@ export const computeResultLength = (data: fieldResult): number => {
|
|
|
263
269
|
export const generateRequestParams = ({
|
|
264
270
|
field,
|
|
265
271
|
uniqueKey,
|
|
266
|
-
query,
|
|
272
|
+
query = {},
|
|
267
273
|
type
|
|
268
274
|
}: generateParamsType): generateParamsResp => {
|
|
269
275
|
const result: generateParamsResp = {}
|
|
270
|
-
query = query || {}
|
|
271
276
|
if (field.fetched) {
|
|
272
277
|
const changing = uniqueKey || ENUM.DEFAULT_UNIQUE_KEY_NAME
|
|
273
278
|
if (type === ENUM.FETCH_TYPE.AUTO) {
|
package/dist/src/actions.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { initStateType, initDataType, loadMoreType, updateStateType } from './types';
|
|
2
|
-
export declare const initState: ({ getter, setter, func, type, query, opts }: initStateType) => Promise<null>;
|
|
3
|
-
export declare const initData: ({ getter, setter, cache, func, type, query, api, cacheTimeout, uniqueKey, callback }: initDataType) => Promise<any>;
|
|
4
|
-
export declare const loadMore: ({ getter, setter, cache, query, type, func, api, cacheTimeout, uniqueKey, errorRetry, callback }: loadMoreType) => Promise<any>;
|
|
5
|
-
export declare const updateState: ({ getter, setter, cache, type, func, query, method, value, id, uniqueKey, changeKey, cacheTimeout }: updateStateType) => Promise<unknown>;
|
package/dist/src/enum.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
SETTER_TYPE: {
|
|
3
|
-
RESET: number;
|
|
4
|
-
MERGE: number;
|
|
5
|
-
};
|
|
6
|
-
FETCH_TYPE_ARRAY: string[];
|
|
7
|
-
FETCH_TYPE: {
|
|
8
|
-
PAGINATION: string;
|
|
9
|
-
SINCE_FIRST_OR_END_ID: string;
|
|
10
|
-
SCROLL_LOAD_MORE: string;
|
|
11
|
-
HAS_LOADED_IDS: string;
|
|
12
|
-
AUTO: string;
|
|
13
|
-
};
|
|
14
|
-
CHANGE_TYPE: {
|
|
15
|
-
SEARCH_FIELD: string;
|
|
16
|
-
RESET_FIELD: string;
|
|
17
|
-
RESULT_UPDATE_KV: string;
|
|
18
|
-
RESULT_ADD_AFTER: string;
|
|
19
|
-
RESULT_ADD_BEFORE: string;
|
|
20
|
-
RESULT_REMOVE_BY_ID: string;
|
|
21
|
-
RESULT_INSERT_TO_BEFORE: string;
|
|
22
|
-
RESULT_INSERT_TO_AFTER: string;
|
|
23
|
-
RESULT_LIST_MERGE: string;
|
|
24
|
-
RESULT_ITEM_MERGE: string;
|
|
25
|
-
};
|
|
26
|
-
FIELD_DATA: {
|
|
27
|
-
RESULT_KEY: string;
|
|
28
|
-
EXTRA_KEY: string;
|
|
29
|
-
};
|
|
30
|
-
DEFAULT_UNIQUE_KEY_NAME: string;
|
|
31
|
-
};
|
|
32
|
-
export default _default;
|
package/dist/src/index.d.ts
DELETED
package/dist/src/setters.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { setDataType, setErrorType } from './types';
|
|
2
|
-
export declare const SET_DATA: ({ getter, setter, cache, data, fieldName, type, fromLocal, cacheTimeout, page, insertBefore }: setDataType) => Promise<any>;
|
|
3
|
-
export declare const SET_ERROR: ({ setter, fieldName, error }: setErrorType) => void;
|
package/dist/src/types.d.ts
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
export declare type objectKey = string | number;
|
|
2
|
-
export declare type keyMap = Record<objectKey, any>;
|
|
3
|
-
export declare type morphArray = any[];
|
|
4
|
-
export declare type fieldResult = morphArray | keyMap;
|
|
5
|
-
export declare type defaultField = {
|
|
6
|
-
result: fieldResult;
|
|
7
|
-
noMore: boolean;
|
|
8
|
-
nothing: boolean;
|
|
9
|
-
loading: boolean;
|
|
10
|
-
error: null | Error;
|
|
11
|
-
extra: null | any;
|
|
12
|
-
fetched: boolean;
|
|
13
|
-
page: number;
|
|
14
|
-
total: number;
|
|
15
|
-
};
|
|
16
|
-
export declare type fetchTypes = 'jump' | 'sinceId' | 'page' | 'seenIds' | 'auto';
|
|
17
|
-
export declare type fieldKeys = 'result' | 'noMore' | 'nothing' | 'loading' | 'error' | 'extra' | 'page' | 'total';
|
|
18
|
-
export declare type generateFieldProps = {
|
|
19
|
-
func: string | (() => {});
|
|
20
|
-
type: fetchTypes;
|
|
21
|
-
query: keyMap;
|
|
22
|
-
};
|
|
23
|
-
export declare type generateParamsType = {
|
|
24
|
-
field: defaultField;
|
|
25
|
-
uniqueKey: string;
|
|
26
|
-
query: keyMap;
|
|
27
|
-
type: fetchTypes;
|
|
28
|
-
};
|
|
29
|
-
export declare type generateParamsResp = {
|
|
30
|
-
seen_ids?: string;
|
|
31
|
-
since_id?: objectKey;
|
|
32
|
-
is_up?: 0 | 1;
|
|
33
|
-
page?: number;
|
|
34
|
-
};
|
|
35
|
-
export declare type setterFuncParams = {
|
|
36
|
-
key: string;
|
|
37
|
-
type: number;
|
|
38
|
-
value: any;
|
|
39
|
-
callback?: (obj?: keyMap) => void;
|
|
40
|
-
};
|
|
41
|
-
export declare type initStateType = {
|
|
42
|
-
getter: (str: string) => defaultField;
|
|
43
|
-
setter: (obj: setterFuncParams) => void;
|
|
44
|
-
func: string | (() => {});
|
|
45
|
-
type: fetchTypes;
|
|
46
|
-
query?: keyMap;
|
|
47
|
-
opts?: keyMap;
|
|
48
|
-
};
|
|
49
|
-
export declare type cacheType = {
|
|
50
|
-
get: ({ key }: {
|
|
51
|
-
key: string;
|
|
52
|
-
}) => Promise<any>;
|
|
53
|
-
set: ({ key, value, timeout }: {
|
|
54
|
-
key: string;
|
|
55
|
-
value: any;
|
|
56
|
-
timeout?: number;
|
|
57
|
-
}) => Promise<any>;
|
|
58
|
-
del: ({ key }: {
|
|
59
|
-
key: string;
|
|
60
|
-
}) => void;
|
|
61
|
-
};
|
|
62
|
-
export declare type initDataType = {
|
|
63
|
-
getter: (str: string) => defaultField;
|
|
64
|
-
setter: (obj: setterFuncParams) => void;
|
|
65
|
-
cache: cacheType;
|
|
66
|
-
func: string | (() => {});
|
|
67
|
-
type: fetchTypes;
|
|
68
|
-
query?: keyMap;
|
|
69
|
-
api: keyMap;
|
|
70
|
-
cacheTimeout: number;
|
|
71
|
-
uniqueKey: string;
|
|
72
|
-
callback: (obj?: keyMap) => void;
|
|
73
|
-
};
|
|
74
|
-
export declare type loadMoreType = {
|
|
75
|
-
getter: (str: string) => defaultField;
|
|
76
|
-
setter: (obj: setterFuncParams) => void;
|
|
77
|
-
cache: cacheType;
|
|
78
|
-
func: string | (() => {});
|
|
79
|
-
type: fetchTypes;
|
|
80
|
-
query?: keyMap;
|
|
81
|
-
api: keyMap;
|
|
82
|
-
cacheTimeout: number;
|
|
83
|
-
uniqueKey: string;
|
|
84
|
-
errorRetry: boolean;
|
|
85
|
-
callback: (obj?: keyMap) => void;
|
|
86
|
-
};
|
|
87
|
-
export declare type updateStateType = {
|
|
88
|
-
getter: (str: string) => defaultField;
|
|
89
|
-
setter: (obj: setterFuncParams) => void;
|
|
90
|
-
cache: cacheType;
|
|
91
|
-
func: string | (() => {});
|
|
92
|
-
type: fetchTypes;
|
|
93
|
-
query?: keyMap;
|
|
94
|
-
method: string;
|
|
95
|
-
value: any;
|
|
96
|
-
id: string | number | objectKey[];
|
|
97
|
-
changeKey: string;
|
|
98
|
-
cacheTimeout: number;
|
|
99
|
-
uniqueKey: string;
|
|
100
|
-
callback: (obj?: keyMap) => void;
|
|
101
|
-
};
|
|
102
|
-
export declare type setDataType = {
|
|
103
|
-
getter: (str: string) => defaultField;
|
|
104
|
-
setter: (obj: setterFuncParams) => void;
|
|
105
|
-
cache: cacheType;
|
|
106
|
-
data: any;
|
|
107
|
-
fieldName: string;
|
|
108
|
-
type: fetchTypes;
|
|
109
|
-
fromLocal: boolean;
|
|
110
|
-
cacheTimeout: number;
|
|
111
|
-
page: number;
|
|
112
|
-
insertBefore: boolean;
|
|
113
|
-
};
|
|
114
|
-
export declare type setErrorType = {
|
|
115
|
-
setter: (obj: setterFuncParams) => void;
|
|
116
|
-
fieldName: string;
|
|
117
|
-
error: null | Error;
|
|
118
|
-
};
|
package/dist/src/utils.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { objectKey, keyMap, morphArray, fieldResult, defaultField, fetchTypes, fieldKeys, generateFieldProps, generateParamsType, generateParamsResp } from './types';
|
|
2
|
-
export declare const generateDefaultField: (opts?: {}) => defaultField;
|
|
3
|
-
/**
|
|
4
|
-
* 根据参数生成 field 的 namespace
|
|
5
|
-
* @param {string} func
|
|
6
|
-
* @param {string} type
|
|
7
|
-
* @param {object} query
|
|
8
|
-
* @return {string}
|
|
9
|
-
*/
|
|
10
|
-
export declare const generateFieldName: ({ func, type, query }: generateFieldProps) => string;
|
|
11
|
-
/**
|
|
12
|
-
* 根据 key 从 object 里拿 value
|
|
13
|
-
* @param {object} field
|
|
14
|
-
* @param {string} keys
|
|
15
|
-
* @return {*}
|
|
16
|
-
*/
|
|
17
|
-
export declare const getObjectDeepValue: (field: keyMap, keys: string | string[]) => any;
|
|
18
|
-
export declare const updateObjectDeepValue: (field: keyMap, changeKey: string, value: any) => void;
|
|
19
|
-
export declare const searchValueByKey: (result: fieldResult, id: objectKey, key: objectKey) => any;
|
|
20
|
-
/**
|
|
21
|
-
* 通过 id 匹配返回数组中某个对象的 index
|
|
22
|
-
* @param {int|string} itemId
|
|
23
|
-
* @param {array} fieldArr
|
|
24
|
-
* @param {int|string} changingKey
|
|
25
|
-
* @return {number}
|
|
26
|
-
*/
|
|
27
|
-
export declare const computeMatchedItemIndex: (itemId: objectKey, fieldArr: morphArray, changingKey: objectKey) => number;
|
|
28
|
-
export declare const combineArrayData: (fieldArray: any[], value: fieldResult, changingKey: string) => void;
|
|
29
|
-
/**
|
|
30
|
-
* 判断参数是否为数组
|
|
31
|
-
* @param {object|array} data
|
|
32
|
-
* @return {boolean}
|
|
33
|
-
*/
|
|
34
|
-
export declare const isArray: (data: any) => boolean;
|
|
35
|
-
/**
|
|
36
|
-
* 设置一个响应式的数据到对象上
|
|
37
|
-
* @param {object} field
|
|
38
|
-
* @param {string} key
|
|
39
|
-
* @param {array|object} value
|
|
40
|
-
* @param {string} type
|
|
41
|
-
* @param {boolean} insertBefore
|
|
42
|
-
*/
|
|
43
|
-
export declare const setReactivityField: (field: defaultField, key: fieldKeys, value: any, type: fetchTypes, insertBefore: boolean) => void;
|
|
44
|
-
/**
|
|
45
|
-
* 计算一个数据列的长度
|
|
46
|
-
* @param {array|object} data
|
|
47
|
-
* @return {number}
|
|
48
|
-
*/
|
|
49
|
-
export declare const computeResultLength: (data: fieldResult) => number;
|
|
50
|
-
/**
|
|
51
|
-
* 拼接请求的参数
|
|
52
|
-
* @param {object} field
|
|
53
|
-
* @param {string} uniqueKey
|
|
54
|
-
* @param {object} query
|
|
55
|
-
* @param {string} type
|
|
56
|
-
* @return {object}
|
|
57
|
-
*/
|
|
58
|
-
export declare const generateRequestParams: ({ field, uniqueKey, query, type }: generateParamsType) => generateParamsResp;
|