feat: 新增支持小红书小程序

pull/49/head
zjx0905 2023-08-15 15:43:24 +08:00
parent 71e3007389
commit 53f043275c
37 changed files with 6441 additions and 658 deletions

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ docs/pages/guide/intro.md
# Bundle
dist/
.swc
# Typescript build file
*.tsbuildinfo

View File

@ -51,6 +51,7 @@ axios-miniprogram 是一款为小程序平台量身定制的轻量级请求库
- [飞书小程序](https://open.feishu.cn/document/uYjL24iN/uMjNzUjLzYzM14yM2MTN?from=axios-miniprogram)
- [快手小程序](https://mp.kuaishou.com/docs/introduction/quickStart.html?from=axios-miniprogram)
- [360 小程序](https://mp.360.cn/doc/miniprogram/dev/#/f4b41f0cc5683bce78dfadfa7f3c73e7?from=axios-miniprogram)
- [小红书小程序](https://miniapp.xiaohongshu.com/docs/guide/miniIntroduce?from=axios-miniprogram)
## 关于在跨端框架中使用时的支持度

8
example/.gitignore vendored
View File

@ -1,8 +0,0 @@
dist/
deploy_versions/
.temp/
.rn_temp/
node_modules/
.DS_Store
.swc
config/**.js

View File

@ -19,7 +19,12 @@ const config = {
},
sourceRoot: 'src',
outputRoot: `dist/${process.env.TARO_ENV}`,
plugins: ['@tarojs/plugin-html', '@tarojs/plugin-platform-alipay-dd'],
plugins: [
'@tarojs/plugin-html',
'@tarojs/plugin-platform-alipay-dd',
'@tarojs/plugin-platform-lark',
'@tarojs/plugin-platform-kwai',
],
defineConstants: {},
copy: {
patterns: [],

View File

@ -1,5 +1,5 @@
{
"name": "example",
"name": "@examples/taro",
"private": true,
"scripts": {
"build:weapp": "taro build --type weapp",
@ -50,6 +50,8 @@
"@tarojs/cli": "3.6.6",
"@tarojs/plugin-html": "^3.6.6",
"@tarojs/plugin-platform-alipay-dd": "^0.3.0",
"@tarojs/plugin-platform-kwai": "^6.0.0",
"@tarojs/plugin-platform-lark": "^1.1.4",
"@tarojs/webpack5-runner": "3.6.6",
"@types/webpack-env": "^1.13.6",
"@vue/babel-plugin-jsx": "^1.0.6",

View File

@ -1,4 +1,5 @@
{
"miniprogramRoot": "./",
"projectname": "axios-miniprogram",
"setting": {
"urlCheck": false,

View File

@ -0,0 +1,10 @@
{
"miniprogramRoot": "./",
"projectname": "axios-miniprogram",
"appid": "ks739467354825138594",
"libVersion": "0.2.0",
"setting": {
"urlCheck": false
},
"compileType": "miniprogram"
}

View File

@ -1,5 +1,5 @@
export default defineAppConfig({
pages: ['pages/index/index'],
pages: ['home'],
window: {
backgroundTextStyle: 'light',
navigationBarBackgroundColor: '#fff',

View File

@ -2,6 +2,7 @@
import Taro from '@tarojs/taro';
import { ref } from 'vue';
import axios from 'axios-miniprogram';
import consola from 'consola';
const config = ref<string>('');
const response = ref<string>('');
@ -14,18 +15,18 @@ axios.defaults.adapter = axios.createAdapter({
});
axios.defaults.baseURL = 'https://jsonplaceholder.typicode.com';
axios.defaults.errorHandler = (err) => {
console.log('[debug]', (err as any).response);
consola.info('[debug]', (err as any).response);
error.value = `<pre>${JSON.stringify(err, null, 2)}</pre>`;
Taro.hideLoading();
Taro.showToast({
icon: 'none',
title: (err as any).response.data?.errMsg ?? '未知错误',
title: (err as any).response.data?.errMsg || '未知错误',
});
return Promise.reject(err);
};
axios.use(async (ctx, next) => {
console.log('[debug]', ctx);
consola.info('[debug]', ctx);
Taro.showLoading({
title: 'Loading...',
});
@ -115,8 +116,12 @@ function uploadRequest() {
{
name: 'filename',
filePath: tempFilePaths[0],
fileType: 'image',
},
{
headers: {
'Content-Type': 'multipart/form-data',
},
upload: true,
},
);

View File

@ -1,5 +1,5 @@
{
"extends": ["../tsconfig.json"],
"extends": ["../../tsconfig.json"],
"compilerOptions": {
"removeComments": false,
"preserveConstEnums": true,

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@ -0,0 +1,73 @@
{
"name": "@examples/uni-app",
"private": true,
"scripts": {
"dev:app": "uni -p app",
"dev:app-android": "uni -p app-android",
"dev:app-ios": "uni -p app-ios",
"dev:custom": "uni -p",
"dev:h5": "uni",
"dev:h5:ssr": "uni --ssr",
"dev:alipay": "uni -p mp-alipay",
"dev:swan": "uni -p mp-baidu",
"dev:jd": "uni -p mp-jd",
"dev:kwai": "uni -p mp-kuaishou",
"dev:lark": "uni -p mp-lark",
"dev:qq": "uni -p mp-qq",
"dev:tt": "uni -p mp-toutiao",
"dev:dd": "uni -p mp-alipay",
"dev:weapp": "uni -p mp-weixin",
"dev:xhs": "uni -p mp-xhs",
"dev:quickapp-webview": "uni -p quickapp-webview",
"dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
"dev:quickapp-webview-union": "uni -p quickapp-webview-union",
"build:app": "uni build -p app",
"build:app-android": "uni build -p app-android",
"build:app-ios": "uni build -p app-ios",
"build:custom": "uni build -p",
"build:h5": "uni build",
"build:h5:ssr": "uni build --ssr",
"build:alipay": "uni build -p mp-alipay",
"build:swan": "uni build -p mp-baidu",
"build:jd": "uni build -p mp-jd",
"build:kwai": "uni build -p mp-kuaishou",
"build:lark": "uni build -p mp-lark",
"build:qq": "uni build -p mp-qq",
"build:tt": "uni build -p mp-toutiao",
"build:dd": "uni -p mp-alipay",
"build:weapp": "uni build -p mp-weixin",
"build:xhs": "uni build -p mp-xhs",
"build:quickapp-webview": "uni build -p quickapp-webview",
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-3080720230703001",
"@dcloudio/uni-app-plus": "3.0.0-3080720230703001",
"@dcloudio/uni-components": "3.0.0-3080720230703001",
"@dcloudio/uni-h5": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-alipay": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-baidu": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-jd": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-lark": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-qq": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-toutiao": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001",
"@dcloudio/uni-mp-xhs": "3.0.0-alpha-3081220230802001",
"@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001",
"axios-miniprogram": "workspace:*",
"vue": "^3.2.45"
},
"devDependencies": {
"@dcloudio/types": "^3.3.2",
"@dcloudio/uni-automator": "3.0.0-3080720230703001",
"@dcloudio/uni-cli-shared": "3.0.0-3080720230703001",
"@dcloudio/uni-stacktracey": "3.0.0-3080720230703001",
"@dcloudio/vite-plugin-uni": "3.0.0-3080720230703001",
"@vue/tsconfig": "^0.1.3",
"vite": "4.0.4",
"vue-tsc": "^1.0.24"
}
}

8
examples/uni-app/src/env.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
/// <reference types="vite/client" />
declare module '*.vue' {
import { DefineComponent } from 'vue';
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
const component: DefineComponent<{}, {}, any>;
export default component;
}

View File

@ -0,0 +1,202 @@
<script lang="ts" setup>
import { ref } from 'vue';
import axios from 'axios-miniprogram';
import consola from 'consola';
const config = ref<string>('');
const response = ref<string>('');
const error = ref<string>('');
axios.defaults.adapter = axios.createAdapter({
request: uni.request as any,
download: uni.downloadFile,
upload: uni.uploadFile as any,
});
axios.defaults.baseURL = 'https://jsonplaceholder.typicode.com';
axios.defaults.errorHandler = (err) => {
consola.info('[debug]', (err as any).response);
error.value = `<pre>${JSON.stringify(err, null, 2)}</pre>`;
uni.hideLoading();
uni.showToast({
icon: 'none',
title: (err as any).response.data?.errMsg || '未知错误',
});
return Promise.reject(err);
};
axios.use(async (ctx, next) => {
consola.info('[debug]', ctx);
uni.showLoading({
title: 'Loading...',
});
config.value = `<pre>${JSON.stringify(ctx.req, null, 2)}</pre>`;
error.value = '';
response.value = '';
await next();
response.value = `<pre>${JSON.stringify(ctx.res, null, 2)}</pre>`;
uni.hideLoading();
});
function getRequest() {
axios.get('/users/:id', {
id: 1,
});
}
function postRequest() {
axios.post('/users', {
name: 'Leanne Graham',
username: 'Bret',
email: 'Sincere@april.biz',
address: {
street: 'Kulas Light',
suite: 'Apt. 556',
city: 'Gwenborough',
zipcode: '92998-3874',
geo: { lat: '-37.3159', lng: '81.1496' },
},
phone: '1-770-736-8031 x56442',
website: 'hildegard.org',
company: {
name: 'Romaguera-Crona',
catchPhrase: 'Multi-layered client-server neural-net',
bs: 'harness real-time e-markets',
},
});
}
function putRequest() {
axios.put('/users/:id', {
id: 1,
name: 'Leanne Graham',
username: 'Bret',
email: 'Sincere@april.biz',
address: {
street: 'Kulas Light',
suite: 'Apt. 556',
city: 'Gwenborough',
zipcode: '92998-3874',
geo: { lat: '-37.3159', lng: '81.1496' },
},
phone: '1-770-736-8031 x56442',
website: 'hildegard.org',
company: {
name: 'Romaguera-Crona',
catchPhrase: 'Multi-layered client-server neural-net',
bs: 'harness real-time e-markets',
},
});
}
function deleteRequest() {
axios.delete('/users/:id', {
id: 1,
});
}
function downloadRequest() {
axios.get(
'/users/:id',
{
id: 1,
},
{
download: true,
},
);
}
function uploadRequest() {
uni.chooseImage({
count: 1,
success({ tempFilePaths }) {
axios.post(
'/users',
{
name: 'filename',
filePath: tempFilePaths[0],
fileType: 'image',
},
{
headers: {
'Content-Type': 'multipart/form-data',
},
upload: true,
},
);
},
});
}
function errorRequest() {
axios.get('/users/:id', {
id: Infinity,
});
}
function failRequest() {
axios.post(
'/users',
{},
{
upload: true,
},
);
}
defineExpose({
getRequest,
postRequest,
putRequest,
deleteRequest,
config,
response,
error,
});
</script>
<template>
<view>
<button class="button" type="primary" @click="getRequest">GET </button>
<button class="button" type="primary" @click="postRequest">
POST 请求
</button>
<button class="button" type="primary" @click="putRequest">PUT </button>
<button class="button" type="primary" @click="deleteRequest">
DELETE 请求
</button>
<button class="button" type="primary" @click="downloadRequest">
DOWNLOAD 请求
</button>
<button class="button" type="primary" @click="uploadRequest">
UPLOAD 请求
</button>
<button class="button" type="primary" @click="errorRequest">
ERROR 请求
</button>
<button class="button" type="primary" @click="failRequest">
FAIL 请求
</button>
config:
<view class="code" v-html="config"></view>
response:
<view class="code" v-html="response"></view>
error:
<view class="code" v-html="error"></view>
</view>
</template>
<style>
.button {
margin: 20px;
}
.code {
padding: 20px;
overflow-x: scroll;
white-space: pre;
}
</style>

View File

@ -0,0 +1,7 @@
import { createSSRApp } from 'vue';
export function createApp() {
const app = createSSRApp({});
return {
app,
};
}

View File

@ -0,0 +1,72 @@
{
"name": "",
"appid": "",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
/* 5+App */
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
/* */
"modules": {},
/* */
"distribute": {
/* android */
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {},
/* SDK */
"sdkConfigs": {}
}
},
/* */
"quickapp": {},
/* */
"mp-weixin": {
"appid": "",
"setting": {
"urlCheck": false
},
"usingComponents": true
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "3"
}

View File

@ -0,0 +1,9 @@
{
"pages": [{ "path": "home", "style": {} }],
"globalStyle": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "axios-miniprogram",
"navigationBarTextStyle": "black"
}
}

6
examples/uni-app/src/shime-uni.d.ts vendored Normal file
View File

@ -0,0 +1,6 @@
export {};
declare module 'vue' {
type Hooks = App.AppInstance & Page.PageInstance;
type ComponentCustomOptions = Hooks;
}

View File

@ -0,0 +1,9 @@
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"lib": ["esnext", "dom"],
"types": ["@dcloudio/types"],
"ignoreDeprecations": "5.0"
},
"include": ["./src"]
}

View File

@ -0,0 +1,7 @@
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [uni()],
});

View File

@ -7,3 +7,4 @@ declare const qh: any;
declare const ks: any;
declare const dd: any;
declare const jd: any;
declare const xhs: any;

View File

@ -51,37 +51,37 @@
"docs:deploy": "esno scripts/docs.deploy.ts"
},
"devDependencies": {
"@commitlint/cli": "^17.4.4",
"@commitlint/config-conventional": "^17.4.4",
"@rollup/plugin-typescript": "^11.1.0",
"@commitlint/cli": "^17.7.1",
"@commitlint/config-conventional": "^17.7.0",
"@rollup/plugin-typescript": "^11.1.2",
"@types/minimist": "^1.2.2",
"@types/node": "^18.15.5",
"@types/semver": "^7.3.13",
"@typescript-eslint/eslint-plugin": "^5.55.0",
"@typescript-eslint/parser": "^5.55.0",
"@vitest/coverage-istanbul": "^0.30.0",
"chalk": "^5.2.0",
"@types/node": "^18.17.5",
"@types/semver": "^7.5.0",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"@vitest/coverage-istanbul": "^0.30.1",
"chalk": "^5.3.0",
"consola": "^2.15.3",
"conventional-changelog-cli": "^2.2.2",
"cz-git": "1.3.8",
"czg": "1.3.8",
"enquirer": "^2.3.6",
"eslint": "^8.36.0",
"enquirer": "^2.4.1",
"eslint": "^8.47.0",
"esno": "^0.16.3",
"fast-glob": "^3.2.12",
"fast-glob": "^3.3.1",
"jszip": "^3.10.1",
"lint-staged": "13.2.0",
"minimist": "^1.2.8",
"prettier": "2.8.5",
"rimraf": "^4.4.0",
"rollup": "^3.20.0",
"rollup-plugin-dts": "^5.3.0",
"rimraf": "^4.4.1",
"rollup": "^3.28.0",
"rollup-plugin-dts": "^5.3.1",
"rollup-plugin-esbuild": "^5.0.0",
"semver": "^7.3.8",
"simple-git-hooks": "^2.8.1",
"tslib": "^2.5.0",
"typescript": "^5.0.2",
"vitest": "^0.30.0"
"semver": "^7.5.4",
"simple-git-hooks": "^2.9.0",
"tslib": "^2.6.1",
"typescript": "^5.1.6",
"vitest": "^0.30.1"
},
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged && pnpm test && pnpm build -a",

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
packages:
- docs
- example
- examples/*

View File

@ -1,31 +1,37 @@
import enquirer from 'enquirer';
import consola from 'consola';
import { exec, resolve } from './utils';
import { safeExit } from './utils';
const configPath = resolve('example/config');
const configTempPath = resolve('example/config/temp');
import { exec, resolve, safeExit } from './utils';
import { readdirSync } from 'fs';
safeExit(main);
async function main() {
const { framework } = await enquirer.prompt<{ framework: string }>({
type: 'select',
name: 'framework',
message: '请选择多端框架',
choices: readdirSync(resolve('examples')),
});
const metas = framework === 'taro' ? taroMetas() : uniAppMetas();
const { platform } = await enquirer.prompt<{ platform: string }>({
type: 'select',
name: 'platform',
message: '请选择启动平台',
choices: metas(),
choices: metas,
});
console.log();
consola.info(
`运行${metas().find((meta) => meta.name === platform)!.message}`,
`启动${metas.find((meta) => meta.name === platform)!.message}...`,
);
exec(`tsc ${configTempPath}/**.ts --outDir ${configPath}`);
exec(`pnpm --filter example dev:${platform}`);
exec(`pnpm --filter @examples/${framework} dev:${platform}`);
}
function metas() {
function taroMetas() {
return [
{ name: 'h5', message: 'H5' },
{ name: 'weapp', message: '微信小程序' },
{ name: 'swan', message: '百度小程序' },
{ name: 'alipay', message: '支付宝小程序' },
@ -35,6 +41,9 @@ function metas() {
{ name: 'dd', message: '钉钉小程序' },
{ name: 'lark', message: '飞书小程序' },
{ name: 'kwai', message: '快手小程序' },
{ name: 'h5', message: 'H5' },
];
}
function uniAppMetas() {
return [...taroMetas(), { name: 'xhs', message: '小红书小程序' }];
}

View File

@ -111,11 +111,11 @@ export interface AxiosAdapterRequestConfig extends AnyObject {
/**
*
*/
dataType?: 'json' | '其他';
dataType?: string;
/**
*
*/
responseType?: 'text' | 'arraybuffer';
responseType?: string;
/**
* 60000
*/
@ -338,22 +338,6 @@ export function createAdapter(platform: AxiosAdapterPlatform) {
return request(baseOptions);
}
function processUpload(
upload: AxiosAdapterUpload,
baseOptions: AxiosAdapterBaseOptions,
): AxiosAdapterPlatformTask {
const options = baseOptions as AxiosAdapterUploadOptions;
const { name, filePath, fileType, ...formData } = options.data as AnyObject;
options.name = name;
options.fileName = name;
options.filePath = filePath;
options.fileType = fileType;
options.formData = formData;
orgIgnore(options, ['params', 'data']);
return upload(options);
}
function processDownload(
download: AxiosAdapterDownload,
baseOptions: AxiosAdapterBaseOptions,
@ -363,14 +347,17 @@ export function createAdapter(platform: AxiosAdapterPlatform) {
options.filePath = params?.filePath;
options.success = (_response) => {
const response = Object.assign(
ignore(_response, 'tempFilePath', 'apFilePath', 'filePath'),
ignore(_response, 'tempFilePath', 'apFilePath', 'filePath', 'fileSize'),
{
data: {
filePath: _response.filePath,
tempFilePath:
_response.tempFilePath ??
// response.apFilePath 为支付宝小程序基础库小于 2.7.23 的特有属性。
// 支付宝
_response.apFilePath,
fileSize:
// 飞书
_response.fileSize,
},
},
);
@ -382,5 +369,24 @@ export function createAdapter(platform: AxiosAdapterPlatform) {
return download(options);
}
function processUpload(
upload: AxiosAdapterUpload,
baseOptions: AxiosAdapterBaseOptions,
): AxiosAdapterPlatformTask {
const options = baseOptions as AxiosAdapterUploadOptions;
const { name, filePath, fileType, ...formData } = options.data as AnyObject;
options.name = name;
options.filePath = filePath;
options.formData = formData;
// 支付宝 | 钉钉
options.fileName = name;
// 支付宝 | 钉钉
options.fileType = fileType;
orgIgnore(options, ['params', 'data']);
return upload(options);
}
return adapter;
}

View File

@ -14,25 +14,46 @@ export function getDefaultAdapter() {
function getPlatform() {
const undef = 'undefined';
// 微信小程序
if (typeof wx !== undef) {
return wx;
} else if (typeof my !== undef) {
}
// 支付宝小程序
else if (typeof my !== undef) {
return my;
} else if (typeof swan !== undef) {
}
// 百度小程序
else if (typeof swan !== undef) {
return swan;
} else if (typeof tt !== undef) {
}
// 抖音小程序 | 飞书小程序
else if (typeof tt !== undef) {
return tt;
} else if (typeof qq !== undef) {
}
// QQ 小程序
else if (typeof qq !== undef) {
return qq;
} else if (typeof qh !== undef) {
}
// 360 小程序
else if (typeof qh !== undef) {
return qh;
} else if (typeof ks !== undef) {
}
// 快手小程序
else if (typeof ks !== undef) {
return ks;
} else if (typeof dd !== undef) {
}
// 钉钉小程序
else if (typeof dd !== undef) {
return dd;
} else if (typeof jd !== undef) {
}
// 京东小程序
else if (typeof jd !== undef) {
return jd;
}
// 小红书小程序
else if (typeof xhs !== undef) {
return xhs;
}
}
function revisePlatformApiNames(platform?: AnyObject) {

View File

@ -200,6 +200,7 @@ describe('src/adapter/createAdapter.ts', () => {
expect(response.data).toMatchInlineSnapshot(`
{
"filePath": undefined,
"fileSize": undefined,
"tempFilePath": "/path/temp/file",
}
`);
@ -212,6 +213,7 @@ describe('src/adapter/createAdapter.ts', () => {
expect(response.data).toMatchInlineSnapshot(`
{
"filePath": undefined,
"fileSize": undefined,
"tempFilePath": "/path/temp/file",
}
`);
@ -226,6 +228,7 @@ describe('src/adapter/createAdapter.ts', () => {
expect(response.data).toMatchInlineSnapshot(`
{
"filePath": "/user/path",
"fileSize": undefined,
"tempFilePath": "/path/temp/file",
}
`);
@ -240,6 +243,7 @@ describe('src/adapter/createAdapter.ts', () => {
expect(response.data).toMatchInlineSnapshot(`
{
"filePath": "/user/path",
"fileSize": undefined,
"tempFilePath": "/path/temp/file",
}
`);

View File

@ -138,7 +138,7 @@ describe('src/core/mergeConfig.ts', () => {
errorHandler: vi.fn(),
cancelToken: CancelToken.source().token,
dataType: 'json',
responseType: 'json',
responseType: 'text',
timeout: 1000,
validateStatus: vi.fn(),
onUploadProgress: vi.fn(),
@ -154,7 +154,7 @@ describe('src/core/mergeConfig.ts', () => {
errorHandler: vi.fn(),
cancelToken: CancelToken.source().token,
dataType: 'json',
responseType: 'json',
responseType: 'text',
timeout: 1000,
validateStatus: vi.fn(),
onUploadProgress: vi.fn(),