54 lines
2.4 KiB
JavaScript
54 lines
2.4 KiB
JavaScript
import { Token } from './token';
|
|
import { ExtraFile } from './extraFile';
|
|
import { Application } from './application';
|
|
import { Config } from './config';
|
|
import { Template } from './template';
|
|
import { WechatSdk } from './wechatSdk';
|
|
import { WechatMenu } from './wechatMenu';
|
|
import { WechatPublicTag } from './wechatPublicTag';
|
|
import { UserWechatPublicTag } from './userWechatPublicTag';
|
|
import Theme from './theme';
|
|
import { oakGetPackageJsonVersion } from '../utils/appVersion';
|
|
export function create(basicFeatures) {
|
|
const application = new Application(basicFeatures.cache, basicFeatures.localStorage, oakGetPackageJsonVersion());
|
|
const token = new Token(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment, application);
|
|
const wechatMenu = new WechatMenu(basicFeatures.cache, basicFeatures.localStorage);
|
|
const wechatPublicTag = new WechatPublicTag(basicFeatures.cache, basicFeatures.localStorage);
|
|
const userWechatPublicTag = new UserWechatPublicTag(basicFeatures.cache, basicFeatures.localStorage);
|
|
const extraFile = new ExtraFile(basicFeatures.cache, application);
|
|
const config = new Config(basicFeatures.cache);
|
|
const template = new Template(basicFeatures.cache);
|
|
const wechatSdk = new WechatSdk(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment);
|
|
const theme = new Theme(basicFeatures.localStorage);
|
|
return {
|
|
token,
|
|
extraFile,
|
|
application,
|
|
config,
|
|
template,
|
|
wechatSdk,
|
|
theme,
|
|
wechatMenu,
|
|
wechatPublicTag,
|
|
userWechatPublicTag,
|
|
};
|
|
}
|
|
import { rewriteOperation, rewriteSelection } from '../utils/selectionRewriter';
|
|
export async function initialize(features, access, config, clazzes) {
|
|
features.cache.registerSelectionRewriter(rewriteSelection);
|
|
features.cache.registerOperationRewriter(rewriteOperation);
|
|
await features.application.initialize(oakGetPackageJsonVersion(), access.http.hostname, undefined, config?.applicationExtraProjection);
|
|
if (process.env.OAK_PLATFORM === 'web') {
|
|
features.wechatSdk.setLandingUrl(window.location.href);
|
|
}
|
|
if (clazzes) {
|
|
features.extraFile.registerCos(clazzes);
|
|
}
|
|
// 小程序自动登录
|
|
if (process.env.OAK_PLATFORM === 'wechatMp' && !config?.dontAutoLoginInWechatmp) {
|
|
if (!features.token.getTokenValue()) {
|
|
await features.token.loginWechatMp();
|
|
}
|
|
}
|
|
}
|