oak-general-business/es/features/index.js

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();
}
}
}