create-young-proj 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/template-nuxt-admin/package.json +5 -5
- package/template-nuxt-admin/yarn.lock +706 -854
- package/template-uni-app/auto-imports.d.ts +9 -6
- package/template-uni-app/custom-plugins/index.ts +1 -2
- package/template-uni-app/dist/dev/mp-weixin/apis/index.js +5 -6
- package/template-uni-app/dist/dev/mp-weixin/apis/requests/get.js +2 -2
- package/template-uni-app/dist/dev/mp-weixin/apis/requests/post.js +4 -4
- package/template-uni-app/dist/dev/mp-weixin/app.js +4 -5
- package/template-uni-app/dist/dev/mp-weixin/common/vendor.js +1448 -2471
- package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.js +7 -8
- package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.js +7 -8
- package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/layouts/default.js +1 -2
- package/template-uni-app/dist/dev/mp-weixin/layouts/tabbar.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.js +4 -5
- package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/pages/index.js +4 -5
- package/template-uni-app/dist/dev/mp-weixin/pages/index.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/pages/my.wxml +1 -1
- package/template-uni-app/dist/dev/mp-weixin/project.config.json +1 -2
- package/template-uni-app/dist/dev/mp-weixin/project.private.config.json +6 -0
- package/template-uni-app/dist/dev/mp-weixin/store/local/index.js +3 -1
- package/template-uni-app/dist/dev/mp-weixin/utils/modal.js +10 -14
- package/template-uni-app/dist/dev/mp-weixin/utils/route.js +4 -6
- package/template-uni-app/dist/dev/mp-weixin/utils/system.js +4 -4
- package/template-uni-app/package.json +2 -3
- package/template-uni-app/pnpm-lock.yaml +154 -105
- package/template-uni-app/src/apis/index.ts +2 -2
- package/template-uni-app/src/apis/requests/get.ts +5 -5
- package/template-uni-app/src/apis/requests/post.ts +5 -5
- package/template-uni-app/vite.config.ts +2 -3
- package/template-uni-app/custom-plugins/polyfill.ts +0 -32
- package/template-uni-app/dist/dev/mp-weixin/apis/lib/index.js +0 -90
- package/template-uni-app/src/apis/lib/index.ts +0 -235
@@ -1,14 +1,14 @@
|
|
1
1
|
/*
|
2
2
|
* @Author: zhangyang
|
3
3
|
* @Date: 2023-07-18 16:50:32
|
4
|
-
* @LastEditTime: 2023-
|
4
|
+
* @LastEditTime: 2023-09-19 10:19:44
|
5
5
|
* @Description:
|
6
6
|
*/
|
7
|
-
import type {
|
7
|
+
import type { YoungHttp, YoungHttpAuthReq, YoungHttpFreeReq } from '@bluesyoung/http'
|
8
8
|
|
9
|
-
export function useGet(http:
|
10
|
-
const FreeReq:
|
11
|
-
const AuthReq:
|
9
|
+
export function useGet(http: YoungHttp) {
|
10
|
+
const FreeReq: YoungHttpFreeReq = args => http.freeReq({ method: 'GET', ...args })
|
11
|
+
const AuthReq: YoungHttpAuthReq = args => http.authReq({ method: 'GET', ...args })
|
12
12
|
|
13
13
|
return {
|
14
14
|
getByUserName: (name: string) =>
|
@@ -1,14 +1,14 @@
|
|
1
1
|
/*
|
2
2
|
* @Author: zhangyang
|
3
3
|
* @Date: 2023-07-18 16:59:34
|
4
|
-
* @LastEditTime: 2023-
|
4
|
+
* @LastEditTime: 2023-09-19 10:20:17
|
5
5
|
* @Description:
|
6
6
|
*/
|
7
|
-
import type {
|
7
|
+
import type { YoungHttp, YoungHttpAuthReq, YoungHttpFreeReq } from '@bluesyoung/http'
|
8
8
|
|
9
|
-
export function usePost(http:
|
10
|
-
const FreeReq:
|
11
|
-
const AuthReq:
|
9
|
+
export function usePost(http: YoungHttp) {
|
10
|
+
const FreeReq: YoungHttpFreeReq = args => http.freeReq({ method: 'GET', ...args })
|
11
|
+
const AuthReq: YoungHttpAuthReq = args => http.authReq({ method: 'GET', ...args })
|
12
12
|
|
13
13
|
return {
|
14
14
|
createRepo: async (name: string) => {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* @Author: zhangyang
|
3
3
|
* @Date: 2023-07-18 11:03:01
|
4
|
-
* @LastEditTime: 2023-
|
4
|
+
* @LastEditTime: 2023-09-19 10:18:06
|
5
5
|
* @Description:
|
6
6
|
*/
|
7
7
|
import { resolve } from 'node:path'
|
@@ -15,7 +15,7 @@ import UniManifest from '@uni-helper/vite-plugin-uni-manifest'
|
|
15
15
|
import Unocss from 'unocss/vite'
|
16
16
|
import AutoImport from 'unplugin-auto-import/vite'
|
17
17
|
import AutoComponents from 'unplugin-vue-components/vite'
|
18
|
-
import { multiConf
|
18
|
+
import { multiConf } from './custom-plugins'
|
19
19
|
|
20
20
|
// https://vitejs.dev/config/
|
21
21
|
export default ({ command, mode }: ConfigEnv) => {
|
@@ -28,7 +28,6 @@ export default ({ command, mode }: ConfigEnv) => {
|
|
28
28
|
},
|
29
29
|
},
|
30
30
|
plugins: [
|
31
|
-
polyfillFormData(),
|
32
31
|
// 仅用于增加语法提示,实际导入依靠 uni-app 的 easycom
|
33
32
|
AutoComponents({
|
34
33
|
dts: true,
|
@@ -1,32 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* @Author: zhangyang
|
3
|
-
* @Date: 2023-07-18 15:58:06
|
4
|
-
* @LastEditTime: 2023-07-19 14:32:28
|
5
|
-
* @Description:
|
6
|
-
*/
|
7
|
-
import type { Plugin } from 'vite'
|
8
|
-
|
9
|
-
export function polyfillFormData() {
|
10
|
-
return {
|
11
|
-
name: 'vite-plugin-uni-axios',
|
12
|
-
transform(code, id) {
|
13
|
-
if (process.env.UNI_PLATFORM?.includes('mp')) {
|
14
|
-
if (id.includes('/form-data/lib/browser.js')) {
|
15
|
-
return {
|
16
|
-
code: code.replace('window', 'globalThis'),
|
17
|
-
}
|
18
|
-
}
|
19
|
-
if (id.includes('/axios/lib/platform/browser/classes/FormData.js')) {
|
20
|
-
return {
|
21
|
-
code: 'import FormData from \'miniprogram-formdata\';\nexport default FormData;',
|
22
|
-
}
|
23
|
-
}
|
24
|
-
if (id.includes('/axios/lib/platform/browser/classes/Blob.js')) {
|
25
|
-
return {
|
26
|
-
code: 'import Blob from \'miniprogram-blob\';\nexport default Blob;',
|
27
|
-
}
|
28
|
-
}
|
29
|
-
}
|
30
|
-
},
|
31
|
-
} as Plugin
|
32
|
-
}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
const common_vendor = require("../../common/vendor.js");
|
3
|
-
const defaultConfig = {
|
4
|
-
baseURL: "/api",
|
5
|
-
method: "post",
|
6
|
-
timeout: 5e3,
|
7
|
-
loading: {
|
8
|
-
start: console.log.bind(null, "🚀 ~ http loading start"),
|
9
|
-
end: console.log.bind(null, "🚀 ~ http loading end")
|
10
|
-
},
|
11
|
-
fail: console.error.bind(null, "🚀 ~ http loading error"),
|
12
|
-
checkFn: (res) => res,
|
13
|
-
headers: {
|
14
|
-
getCommonHeaders: () => ({}),
|
15
|
-
getAuthHeaders: () => ({})
|
16
|
-
}
|
17
|
-
};
|
18
|
-
const useHttp = (config = {}) => {
|
19
|
-
const finalConfig = common_vendor.defu(config, defaultConfig);
|
20
|
-
const { baseURL, lazyBaseURL, method, timeout, headers, checkFn, loading, fail } = finalConfig;
|
21
|
-
const net = common_vendor.axios.create({
|
22
|
-
method,
|
23
|
-
timeout,
|
24
|
-
headers: headers.getCommonHeaders(),
|
25
|
-
adapter: common_vendor.Bt()
|
26
|
-
});
|
27
|
-
net.interceptors.request.use(
|
28
|
-
(req) => {
|
29
|
-
!req.notLoading && loading.start();
|
30
|
-
if (!req.baseURL) {
|
31
|
-
req.baseURL = (lazyBaseURL == null ? void 0 : lazyBaseURL()) ?? baseURL;
|
32
|
-
}
|
33
|
-
return req;
|
34
|
-
},
|
35
|
-
(error) => {
|
36
|
-
fail(error);
|
37
|
-
return Promise.reject(error);
|
38
|
-
}
|
39
|
-
);
|
40
|
-
net.interceptors.response.use(
|
41
|
-
(response) => {
|
42
|
-
!response.config.notLoading && loading.end();
|
43
|
-
const data = response.data;
|
44
|
-
try {
|
45
|
-
return checkFn(data);
|
46
|
-
} catch (err) {
|
47
|
-
fail(err);
|
48
|
-
}
|
49
|
-
},
|
50
|
-
(error) => {
|
51
|
-
!error.config.notLoading && loading.end();
|
52
|
-
fail(error);
|
53
|
-
}
|
54
|
-
);
|
55
|
-
return {
|
56
|
-
get: void 0,
|
57
|
-
post: void 0,
|
58
|
-
delete: void 0,
|
59
|
-
put: void 0,
|
60
|
-
patch: void 0,
|
61
|
-
head: void 0,
|
62
|
-
purge: void 0,
|
63
|
-
options: void 0,
|
64
|
-
link: void 0,
|
65
|
-
unlink: void 0,
|
66
|
-
__instance__: net,
|
67
|
-
__mixin__(extentions) {
|
68
|
-
for (const method2 in extentions) {
|
69
|
-
if (Object.prototype.hasOwnProperty.call(extentions, method2)) {
|
70
|
-
const originFns = this[method2] || {};
|
71
|
-
const fns = extentions[method2];
|
72
|
-
this[method2] = {
|
73
|
-
...originFns,
|
74
|
-
...fns
|
75
|
-
};
|
76
|
-
}
|
77
|
-
}
|
78
|
-
return this;
|
79
|
-
},
|
80
|
-
freeReq: net.request,
|
81
|
-
authReq: (args) => net.request({
|
82
|
-
...args,
|
83
|
-
headers: {
|
84
|
-
...headers.getAuthHeaders(),
|
85
|
-
...args == null ? void 0 : args.headers
|
86
|
-
}
|
87
|
-
})
|
88
|
-
};
|
89
|
-
};
|
90
|
-
exports.useHttp = useHttp;
|
@@ -1,235 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* @Author: zhangyang
|
3
|
-
* @Date: 2023-07-18 16:36:39
|
4
|
-
* @LastEditTime: 2023-09-06 19:40:19
|
5
|
-
* @Description:
|
6
|
-
*/
|
7
|
-
/// <reference types="@uni-helper/axios-adapter/client" />
|
8
|
-
import type { AxiosAdapter, AxiosInstance, AxiosRequestConfig, Method } from 'axios'
|
9
|
-
import axios from 'axios'
|
10
|
-
import { defu } from 'defu'
|
11
|
-
import { createUniAppAxiosAdapter } from '@uni-helper/axios-adapter'
|
12
|
-
|
13
|
-
type Simplify<T> = {
|
14
|
-
[P in keyof T]: T[P];
|
15
|
-
}
|
16
|
-
|
17
|
-
type SetRequired<T, K extends keyof T> = Simplify<
|
18
|
-
// 将要设置为可选类型的结构取出并设置为必选
|
19
|
-
Required<Pick<T, K>> &
|
20
|
-
// 取并集
|
21
|
-
// 排除需要设置为可选属性的结构,其余的保持不变
|
22
|
-
Pick<T, Exclude<keyof T, K>>
|
23
|
-
>
|
24
|
-
|
25
|
-
export type AllMethod = Lowercase<Method>
|
26
|
-
export type Fn<T = any, R = any> = (...args: T[]) => Promise<R>
|
27
|
-
export type Cbks = {
|
28
|
-
[k in AllMethod]?: Record<string, Fn>;
|
29
|
-
}
|
30
|
-
|
31
|
-
type Handlers<R extends Cbks> = {
|
32
|
-
[P in keyof R]?: R[P];
|
33
|
-
}
|
34
|
-
|
35
|
-
type Headers = Record<string, string>
|
36
|
-
|
37
|
-
type Req = <X = any>(config: AxiosRequestConfig<unknown>) => Promise<X>
|
38
|
-
|
39
|
-
interface Prototype {
|
40
|
-
__instance__: AxiosInstance
|
41
|
-
__mixin__<T extends Cbks>(
|
42
|
-
extentions: Handlers<T>,
|
43
|
-
): SetRequired<Handlers<T>, keyof T> & ThisType<Handlers<T>>
|
44
|
-
|
45
|
-
freeReq: Req
|
46
|
-
authReq: Req
|
47
|
-
}
|
48
|
-
|
49
|
-
export enum UsefulContentTypes {
|
50
|
-
JSON = 'application/json; charset=UTF-8',
|
51
|
-
URLEncoded = 'application/x-www-form-urlencoded; charset=UTF-8',
|
52
|
-
FormData = 'multipart/form-data; charset=UTF-8',
|
53
|
-
}
|
54
|
-
|
55
|
-
export interface DefaultMsg {
|
56
|
-
code: number
|
57
|
-
msg: string
|
58
|
-
data: any
|
59
|
-
}
|
60
|
-
|
61
|
-
export interface DefaultHttpConfig<Msg = DefaultMsg> {
|
62
|
-
/**
|
63
|
-
* 基础地址
|
64
|
-
* @default /api
|
65
|
-
*/
|
66
|
-
baseURL: string
|
67
|
-
/**
|
68
|
-
* 动态获取基础地址
|
69
|
-
*/
|
70
|
-
lazyBaseURL?: () => string
|
71
|
-
/**
|
72
|
-
* 默认方法
|
73
|
-
* @default post
|
74
|
-
*/
|
75
|
-
method: AllMethod
|
76
|
-
/**
|
77
|
-
* 超时时间
|
78
|
-
* @default 5e3 5s
|
79
|
-
*/
|
80
|
-
timeout: number
|
81
|
-
/**
|
82
|
-
* 加载函数
|
83
|
-
*/
|
84
|
-
loading: {
|
85
|
-
start: () => void
|
86
|
-
end: () => void
|
87
|
-
}
|
88
|
-
/**
|
89
|
-
* 错误处理函数,进行错误处理或继续抛出错误
|
90
|
-
* 接受各种抛出的错误
|
91
|
-
* @default console.error
|
92
|
-
*/
|
93
|
-
fail: (err: string | number | Error | Msg) => void
|
94
|
-
/**
|
95
|
-
* 结果校验 + 数据解析,判断此次请求是否正常,正常则返回解包数据,否则抛出异常
|
96
|
-
* 不传则默认使用标准 http 状态码作为判断结果,并原样返回
|
97
|
-
* @default () => any | never
|
98
|
-
*/
|
99
|
-
checkFn: (res: Msg) => any | never
|
100
|
-
/**
|
101
|
-
* 请求头
|
102
|
-
*/
|
103
|
-
headers: {
|
104
|
-
/**
|
105
|
-
* 生成公共请求头
|
106
|
-
* @default () => {}
|
107
|
-
*/
|
108
|
-
getCommonHeaders?: () => Headers
|
109
|
-
/**
|
110
|
-
* 生成鉴权请求头
|
111
|
-
* @default () => {}
|
112
|
-
*/
|
113
|
-
getAuthHeaders?: () => Headers
|
114
|
-
}
|
115
|
-
/**
|
116
|
-
* 自定义适配器
|
117
|
-
* 微信小程序等其他非标准环境时传入
|
118
|
-
*/
|
119
|
-
adapter?: AxiosAdapter
|
120
|
-
}
|
121
|
-
|
122
|
-
const defaultConfig: DefaultHttpConfig = {
|
123
|
-
baseURL: '/api',
|
124
|
-
method: 'post',
|
125
|
-
timeout: 5e3,
|
126
|
-
loading: {
|
127
|
-
start: console.log.bind(null, '🚀 ~ http loading start'),
|
128
|
-
end: console.log.bind(null, '🚀 ~ http loading end'),
|
129
|
-
},
|
130
|
-
fail: console.error.bind(null, '🚀 ~ http loading error'),
|
131
|
-
checkFn: res => res,
|
132
|
-
headers: {
|
133
|
-
getCommonHeaders: () => ({}),
|
134
|
-
getAuthHeaders: () => ({}),
|
135
|
-
},
|
136
|
-
}
|
137
|
-
|
138
|
-
declare module 'axios' {
|
139
|
-
export interface AxiosRequestConfig {
|
140
|
-
/**
|
141
|
-
* 禁用 loading 动画
|
142
|
-
* @default false
|
143
|
-
*/
|
144
|
-
notLoading?: boolean
|
145
|
-
}
|
146
|
-
}
|
147
|
-
|
148
|
-
export function useHttp<Msg extends Record<string, any> = DefaultMsg, Fns extends Cbks = Cbks>(config: Partial<DefaultHttpConfig<Msg>> = {}) {
|
149
|
-
const finalConfig = defu(config, defaultConfig)
|
150
|
-
|
151
|
-
const { baseURL, lazyBaseURL, method, timeout, headers, checkFn, loading, fail } = finalConfig
|
152
|
-
|
153
|
-
const net = axios.create({
|
154
|
-
method,
|
155
|
-
timeout,
|
156
|
-
headers: headers.getCommonHeaders!(),
|
157
|
-
adapter: createUniAppAxiosAdapter(),
|
158
|
-
})
|
159
|
-
|
160
|
-
net.interceptors.request.use(
|
161
|
-
(req) => {
|
162
|
-
!req.notLoading && loading.start()
|
163
|
-
if (!req.baseURL)
|
164
|
-
req.baseURL = lazyBaseURL?.() ?? baseURL
|
165
|
-
|
166
|
-
return req
|
167
|
-
},
|
168
|
-
(error) => {
|
169
|
-
fail(error)
|
170
|
-
return Promise.reject(error)
|
171
|
-
},
|
172
|
-
)
|
173
|
-
|
174
|
-
net.interceptors.response.use(
|
175
|
-
(response) => {
|
176
|
-
!response.config.notLoading && loading.end()
|
177
|
-
const data = response.data
|
178
|
-
|
179
|
-
try {
|
180
|
-
return checkFn(data)
|
181
|
-
}
|
182
|
-
catch (err) {
|
183
|
-
// 应用逻辑异常
|
184
|
-
fail(err as any)
|
185
|
-
}
|
186
|
-
},
|
187
|
-
(error) => {
|
188
|
-
!error.config.notLoading && loading.end()
|
189
|
-
// http 异常
|
190
|
-
fail(error)
|
191
|
-
},
|
192
|
-
)
|
193
|
-
|
194
|
-
return {
|
195
|
-
get: undefined,
|
196
|
-
post: undefined,
|
197
|
-
delete: undefined,
|
198
|
-
put: undefined,
|
199
|
-
patch: undefined,
|
200
|
-
head: undefined,
|
201
|
-
purge: undefined,
|
202
|
-
options: undefined,
|
203
|
-
link: undefined,
|
204
|
-
unlink: undefined,
|
205
|
-
__instance__: net,
|
206
|
-
__mixin__(extentions: any) {
|
207
|
-
for (const method in extentions) {
|
208
|
-
if (Object.prototype.hasOwnProperty.call(extentions, method)) {
|
209
|
-
// @ts-expect-error
|
210
|
-
const originFns = this[method] || {}
|
211
|
-
const fns = extentions[method]
|
212
|
-
// @ts-expect-error
|
213
|
-
this[method] = {
|
214
|
-
...originFns,
|
215
|
-
...fns,
|
216
|
-
}
|
217
|
-
}
|
218
|
-
}
|
219
|
-
|
220
|
-
return this
|
221
|
-
},
|
222
|
-
|
223
|
-
freeReq: net.request,
|
224
|
-
authReq: (args: AxiosRequestConfig) =>
|
225
|
-
net.request({
|
226
|
-
...args,
|
227
|
-
headers: {
|
228
|
-
...headers.getAuthHeaders!(),
|
229
|
-
...args?.headers,
|
230
|
-
},
|
231
|
-
}),
|
232
|
-
} as unknown as Handlers<Fns> & Prototype
|
233
|
-
}
|
234
|
-
|
235
|
-
export type Http = ReturnType<typeof useHttp>
|