feat: merge service

This commit is contained in:
DarkSky
2026-02-13 21:52:11 +08:00
parent 4460604dd3
commit 98e5747fdc
14 changed files with 31 additions and 258 deletions

View File

@@ -1,5 +1,6 @@
import { getCurrentUserQuery } from '@affine/graphql';
import { DatabaseDocReader, DocReader } from '../../../core/doc';
import { createApp } from '../create-app';
import { e2e } from '../test';
@@ -52,4 +53,7 @@ e2e('should init front service', async t => {
const res = await app.GET('/info').expect(200);
t.is(res.body.flavor, 'front');
const docReader = app.get(DocReader);
t.true(docReader instanceof DatabaseDocReader);
});

View File

@@ -159,8 +159,11 @@ export function buildAppModule(env: Env) {
// basic
.use(...FunctionalityModules)
// enable indexer module on graphql server and doc service
.useIf(() => env.flavors.graphql || env.flavors.doc, IndexerModule)
// enable indexer module on graphql, doc and front service
.useIf(
() => env.flavors.graphql || env.flavors.doc || env.flavors.front,
IndexerModule
)
// auth
.use(UserModule, AuthModule, PermissionModule)
@@ -202,8 +205,8 @@ export function buildAppModule(env: Env) {
AccessTokenModule,
QueueDashboardModule
)
// doc service only
.useIf(() => env.flavors.doc, DocServiceModule)
// doc service and front service
.useIf(() => env.flavors.doc || env.flavors.front, DocServiceModule)
// worker for and self-hosted API only for self-host and local development only
.useIf(() => env.dev || env.selfhosted, WorkerModule, SelfhostModule)
// static frontend routes for front flavor

View File

@@ -31,8 +31,8 @@ export class JobExecutor implements OnModuleDestroy {
? difference(QUEUES, [Queue.DOC, Queue.INDEXER])
: [];
// NOTE(@forehalo): only enable doc queue in doc service
if (env.flavors.doc) {
// Enable doc/indexer queues in both doc and front service.
if (env.flavors.doc || env.flavors.front) {
queues.push(Queue.DOC);
// NOTE(@fengmk2): Once the index task cannot be processed in time, it needs to be separated from the doc service and deployed independently.
queues.push(Queue.INDEXER);

View File

@@ -447,7 +447,7 @@ export class RpcDocReader extends DatabaseDocReader {
export const DocReaderProvider: FactoryProvider = {
provide: DocReader,
useFactory: (ref: ModuleRef) => {
if (env.flavors.doc) {
if (env.flavors.doc || env.flavors.front) {
return ref.create(DatabaseDocReader);
}
return ref.create(RpcDocReader);