Skip to content

Commit edb765d

Browse files
authored
Merge branch 'main' into docs/framework-api-typedoc-markdown
2 parents 9bddd21 + 7ac16b0 commit edb765d

45 files changed

Lines changed: 1133 additions & 20 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/social-mammals-beam.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
'@o2s/configs.integrations': minor
3+
'@o2s/api-harmonization': minor
4+
'@o2s/framework': minor
5+
'@o2s/docs': minor
6+
'@o2s/integrations.mocked': minor
7+
---
8+
9+
add createModule() factory for custom framework modules
10+
11+
Enable developers to define new base modules beyond the core modules using createModule(). Custom modules are registered directly in app.module.ts, following the same pattern as SurveyJS.
12+
13+
Includes example documents module in mocked integration, custom-module Turbo generator, and documentation guide.

apps/api-harmonization/src/app.module.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { HttpModule } from '@nestjs/axios';
22
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
33
import { ConfigModule } from '@nestjs/config';
44
import { APP_GUARD, Reflector } from '@nestjs/core';
5-
import { Auth } from '@o2s/configs.integrations';
5+
import { Auth, Documents } from '@o2s/configs.integrations';
66
import * as SurveyJs from '@o2s/modules.surveyjs/api-harmonization';
77

88
import { LoggerModule, LoggerService } from '@o2s/utils.logger';
@@ -26,6 +26,7 @@ import {
2626
Search,
2727
Tickets,
2828
Users,
29+
createModule,
2930
} from '@o2s/framework/modules';
3031

3132
import * as ArticleList from '@o2s/blocks.article-list/api-harmonization';
@@ -102,6 +103,14 @@ export const PaymentsBaseModule = Payments.Module.register(AppConfig);
102103
export const CheckoutBaseModule = Checkout.Module.register(AppConfig);
103104
export const AuthModuleBaseModule = AuthModule.Module.register(AppConfig);
104105

106+
const DocumentsModule = createModule('documents');
107+
export const DocumentsBaseModule = DocumentsModule.register({
108+
name: 'documents',
109+
service: Documents.Service,
110+
serviceImpl: Documents.MockedService,
111+
controller: Documents.Controller,
112+
});
113+
105114
@Module({
106115
imports: [
107116
HttpModule.register({ global: true }),
@@ -133,6 +142,8 @@ export const AuthModuleBaseModule = AuthModule.Module.register(AppConfig);
133142
CheckoutBaseModule,
134143
AuthModuleBaseModule,
135144

145+
DocumentsBaseModule,
146+
136147
PageModule.register(AppConfig),
137148
RoutesModule.register(AppConfig),
138149
LoginPageModule.register(AppConfig),

apps/docs/docs/guides/integrations/adding-new-integrations.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,9 @@ You can achieve that by following a few steps:
154154
:::tip
155155
For a full example about injecting dependencies, you can check the source code od the [Strapi CMS integration](../../integrations/cms/strapi/overview.md).
156156
:::
157+
158+
## Implementing custom modules
159+
160+
If your project uses [custom modules](./extending-framework-modules.md) (modules beyond the core framework modules), you can add implementations for them to your integration. The process is the same as for core modulescreate a service extending the custom module's abstract service and wire it into the integration's `CustomModules` export.
161+
162+
For a complete walkthrough, see [Extending framework modules](./extending-framework-modules.md).

0 commit comments

Comments
 (0)