36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
/* eslint-disable prefer-rest-params */
|
|
import type { ITUIChatEngine } from '../interface/engine';
|
|
import Middleware from './middleware';
|
|
import { ERROR_CODE_ENGINE, ERROR_MSG_ENGINE } from '../const';
|
|
|
|
export default function validateInitialization(
|
|
TUIChatEngine: ITUIChatEngine,
|
|
target: any,
|
|
APIList: object,
|
|
) {
|
|
const obj = Object.create(null);
|
|
Object.keys(APIList).forEach((api) => {
|
|
if (!target[api]) {
|
|
return;
|
|
}
|
|
obj[api] = target[api];
|
|
|
|
const validateMiddleware = new Middleware();
|
|
target[api] = function () {
|
|
const args = Array.from(arguments);
|
|
validateMiddleware
|
|
.use((options: any, next: any) => {
|
|
if (TUIChatEngine.isInited) {
|
|
return next();
|
|
}
|
|
return Promise.reject({
|
|
code: ERROR_CODE_ENGINE.NOT_INIT,
|
|
message: `${api} | ${ERROR_MSG_ENGINE.NOT_INIT}`,
|
|
});
|
|
})
|
|
.use((options: any) => obj[api].apply(target, options));
|
|
return validateMiddleware.run(args);
|
|
};
|
|
});
|
|
}
|