Skip to content

Commit

Permalink
feat: 请求函数入参新增属性 getFormData 以获取全部请求数据(包含文件)的 FormData 实例
Browse files Browse the repository at this point in the history
  • Loading branch information
fjc0k committed Dec 8, 2020
1 parent 11a96cd commit c48368c
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 6 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"change-case": "^3.0.2",
"consola": "^2.3.0",
"dayjs": "^1.8.32",
"form-data": "^3.0.0",
"fs-extra": "^7.0.1",
"get-port": "^5.1.1",
"got": "^11.5.1",
Expand Down
23 changes: 19 additions & 4 deletions src/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import UniFormData from 'form-data'
import { Config, RequestConfig, RequestFunctionParams } from './types'

/**
Expand Down Expand Up @@ -117,15 +118,29 @@ export function prepare(
}${queryString}`
}
}

// 全部数据
const allData = {
...(dataIsObject ? data : {}),
...fileData,
}

// 获取表单数据
const getFormData = () => {
const formData = new UniFormData()
Object.keys(allData).forEach((value, key) => {
formData.append(key as any, value)
})
return formData as any
}

return {
...requestConfig,
path: requestPath,
data: data,
hasFileData: fileData && Object.keys(fileData).length > 0,
fileData: fileData,
allData: {
...(dataIsObject ? data : {}),
...fileData,
},
allData: allData,
getFormData: getFormData,
}
}
2 changes: 2 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,8 @@ export interface RequestFunctionParams extends RequestConfig {
fileData: Record<string, any>
/** 所有请求数据,包括 data、fileData */
allData: Record<string, any>
/** 获取全部请求数据(包含文件)的 FormData 实例 */
getFormData: () => FormData
}

/** 请求函数的额外参数 */
Expand Down
7 changes: 7 additions & 0 deletions tests/__snapshots__/helpers.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Object {
"b": "2",
},
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"path": "/test",
}
Expand All @@ -25,6 +26,7 @@ Object {
"b": "2",
},
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"paramNames": Array [
"a",
Expand All @@ -43,6 +45,7 @@ Object {
"b": "2",
},
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"paramNames": Array [
"a",
Expand All @@ -61,6 +64,7 @@ Object {
"b": "2",
},
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"paramNames": Array [
"a",
Expand All @@ -75,6 +79,7 @@ Object {
"allData": Object {},
"data": true,
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"path": "/test",
}
Expand All @@ -92,6 +97,7 @@ Object {
},
],
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"path": "/test",
}
Expand All @@ -106,6 +112,7 @@ Object {
"b": "2",
},
"fileData": Object {},
"getFormData": [Function getFormData],
"hasFileData": false,
"path": "/search?a=1&id=110",
"queryNames": Array [
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"newLine": "LF",
"preserveSymlinks": true,
"skipLibCheck": true,
"lib": ["ESNext"],
"lib": ["ESNext", "DOM"],
"plugins": [
{
"name": "typescript-snapshots-plugin",
Expand Down
11 changes: 10 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1787,7 +1787,7 @@ color-name@~1.1.4:
resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=

combined-stream@^1.0.6, combined-stream@~1.0.6:
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=
Expand Down Expand Up @@ -3140,6 +3140,15 @@ form-data@^2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"

form-data@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/form-data/download/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682"
integrity sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"

form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
Expand Down

0 comments on commit c48368c

Please sign in to comment.