Compare commits

..

2 Commits

Author SHA1 Message Date
efa7fbe62e fix: fix upload query 2025-04-06 01:45:29 +08:00
86e6a8686e add export for file 2025-04-03 19:32:21 +08:00
5 changed files with 63 additions and 7 deletions

View File

@@ -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"
} }
} }

View File

@@ -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;

View 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;
};

View File

@@ -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';

View File

@@ -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,