@giszhc/file-utils 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/types/types.d.ts +165 -0
package/package.json
CHANGED
package/types/types.d.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文件读取类型定义
|
|
3
|
+
* - text: 读取为文本内容
|
|
4
|
+
* - arrayBuffer: 读取为 ArrayBuffer(二进制数据)
|
|
5
|
+
* - dataURL: 读取为 Data URL(Base64 编码)
|
|
6
|
+
* - binaryString: 读取为二进制字符串
|
|
7
|
+
*/
|
|
8
|
+
export type ReadFileType = 'text' | 'arrayBuffer' | 'dataURL' | 'binaryString';
|
|
9
|
+
/**
|
|
10
|
+
* 图片压缩选项配置
|
|
11
|
+
*/
|
|
12
|
+
export interface CompressOptions {
|
|
13
|
+
/**
|
|
14
|
+
* 压缩质量
|
|
15
|
+
* 范围:0.1 - 1.0
|
|
16
|
+
* 默认值:0.8(80% 质量)
|
|
17
|
+
* @example 0.5 表示 50% 质量
|
|
18
|
+
*/
|
|
19
|
+
quality?: number;
|
|
20
|
+
/**
|
|
21
|
+
* 最大宽度(像素)
|
|
22
|
+
* 如果原图宽度超过此值,将等比例缩放
|
|
23
|
+
* 默认值:无限制
|
|
24
|
+
*/
|
|
25
|
+
maxWidth?: number;
|
|
26
|
+
/**
|
|
27
|
+
* 最大高度(像素)
|
|
28
|
+
* 如果原图高度超过此值,将等比例缩放
|
|
29
|
+
* 默认值:无限制
|
|
30
|
+
*/
|
|
31
|
+
maxHeight?: number;
|
|
32
|
+
/**
|
|
33
|
+
* 输出图片的 MIME 类型
|
|
34
|
+
* 默认值:'image/jpeg'
|
|
35
|
+
* 支持的值:'image/jpeg', 'image/png', 'image/webp' 等
|
|
36
|
+
*/
|
|
37
|
+
mimeType?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 下载选项配置
|
|
41
|
+
*/
|
|
42
|
+
export interface DownloadOptions {
|
|
43
|
+
/**
|
|
44
|
+
* 目标文件名(包含扩展名)
|
|
45
|
+
* 如果不指定,将尝试从 URL 或 Content-Disposition 头中提取
|
|
46
|
+
*/
|
|
47
|
+
filename?: string;
|
|
48
|
+
/**
|
|
49
|
+
* 是否在新窗口打开
|
|
50
|
+
* 默认值:false(直接下载)
|
|
51
|
+
*/
|
|
52
|
+
newWindow?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Fetch API 的 RequestInit 配置
|
|
55
|
+
* 可用于设置请求头、授权信息、请求方法等
|
|
56
|
+
* @example
|
|
57
|
+
* // 设置授权请求头
|
|
58
|
+
* fetchOptions: {
|
|
59
|
+
* headers: {
|
|
60
|
+
* 'Authorization': 'Bearer token123'
|
|
61
|
+
* }
|
|
62
|
+
* }
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* // 设置 POST 请求和请求体
|
|
66
|
+
* fetchOptions: {
|
|
67
|
+
* method: 'POST',
|
|
68
|
+
* body: JSON.stringify({ id: 123 })
|
|
69
|
+
* }
|
|
70
|
+
*/
|
|
71
|
+
fetchOptions?: RequestInit;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 文件生成选项配置
|
|
75
|
+
* 用于控制文件生成后的行为
|
|
76
|
+
*/
|
|
77
|
+
export interface GenerateOptions {
|
|
78
|
+
/**
|
|
79
|
+
* 是否直接下载生成的文件
|
|
80
|
+
* 默认值:true(直接下载)
|
|
81
|
+
* 如果设置为 false,将返回 File 对象而不触发下载
|
|
82
|
+
*/
|
|
83
|
+
download?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* 字符编码
|
|
86
|
+
* 默认值:'utf-8'
|
|
87
|
+
*/
|
|
88
|
+
encoding?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 文件信息接口
|
|
92
|
+
* 用于描述文件的基本属性
|
|
93
|
+
*/
|
|
94
|
+
export interface IFileInfo {
|
|
95
|
+
/** 文件名 */
|
|
96
|
+
name: string;
|
|
97
|
+
/** 文件大小(字节) */
|
|
98
|
+
size: number;
|
|
99
|
+
/** MIME 类型 */
|
|
100
|
+
type: string;
|
|
101
|
+
/** 最后修改时间戳 */
|
|
102
|
+
lastModified: number;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 文件验证结果接口
|
|
106
|
+
* 用于返回文件验证的结果
|
|
107
|
+
*/
|
|
108
|
+
export interface IValidationResult {
|
|
109
|
+
/** 是否通过验证 */
|
|
110
|
+
valid: boolean;
|
|
111
|
+
/** 错误信息列表 */
|
|
112
|
+
errors: string[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 文件验证选项配置
|
|
116
|
+
* 用于指定文件验证的规则
|
|
117
|
+
*/
|
|
118
|
+
export interface IFileValidationOptions {
|
|
119
|
+
/**
|
|
120
|
+
* 接受的文件类型数组
|
|
121
|
+
* 支持:MIME 类型('image/jpeg')、通配符('image/*')、扩展名('.jpg')
|
|
122
|
+
*/
|
|
123
|
+
acceptTypes?: string[];
|
|
124
|
+
/**
|
|
125
|
+
* 最大文件大小(字节)
|
|
126
|
+
* @example 2 * 1024 * 1024 表示 2MB
|
|
127
|
+
*/
|
|
128
|
+
maxSize?: number;
|
|
129
|
+
/**
|
|
130
|
+
* 是否必须为图片
|
|
131
|
+
* 默认值:false
|
|
132
|
+
*/
|
|
133
|
+
mustBeImage?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* 最小宽度(像素,仅对图片有效)
|
|
136
|
+
*/
|
|
137
|
+
minWidth?: number;
|
|
138
|
+
/**
|
|
139
|
+
* 最大宽度(像素,仅对图片有效)
|
|
140
|
+
*/
|
|
141
|
+
maxWidth?: number;
|
|
142
|
+
/**
|
|
143
|
+
* 最小高度(像素,仅对图片有效)
|
|
144
|
+
*/
|
|
145
|
+
minHeight?: number;
|
|
146
|
+
/**
|
|
147
|
+
* 最大高度(像素,仅对图片有效)
|
|
148
|
+
*/
|
|
149
|
+
maxHeight?: number;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* 复制选项配置
|
|
153
|
+
*/
|
|
154
|
+
export interface CopyOptions {
|
|
155
|
+
/**
|
|
156
|
+
* 复制成功时的回调函数
|
|
157
|
+
* @param text - 被复制的文本
|
|
158
|
+
*/
|
|
159
|
+
onSuccess?: (text: string) => void;
|
|
160
|
+
/**
|
|
161
|
+
* 复制失败时的回调函数
|
|
162
|
+
* @param error - 错误信息
|
|
163
|
+
*/
|
|
164
|
+
onError?: (error: Error) => void;
|
|
165
|
+
}
|