Skip to content

Commit 7d5aa9d

Browse files
v0.0.1-alpha.13
1 parent bb82511 commit 7d5aa9d

File tree

4 files changed

+94
-1
lines changed

4 files changed

+94
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@module-federation/aegis",
3-
"version": "0.0.1-alpha.12",
3+
"version": "0.0.1-alpha.13",
44
"main": "lib/",
55
"module": "esm/",
66
"repository": "git@github.com:module-federation/aegis.git",

src/services/federation-service.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
"use strict";
2+
3+
/**
4+
* @returns {Promise<import('../models').ModelSpecification[]>}
5+
*/
6+
export async function importRemoteModels(remoteEntries) {
7+
const label = "\ntime to import remote models";
8+
console.time(label);
9+
10+
const remoteModels = [];
11+
try {
12+
for (const entry of remoteEntries) {
13+
if (entry.type === "model") {
14+
const models = await entry.importRemote();
15+
remoteModels.push(models);
16+
}
17+
}
18+
} catch (e) {
19+
console.error(e);
20+
}
21+
22+
console.timeEnd(label);
23+
24+
if (remoteModels.length === 0) return {};
25+
26+
return remoteModels.reduce((p, c) => ({ ...p, ...c }));
27+
}
28+
29+
/**
30+
* Imports remote service modules.
31+
*/
32+
export async function importRemoteServices(remoteEntries) {
33+
const label = "\ntime to import remote services";
34+
console.time(label);
35+
36+
let services = [];
37+
for (const entry of remoteEntries) {
38+
if (entry.type === "service") {
39+
const service = await entry.importRemote();
40+
services.push(service);
41+
}
42+
}
43+
44+
console.timeEnd(label);
45+
46+
if (services.length === 0) return {};
47+
48+
return services.reduce((p, c) => ({ ...p, ...c }));
49+
}
50+
51+
export async function importRemoteAdapters(remoteEntries) {
52+
const label = "\ntime to import remote adapters";
53+
console.time(label);
54+
55+
let adapters = [];
56+
for (const entry of remoteEntries) {
57+
if (entry.type === "adapter") {
58+
const adapter = await entry.importRemote();
59+
adapters.push(adapter);
60+
}
61+
}
62+
63+
console.timeEnd(label);
64+
65+
if (adapters.length === 0) return {};
66+
67+
return adapters.reduce((p, c) => ({ ...p, ...c }));
68+
}

src/services/persistence-service.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
"use strict";
2+
3+
import DataSource from "../datasources";
4+
5+
export const Persistence = {
6+
async save(model) {
7+
return DataSource.getDataSource(model.getName()).save(model.getId(), model);
8+
},
9+
10+
async find(model) {
11+
return DataSource.getDataSource(model.getName()).find(model.getId());
12+
},
13+
14+
close() {
15+
DataSource.getFactory().close();
16+
},
17+
};

src/services/publish-event.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default async (event, observer) => {
2+
try {
3+
const publishEvent = (await import("microservices/services")).publishEvent;
4+
publishEvent(event, observer);
5+
} catch (error) {
6+
console.error(error);
7+
}
8+
};

0 commit comments

Comments
 (0)