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

56 lines
2.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.initialize = exports.create = void 0;
const tslib_1 = require("tslib");
const token_1 = require("./token");
const extraFile_1 = require("./extraFile");
const application_1 = require("./application");
const config_1 = require("./config");
const template_1 = require("./template");
const wechatSdk_1 = require("./wechatSdk");
const wechatMenu_1 = require("./wechatMenu");
const wechatPublicTag_1 = require("./wechatPublicTag");
const userWechatPublicTag_1 = require("./userWechatPublicTag");
const theme_1 = tslib_1.__importDefault(require("./theme"));
function create(basicFeatures) {
const token = new token_1.Token(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment);
const application = new application_1.Application(basicFeatures.cache, basicFeatures.localStorage);
const wechatMenu = new wechatMenu_1.WechatMenu(basicFeatures.cache, basicFeatures.localStorage);
const wechatPublicTag = new wechatPublicTag_1.WechatPublicTag(basicFeatures.cache, basicFeatures.localStorage);
const userWechatPublicTag = new userWechatPublicTag_1.UserWechatPublicTag(basicFeatures.cache, basicFeatures.localStorage);
const extraFile = new extraFile_1.ExtraFile(basicFeatures.cache, application);
const config = new config_1.Config(basicFeatures.cache);
const template = new template_1.Template(basicFeatures.cache);
const wechatSdk = new wechatSdk_1.WechatSdk(basicFeatures.cache, basicFeatures.localStorage, basicFeatures.environment);
const theme = new theme_1.default(basicFeatures.localStorage);
return {
token,
extraFile,
application,
config,
template,
wechatSdk,
theme,
wechatMenu,
wechatPublicTag,
userWechatPublicTag,
};
}
exports.create = create;
async function initialize(features, access, config) {
const location = features.navigator.getLocation();
const searchParams = new URLSearchParams(location.search);
const appId = searchParams.get('appId');
await features.application.initialize(access.http.hostname, appId, config?.applicationExtraProjection);
if (process.env.OAK_PLATFORM === 'web') {
features.wechatSdk.setLandingUrl(window.location.href);
}
// 小程序自动登录
if (process.env.OAK_PLATFORM === 'wechatMp' && !config?.dontAutoLoginInWechatmp) {
if (!features.token.getTokenValue()) {
await features.token.loginWechatMp();
}
}
}
exports.initialize = initialize;