@onyx-p/imlib-web 2.3.6 → 2.3.8
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/index.esm.js +17 -7
- package/index.umd.js +17 -7
- package/package.json +1 -1
- package/types/types.d.ts +16 -4
package/index.esm.js
CHANGED
@@ -28942,11 +28942,21 @@ async function createSendFunction(fileType, conversation, msgBody, hooks, sendOp
|
|
28942
28942
|
}
|
28943
28943
|
message1.content.user = msgBody.user;
|
28944
28944
|
message1.content.extra = msgBody.extra;
|
28945
|
+
const uploader = imConfig.getUploader();
|
28946
|
+
const prepareResult = await uploader.prepare(files);
|
28947
|
+
const uploadItems = files.map((file, i) => ({
|
28948
|
+
url: prepareResult.urls[i],
|
28949
|
+
file: file
|
28950
|
+
}));
|
28951
|
+
const mediaUploadParams = {
|
28952
|
+
encryptKey: prepareResult.encryptedKey,
|
28953
|
+
items: uploadItems
|
28954
|
+
};
|
28945
28955
|
return internal_sendMessage(conversation, message1, sendOptions, {
|
28946
|
-
|
28947
|
-
task: (message2,
|
28956
|
+
uploadItems: mediaUploadParams,
|
28957
|
+
task: (message2, uploadItems) => {
|
28948
28958
|
return new Promise(resolve => {
|
28949
|
-
|
28959
|
+
uploader.upload(uploadItems, {
|
28950
28960
|
onProgress: progress => hooks?.onProgress?.(progress),
|
28951
28961
|
onError: () => {
|
28952
28962
|
resolve({
|
@@ -28967,7 +28977,7 @@ async function createSendFunction(fileType, conversation, msgBody, hooks, sendOp
|
|
28967
28977
|
});
|
28968
28978
|
}
|
28969
28979
|
async function internal_sendMessage(conversation, message, options, uploadOptions) {
|
28970
|
-
const checkResult = await beforeSend(conversation, message, options);
|
28980
|
+
const checkResult = await beforeSend(conversation, message, options, uploadOptions?.uploadItems);
|
28971
28981
|
if (checkResult.code !== ErrorCode.SUCCESS || !checkResult.message || !checkResult.sentArgs) {
|
28972
28982
|
return {
|
28973
28983
|
code: checkResult.code
|
@@ -28982,7 +28992,7 @@ async function internal_sendMessage(conversation, message, options, uploadOption
|
|
28982
28992
|
sentArgs
|
28983
28993
|
} = checkResult;
|
28984
28994
|
if (isDef(uploadOptions)) {
|
28985
|
-
const uploadResult = await uploadOptions.task(sentMessage, uploadOptions.
|
28995
|
+
const uploadResult = await uploadOptions.task(sentMessage, uploadOptions.uploadItems);
|
28986
28996
|
sentMessage = uploadResult.message;
|
28987
28997
|
if (!uploadResult.finished) {
|
28988
28998
|
const receivedMessage = transSentAttrs2IReceivedMessage(checkResult.message, checkResult.sentArgs, SentStatus.FAILED);
|
@@ -28995,7 +29005,7 @@ async function internal_sendMessage(conversation, message, options, uploadOption
|
|
28995
29005
|
}
|
28996
29006
|
return send(sentMessage, sentArgs);
|
28997
29007
|
}
|
28998
|
-
async function beforeSend(conversation, message, options) {
|
29008
|
+
async function beforeSend(conversation, message, options, uploadOptions) {
|
28999
29009
|
const mediaAttribute = JSON.stringify(filterNullProperty(message.content));
|
29000
29010
|
if (getByteLength(mediaAttribute) > MAX_MESSAGE_CONTENT_BYTES) {
|
29001
29011
|
return {
|
@@ -29014,7 +29024,7 @@ async function beforeSend(conversation, message, options) {
|
|
29014
29024
|
};
|
29015
29025
|
if (options?.onSendBefore) {
|
29016
29026
|
const receivedMessage = transSentAttrs2IReceivedMessage(message, sentArgs);
|
29017
|
-
options.onSendBefore(receivedMessage);
|
29027
|
+
options.onSendBefore(receivedMessage, uploadOptions);
|
29018
29028
|
}
|
29019
29029
|
return {
|
29020
29030
|
code: ErrorCode.SUCCESS,
|
package/index.umd.js
CHANGED
@@ -28948,11 +28948,21 @@
|
|
28948
28948
|
}
|
28949
28949
|
message1.content.user = msgBody.user;
|
28950
28950
|
message1.content.extra = msgBody.extra;
|
28951
|
+
const uploader = imConfig.getUploader();
|
28952
|
+
const prepareResult = await uploader.prepare(files);
|
28953
|
+
const uploadItems = files.map((file, i) => ({
|
28954
|
+
url: prepareResult.urls[i],
|
28955
|
+
file: file
|
28956
|
+
}));
|
28957
|
+
const mediaUploadParams = {
|
28958
|
+
encryptKey: prepareResult.encryptedKey,
|
28959
|
+
items: uploadItems
|
28960
|
+
};
|
28951
28961
|
return internal_sendMessage(conversation, message1, sendOptions, {
|
28952
|
-
|
28953
|
-
task: (message2,
|
28962
|
+
uploadItems: mediaUploadParams,
|
28963
|
+
task: (message2, uploadItems) => {
|
28954
28964
|
return new Promise(resolve => {
|
28955
|
-
|
28965
|
+
uploader.upload(uploadItems, {
|
28956
28966
|
onProgress: progress => hooks?.onProgress?.(progress),
|
28957
28967
|
onError: () => {
|
28958
28968
|
resolve({
|
@@ -28973,7 +28983,7 @@
|
|
28973
28983
|
});
|
28974
28984
|
}
|
28975
28985
|
async function internal_sendMessage(conversation, message, options, uploadOptions) {
|
28976
|
-
const checkResult = await beforeSend(conversation, message, options);
|
28986
|
+
const checkResult = await beforeSend(conversation, message, options, uploadOptions?.uploadItems);
|
28977
28987
|
if (checkResult.code !== exports.ErrorCode.SUCCESS || !checkResult.message || !checkResult.sentArgs) {
|
28978
28988
|
return {
|
28979
28989
|
code: checkResult.code
|
@@ -28988,7 +28998,7 @@
|
|
28988
28998
|
sentArgs
|
28989
28999
|
} = checkResult;
|
28990
29000
|
if (isDef(uploadOptions)) {
|
28991
|
-
const uploadResult = await uploadOptions.task(sentMessage, uploadOptions.
|
29001
|
+
const uploadResult = await uploadOptions.task(sentMessage, uploadOptions.uploadItems);
|
28992
29002
|
sentMessage = uploadResult.message;
|
28993
29003
|
if (!uploadResult.finished) {
|
28994
29004
|
const receivedMessage = transSentAttrs2IReceivedMessage(checkResult.message, checkResult.sentArgs, exports.SentStatus.FAILED);
|
@@ -29001,7 +29011,7 @@
|
|
29001
29011
|
}
|
29002
29012
|
return send(sentMessage, sentArgs);
|
29003
29013
|
}
|
29004
|
-
async function beforeSend(conversation, message, options) {
|
29014
|
+
async function beforeSend(conversation, message, options, uploadOptions) {
|
29005
29015
|
const mediaAttribute = JSON.stringify(filterNullProperty(message.content));
|
29006
29016
|
if (getByteLength(mediaAttribute) > MAX_MESSAGE_CONTENT_BYTES) {
|
29007
29017
|
return {
|
@@ -29020,7 +29030,7 @@
|
|
29020
29030
|
};
|
29021
29031
|
if (options?.onSendBefore) {
|
29022
29032
|
const receivedMessage = transSentAttrs2IReceivedMessage(message, sentArgs);
|
29023
|
-
options.onSendBefore(receivedMessage);
|
29033
|
+
options.onSendBefore(receivedMessage, uploadOptions);
|
29024
29034
|
}
|
29025
29035
|
return {
|
29026
29036
|
code: exports.ErrorCode.SUCCESS,
|
package/package.json
CHANGED
package/types/types.d.ts
CHANGED
@@ -137,7 +137,7 @@ export interface ISendMessageOptions {
|
|
137
137
|
/**
|
138
138
|
* 消息发送之前的回调
|
139
139
|
*/
|
140
|
-
onSendBefore?: (message: IReceivedMessage) => void;
|
140
|
+
onSendBefore?: (message: IReceivedMessage, uploadOptions?: IUploadMessageParams) => void;
|
141
141
|
/**
|
142
142
|
* 重发消息时用到,重发消息的 messageId。
|
143
143
|
* 当要重发消息时所有参数需与原始消息参数一致,messageId 必须存在。
|
@@ -166,11 +166,22 @@ export interface IUploadHooks {
|
|
166
166
|
/**
|
167
167
|
* 文件上传完成回调,可通过修改返回值以修改待发布的消息内容,如实现自定义消息
|
168
168
|
*/
|
169
|
-
onComplete?: (
|
169
|
+
onComplete?: (result: IUploadCompletedResult) => void | BaseMessage;
|
170
|
+
}
|
171
|
+
export type IUploadPrepareResult = {
|
172
|
+
urls: string[];
|
173
|
+
encryptedKey: string;
|
174
|
+
};
|
175
|
+
export interface IUploadMessageParams {
|
176
|
+
items: {
|
177
|
+
url: string;
|
178
|
+
file: Blob;
|
179
|
+
}[];
|
180
|
+
encryptKey: string;
|
170
181
|
}
|
171
182
|
export type IUploadCompletedResult = {
|
172
183
|
urls: string[];
|
173
|
-
encryptedKey
|
184
|
+
encryptedKey: string;
|
174
185
|
};
|
175
186
|
export type IUploadCallback = {
|
176
187
|
onProgress?: (progress: number) => void;
|
@@ -178,8 +189,9 @@ export type IUploadCallback = {
|
|
178
189
|
onError?: (reason: string) => void;
|
179
190
|
};
|
180
191
|
export interface IUploader {
|
181
|
-
upload(
|
192
|
+
upload(params: IUploadMessageParams, callback: IUploadCallback): void;
|
182
193
|
cancel(): void;
|
194
|
+
prepare(files: Blob[]): Promise<IUploadPrepareResult>;
|
183
195
|
}
|
184
196
|
/**
|
185
197
|
* 文件消息配置
|