Compare commits
2 Commits
a7faaca418
...
main
Author | SHA1 | Date | |
---|---|---|---|
efa7fbe62e | |||
86e6a8686e |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@kevisual/query-upload",
|
"name": "@kevisual/query-upload",
|
||||||
"version": "0.0.1",
|
"version": "0.0.2",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/query-upload.js",
|
"main": "dist/query-upload.js",
|
||||||
"types": "dist/query-upload.d.ts",
|
"types": "dist/query-upload.d.ts",
|
||||||
@@ -29,8 +29,9 @@
|
|||||||
"access": "public"
|
"access": "public"
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./dist/query-upload.js",
|
".": "./dist/query-upload-browser.js",
|
||||||
"./query-upload": "./dist/query-upload.js",
|
"./query-upload.js": "./dist/query-upload.js",
|
||||||
"./query-upload-node": "./dist/query-upload-node.js"
|
"./query-upload-browser.js": "./dist/query-upload-browser.js",
|
||||||
|
"./query-upload-node.js": "./dist/query-upload-node.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -3,7 +3,7 @@ interface UploadNProgress {
|
|||||||
done: () => void;
|
done: () => void;
|
||||||
set: (progress: number) => void;
|
set: (progress: number) => void;
|
||||||
}
|
}
|
||||||
type UploadProgressData = {
|
export type UploadProgressData = {
|
||||||
progress: number;
|
progress: number;
|
||||||
progressFixed: number;
|
progressFixed: number;
|
||||||
filename?: string;
|
filename?: string;
|
||||||
|
51
src/query-upload-browser.ts
Normal file
51
src/query-upload-browser.ts
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import { UploadProgress, UploadProgressData } from './core/upload-progress.ts';
|
||||||
|
import { uploadFileChunked } from './core/upload-chunk.ts';
|
||||||
|
import { toFile, uploadFiles, randomId } from './query-upload.ts';
|
||||||
|
|
||||||
|
export { toFile, randomId };
|
||||||
|
export { uploadFiles, uploadFileChunked, UploadProgress };
|
||||||
|
|
||||||
|
type UploadFileProps = {
|
||||||
|
onStart?: () => void;
|
||||||
|
onDone?: () => void;
|
||||||
|
onProgress?: (progress: number, data: UploadProgressData) => void;
|
||||||
|
onSuccess?: (res: any) => void;
|
||||||
|
onError?: (err: any) => void;
|
||||||
|
token?: string;
|
||||||
|
};
|
||||||
|
export type ConvertOpts = {
|
||||||
|
appKey?: string;
|
||||||
|
version?: string;
|
||||||
|
username?: string;
|
||||||
|
directory?: string;
|
||||||
|
isPublic?: boolean;
|
||||||
|
filename?: string;
|
||||||
|
/**
|
||||||
|
* 是否不检查应用文件, 默认 true,默认不检测
|
||||||
|
*/
|
||||||
|
noCheckAppFiles?: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const uploadChunk = async (file: File, opts: ConvertOpts, props?: UploadFileProps) => {
|
||||||
|
const uploadProgress = new UploadProgress({
|
||||||
|
onStart: function () {
|
||||||
|
props?.onStart?.();
|
||||||
|
},
|
||||||
|
onDone: () => {
|
||||||
|
props?.onDone?.();
|
||||||
|
},
|
||||||
|
onProgress: (progress, data) => {
|
||||||
|
props?.onProgress?.(progress, data);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const result = await uploadFileChunked(file, opts, {
|
||||||
|
uploadProgress,
|
||||||
|
token: props?.token,
|
||||||
|
createEventSource: (url: string, searchParams: URLSearchParams) => {
|
||||||
|
return new EventSource(url + '?' + searchParams.toString());
|
||||||
|
},
|
||||||
|
FormDataFn: FormData,
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
@@ -4,3 +4,8 @@ import { uploadFileChunked } from './core/upload-chunk.ts';
|
|||||||
import { UploadProgress } from './core/upload-progress.ts';
|
import { UploadProgress } from './core/upload-progress.ts';
|
||||||
|
|
||||||
export { uploadFiles, uploadFileChunked, UploadProgress };
|
export { uploadFiles, uploadFileChunked, UploadProgress };
|
||||||
|
|
||||||
|
export * from './utils/to-file.ts';
|
||||||
|
export { randomId } from './utils/random-id.ts';
|
||||||
|
|
||||||
|
export { filterFiles } from './utils/filter-files.ts';
|
||||||
|
@@ -1,8 +1,7 @@
|
|||||||
import { defineConfig } from 'tsup';
|
import { defineConfig } from 'tsup';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
entry: ['src/query-upload.ts'],
|
entry: ['src/query-upload.ts', 'src/query-upload-browser.ts'],
|
||||||
|
|
||||||
splitting: false,
|
splitting: false,
|
||||||
sourcemap: false,
|
sourcemap: false,
|
||||||
clean: true,
|
clean: true,
|
||||||
|
Reference in New Issue
Block a user