Skip to content

Commit 671e54e

Browse files
authored
优化项目结构 (#504)
1 parent 94e349d commit 671e54e

24 files changed

+261
-122
lines changed

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
{
3232
"name": "winddies",
3333
"email": "[email protected]"
34+
},
35+
{
36+
"name": "yinxulai",
37+
"email": "[email protected]"
3438
}
3539
],
3640
"devDependencies": {

src/__tests__/utils.test.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/__tests__/api.test.ts renamed to src/api/index.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { getUploadUrl } from '../api'
2-
import { DEFAULT_CHUNK_SIZE, Config } from '../upload/base'
1+
import { DEFAULT_CHUNK_SIZE, Config } from '../upload'
32
import { region } from '../config'
43

4+
import { getUploadUrl } from '.'
5+
56
jest.mock('../utils', () => ({
67
request: () => Promise.resolve({
78
data: {

src/api.ts renamed to src/api/index.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import * as utils from './utils'
2-
import { regionUphostMap } from './config'
3-
import { urlSafeBase64Encode } from './base64'
4-
import { Config, UploadInfo } from './upload'
1+
import * as utils from '../utils'
2+
import { regionUphostMap } from '../config'
3+
import { Config, UploadInfo } from '../upload'
54

65
interface UpHosts {
76
data: {
@@ -47,7 +46,7 @@ export async function getUploadUrl(config: UploadUrlConfig, token: string): Prom
4746
*/
4847
function getBaseUrl(bucket: string, key: string | null | undefined, uploadInfo: UploadInfo) {
4948
const { url, id } = uploadInfo
50-
return `${url}/buckets/${bucket}/objects/${key != null ? urlSafeBase64Encode(key) : '~'}/uploads/${id}`
49+
return `${url}/buckets/${bucket}/objects/${key != null ? utils.urlSafeBase64Encode(key) : '~'}/uploads/${id}`
5150
}
5251

5352
export interface InitPartsData {
@@ -69,7 +68,7 @@ export function initUploadParts(
6968
key: string | null | undefined,
7069
uploadUrl: string
7170
): utils.Response<InitPartsData> {
72-
const url = `${uploadUrl}/buckets/${bucket}/objects/${key != null ? urlSafeBase64Encode(key) : '~'}/uploads`
71+
const url = `${uploadUrl}/buckets/${bucket}/objects/${key != null ? utils.urlSafeBase64Encode(key) : '~'}/uploads`
7372
return utils.request<InitPartsData>(
7473
url,
7574
{
File renamed without changes.

src/__tests__/image.test.ts renamed to src/image/index.test.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import { imageView2, imageMogr2, watermark, imageInfo } from '../image'
2-
import { urlSafeBase64Encode } from '../base64'
1+
import { urlSafeBase64Encode } from '../utils'
2+
3+
import { imageView2, imageMogr2, watermark } from '.'
34

45
describe('image func test', () => {
5-
const domain = 'http://otxza7yo2.bkt.clouddn.com'
6-
const key = 'test.png'
6+
const domain = 'http://otxza7yo2.bkt.clouddn.com'
7+
const key = 'test.png'
78

89
test('imageView2', () => {
910
let m = {
@@ -41,7 +42,7 @@ describe('image func test', () => {
4142
})
4243

4344
test('watermark', () => {
44-
let m ={
45+
let m = {
4546
fop: 'watermark',
4647
mode: 1,
4748
image: 'http://www.b1.qiniudn.com/images/logo-2.png',
@@ -56,7 +57,7 @@ describe('image func test', () => {
5657
'/dissolve/100/dx/100/dy/100'
5758
)
5859
m.mode = 3
59-
expect(()=> {
60+
expect(() => {
6061
watermark(m, key, domain)
6162
}).toThrow('mode is wrong')
6263
})

src/image.ts renamed to src/image/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { request } from './utils'
2-
import { urlSafeBase64Encode } from './base64'
1+
import { request, urlSafeBase64Encode } from '../utils'
32

43
export interface ImageViewOptions {
54
mode: number

src/index.ts

Lines changed: 8 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,13 @@
1-
import createUploadManager, { Extra, Config, UploadOptions, UploadProgress } from './upload'
2-
import { Observable, IObserver } from './observable'
3-
import { CustomError } from './utils'
4-
import { UploadCompleteData } from './api'
5-
import compressImage from './compress'
6-
import Logger from './logger'
7-
8-
/**
9-
* @param file 上传文件
10-
* @param key 目标文件名
11-
* @param token 上传凭证
12-
* @param putExtra 上传文件的相关资源信息配置
13-
* @param config 上传任务的配置
14-
* @returns 返回用于上传任务的可观察对象
15-
*/
16-
function upload(
17-
file: File,
18-
key: string | null | undefined,
19-
token: string,
20-
putExtra?: Partial<Extra>,
21-
config?: Partial<Config>
22-
): Observable<UploadProgress, CustomError, UploadCompleteData> {
23-
const options: UploadOptions = {
24-
file,
25-
key,
26-
token,
27-
putExtra,
28-
config
29-
}
30-
31-
// 为每个任务创建单独的 Logger
32-
const logger = new Logger(token, config?.disableStatisticsReport, config?.debugLogLevel)
33-
return new Observable((observer: IObserver<UploadProgress, CustomError, UploadCompleteData>) => {
34-
const manager = createUploadManager(options, {
35-
onData: (data: UploadProgress) => observer.next(data),
36-
onError: (err: CustomError) => observer.error(err),
37-
onComplete: (res: any) => observer.complete(res)
38-
}, logger)
39-
manager.putFile()
40-
return manager.stop.bind(manager)
41-
})
42-
}
1+
export { imageMogr2, watermark, imageInfo, exif, pipeline } from './image'
2+
export { deleteUploadedChunks, getUploadUrl } from './api'
3+
export { default as upload } from './upload'
4+
export { region } from './config'
435

446
export {
7+
compressImage,
8+
CompressResult,
9+
urlSafeBase64Encode,
10+
urlSafeBase64Decode,
4511
getHeadersForMkFile,
4612
getHeadersForChunkUpload
4713
} from './utils'
48-
49-
export { urlSafeBase64Encode, urlSafeBase64Decode } from './base64'
50-
51-
export { CompressResult } from './compress'
52-
53-
export { deleteUploadedChunks, getUploadUrl } from './api'
54-
export { imageMogr2, watermark, imageInfo, exif, pipeline } from './image'
55-
export { region } from './config'
56-
57-
export { upload, compressImage }

src/logger/index.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ afterAll(() => {
2929
})
3030

3131
describe('test logger', () => {
32-
test('test level', () => {
32+
test('level', () => {
3333
const infoLogger = new Logger('', true, 'INFO')
3434
infoLogger.info('test1')
3535
expect(logMessage).toStrictEqual([`Qiniu-JS-SDK [INFO][1]: `, 'test1'])
@@ -78,7 +78,7 @@ describe('test logger', () => {
7878
expect(errorMessage).toStrictEqual([])
7979
})
8080

81-
test('test unique id', () => {
81+
test('unique id', () => {
8282
// @ts-ignore
8383
const startId = Logger.id
8484
new Logger('', true, 'OFF')
@@ -88,7 +88,7 @@ describe('test logger', () => {
8888
expect(last.id).toStrictEqual(startId + 3)
8989
})
9090

91-
test('test report', () => {
91+
test('report', () => {
9292
const logger1 = new Logger('', false, 'OFF')
9393
logger1.report(null as any)
9494
expect(isCallReport).toBeTruthy()

src/logger/report-v3.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ describe('test report-v3', () => {
6161
size: 1
6262
}
6363

64-
test('test stringify send Data', () => {
64+
test('stringify send Data', () => {
6565
reportV3('token', testData, 3)
6666
mockXHR.changeStatusAndState(0, 0)
6767
expect(mockXHR.sendData).toBe([
@@ -78,7 +78,7 @@ describe('test report-v3', () => {
7878
].join(','))
7979
})
8080

81-
test('test retry', () => {
81+
test('retry', () => {
8282
mockXHR.openCount = 0
8383
reportV3('token', testData)
8484
for (let index = 1; index <= 10; index++) {

0 commit comments

Comments
 (0)