1
0
mirror of synced 2026-04-03 06:28:35 +08:00

feat(core,data-source): 数据源支持mock

This commit is contained in:
roymondchen
2023-10-02 17:10:15 +08:00
parent 56dfacbaaa
commit 4c46a4e575
6 changed files with 38 additions and 19 deletions

View File

@@ -43,13 +43,13 @@ class DataSourceManager extends EventEmitter {
public data: DataSourceManagerData = {};
constructor({ app }: DataSourceManagerOptions) {
constructor({ app, useMock }: DataSourceManagerOptions) {
super();
this.app = app;
app.dsl?.dataSources?.forEach((config) => {
this.addDataSource(config);
this.addDataSource(config, useMock);
});
}
@@ -57,7 +57,7 @@ class DataSourceManager extends EventEmitter {
return this.dataSourceMap.get(id);
}
public async addDataSource(config?: DataSourceSchema) {
public async addDataSource(config?: DataSourceSchema, useMock?: boolean) {
if (!config) return;
let ds: DataSource;
@@ -66,6 +66,7 @@ class DataSourceManager extends EventEmitter {
app: this.app,
schema: config as HttpDataSourceSchema,
request: this.app.request,
useMock,
});
} else {
// eslint-disable-next-line @typescript-eslint/naming-convention
@@ -74,6 +75,7 @@ class DataSourceManager extends EventEmitter {
ds = new DataSourceClass({
app: this.app,
schema: config,
useMock,
});
}
@@ -81,6 +83,10 @@ class DataSourceManager extends EventEmitter {
this.data[ds.id] = ds.data;
ds.on('change', () => {
this.setData(ds);
});
const beforeInit: ((...args: any[]) => any)[] = [];
const afterInit: ((...args: any[]) => any)[] = [];
@@ -103,12 +109,6 @@ class DataSourceManager extends EventEmitter {
for (const method of afterInit) {
await method({ params: {}, dataSource: ds, app: this.app });
}
this.setData(ds);
ds.on('change', () => {
this.setData(ds);
});
}
public setData(ds: DataSource) {