import 'uni-platform/runtime/index' import { isFn, hasOwn } from 'uni-shared' import parseApp from 'uni-platform/runtime/wrapper/app-parser' export default function createSubpackageApp (vm) { const appOptions = parseApp(vm) const app = getApp({ allowDefault: true }) vm.$scope = app const globalData = app.globalData if (globalData) { Object.keys(appOptions.globalData).forEach(name => { if (!hasOwn(globalData, name)) { globalData[name] = appOptions.globalData[name] } }) } Object.keys(appOptions).forEach(name => { if (!hasOwn(app, name)) { app[name] = appOptions[name] } }) if (isFn(appOptions.onShow) && __GLOBAL__.onAppShow) { __GLOBAL__.onAppShow((...args) => { vm.__call_hook('onShow', args) }) } if (isFn(appOptions.onHide) && __GLOBAL__.onAppHide) { __GLOBAL__.onAppHide((...args) => { vm.__call_hook('onHide', args) }) } if (isFn(appOptions.onLaunch)) { const args = __GLOBAL__.getLaunchOptionsSync && __GLOBAL__.getLaunchOptionsSync() vm.__call_hook('onLaunch', args) } return vm }