chore: lazy load sub app in share collection (#1569)
This commit is contained in:
parent
3cf06be893
commit
2de165c1eb
@ -99,7 +99,7 @@ pgOnly()('collection sync', () => {
|
|||||||
|
|
||||||
const sub1 = await mainApp.appManager.getApplication('sub1');
|
const sub1 = await mainApp.appManager.getApplication('sub1');
|
||||||
|
|
||||||
const getSub1MapRecord = async (app) => {
|
const getSubAppMapRecord = async (app) => {
|
||||||
return await app.db.getRepository('applicationPlugins').findOne({
|
return await app.db.getRepository('applicationPlugins').findOne({
|
||||||
filter: {
|
filter: {
|
||||||
name: 'map',
|
name: 'map',
|
||||||
@ -107,10 +107,10 @@ pgOnly()('collection sync', () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
expect((await getSub1MapRecord(sub1)).get('enabled')).toBeFalsy();
|
expect((await getSubAppMapRecord(sub1)).get('enabled')).toBeFalsy();
|
||||||
await mainApp.pm.enable('map');
|
await mainApp.pm.enable('map');
|
||||||
|
|
||||||
expect((await getSub1MapRecord(sub1)).get('enabled')).toBeTruthy();
|
expect((await getSubAppMapRecord(sub1)).get('enabled')).toBeTruthy();
|
||||||
|
|
||||||
await mainApp.db.getRepository('applications').create({
|
await mainApp.db.getRepository('applications').create({
|
||||||
values: {
|
values: {
|
||||||
@ -119,7 +119,7 @@ pgOnly()('collection sync', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const sub2 = await mainApp.appManager.getApplication('sub2');
|
const sub2 = await mainApp.appManager.getApplication('sub2');
|
||||||
expect((await getSub1MapRecord(sub2)).get('enabled')).toBeTruthy();
|
expect((await getSubAppMapRecord(sub2)).get('enabled')).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not sync roles in sub app', async () => {
|
it('should not sync roles in sub app', async () => {
|
||||||
|
@ -194,14 +194,6 @@ export class MultiAppShareCollectionPlugin extends Plugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 应用加载完之后,需要将子应用全部载入到内存中
|
|
||||||
this.app.on('afterLoad', async () => {
|
|
||||||
const subApplications = await this.db.getRepository('applications').find();
|
|
||||||
for (const subApplication of subApplications) {
|
|
||||||
await this.app.appManager.getApplication(subApplication.name);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.app.on('beforeSubAppInstall', async ({ subApp }) => {
|
this.app.on('beforeSubAppInstall', async ({ subApp }) => {
|
||||||
const subAppPluginsCollection = subApp.db.getCollection('applicationPlugins');
|
const subAppPluginsCollection = subApp.db.getCollection('applicationPlugins');
|
||||||
const mainAppPluginsCollection = this.app.db.getCollection('applicationPlugins');
|
const mainAppPluginsCollection = this.app.db.getCollection('applicationPlugins');
|
||||||
|
Loading…
Reference in New Issue
Block a user