diff --git a/libs/json-api/json-api-nestjs-sdk/README.md b/libs/json-api/json-api-nestjs-sdk/README.md index 9f8226c..7d355e6 100644 --- a/libs/json-api/json-api-nestjs-sdk/README.md +++ b/libs/json-api/json-api-nestjs-sdk/README.md @@ -93,8 +93,7 @@ const [addressPost, managerPost, rolesPost, userPost] = await jsonSdk ``` or you can use Angular module: ```typescript -import { JsonApiAngular, AtomicFactory } from 'json-api-nestjs-sdk/json-api-nestjs-sdk.module'; -import { JsonApiSdkService } from 'json-api-nestjs-sdk'; +import { JsonApiAngular, AtomicFactory, JsonApiSdkService } from 'json-api-nestjs-sdk/ngModule'; @Component({ standalone: true, diff --git a/libs/json-api/json-api-nestjs-sdk/ng-package.json b/libs/json-api/json-api-nestjs-sdk/ng-package.json index 4378d43..cb77cf5 100644 --- a/libs/json-api/json-api-nestjs-sdk/ng-package.json +++ b/libs/json-api/json-api-nestjs-sdk/ng-package.json @@ -1,6 +1,6 @@ { "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../../tmp/angular-lib/json-api-nestjs-sdk", + "dest": "../../../tmp/angular-lib/ngModule", "lib": { "entryFile": "../../index.ts" } diff --git a/libs/json-api/json-api-nestjs-sdk/project.json b/libs/json-api/json-api-nestjs-sdk/project.json index 6d8102a..68eeddc 100644 --- a/libs/json-api/json-api-nestjs-sdk/project.json +++ b/libs/json-api/json-api-nestjs-sdk/project.json @@ -51,7 +51,7 @@ "updateBuildableProjectDepsInPackageJson": true, "buildableProjectDepsInPackageJsonType": "peerDependencies", "additionalEntryPoints": [ - "libs/json-api/json-api-nestjs-sdk/src/json-api-nestjs-sdk.module.ts" + "libs/json-api/json-api-nestjs-sdk/src/ngModule.ts" ], "generateExportsField": true } @@ -68,7 +68,7 @@ "updateBuildableProjectDepsInPackageJson": true, "buildableProjectDepsInPackageJsonType": "peerDependencies", "additionalEntryPoints": [ - "libs/json-api/json-api-nestjs-sdk/src/json-api-nestjs-sdk.module.ts" + "libs/json-api/json-api-nestjs-sdk/src/ngModule.ts" ], "generateExportsField": true } diff --git a/libs/json-api/json-api-nestjs-sdk/src/index.ts b/libs/json-api/json-api-nestjs-sdk/src/index.ts index 1cc05bd..93246c3 100644 --- a/libs/json-api/json-api-nestjs-sdk/src/index.ts +++ b/libs/json-api/json-api-nestjs-sdk/src/index.ts @@ -1,4 +1,11 @@ export { JsonApiUtilsService, JsonApiSdkService } from './lib/service'; export * from './lib/json-api-js'; export { adapterForAxios } from './lib/utils'; -export { FilterOperand } from './lib/types'; +export { + FilterOperand, + ResourceObject, + AtomicOperations, + Operands, + QueryField, + QueryParams, +} from './lib/types'; diff --git a/libs/json-api/json-api-nestjs-sdk/src/json-api-nestjs-sdk.module.ts b/libs/json-api/json-api-nestjs-sdk/src/json-api-nestjs-sdk.module.ts deleted file mode 100644 index 75d7fa8..0000000 --- a/libs/json-api/json-api-nestjs-sdk/src/json-api-nestjs-sdk.module.ts +++ /dev/null @@ -1 +0,0 @@ -export { JsonApiAngular, AtomicFactory } from './lib/json-api-angular'; diff --git a/libs/json-api/json-api-nestjs-sdk/src/lib/json-api-angular.ts b/libs/json-api/json-api-nestjs-sdk/src/lib/json-api-angular.ts index db9986d..2998a53 100644 --- a/libs/json-api/json-api-nestjs-sdk/src/lib/json-api-angular.ts +++ b/libs/json-api/json-api-nestjs-sdk/src/lib/json-api-angular.ts @@ -1,5 +1,14 @@ -import { NgModule, ModuleWithProviders, inject } from '@angular/core'; -import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { + NgModule, + ModuleWithProviders, + inject, + makeEnvironmentProviders, +} from '@angular/core'; +import { + HttpClient, + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { HttpInnerClient, JsonSdkConfig } from './types'; import { AtomicFactory, JSON_API_SDK_CONFIG } from './token'; import { resultConfig } from './utils'; @@ -9,51 +18,56 @@ import { AtomicOperationsService, } from './service'; +export const getProviders = (config: JsonSdkConfig) => [ + { + provide: JSON_API_SDK_CONFIG, + useValue: resultConfig(config), + }, + { + provide: JsonApiUtilsService, + useFactory: () => new JsonApiUtilsService(inject(JSON_API_SDK_CONFIG)), + }, + { + provide: JsonApiSdkService, + useFactory: () => + new JsonApiSdkService( + inject(HttpClient as any), + inject(JsonApiUtilsService), + inject(JSON_API_SDK_CONFIG) + ), + }, + { + provide: AtomicFactory, + useFactory: () => { + const jsonApiUtilsService = inject(JsonApiUtilsService); + const config = inject(JSON_API_SDK_CONFIG); + const httpClient = inject(HttpClient as any); + + return () => { + return new AtomicOperationsService( + jsonApiUtilsService, + config, + httpClient + ); + }; + }, + }, +]; + +export const provideJsonApi = (config: JsonSdkConfig) => + makeEnvironmentProviders(getProviders(config)); + @NgModule({ - imports: [HttpClientModule], + imports: [], + providers: [provideHttpClient(withInterceptorsFromDi())], }) export class JsonApiAngular { static forRoot(config: JsonSdkConfig): ModuleWithProviders { return { ngModule: JsonApiAngular, - providers: [ - { - provide: JSON_API_SDK_CONFIG, - useValue: resultConfig(config), - }, - { - provide: JsonApiUtilsService, - useFactory: () => - new JsonApiUtilsService(inject(JSON_API_SDK_CONFIG)), - }, - { - provide: JsonApiSdkService, - useFactory: () => - new JsonApiSdkService( - inject(HttpClient as any), - inject(JsonApiUtilsService), - inject(JSON_API_SDK_CONFIG) - ), - }, - { - provide: AtomicFactory, - useFactory: () => { - const jsonApiUtilsService = inject(JsonApiUtilsService); - const config = inject(JSON_API_SDK_CONFIG); - const httpClient = inject(HttpClient as any); - - return () => { - return new AtomicOperationsService( - jsonApiUtilsService, - config, - httpClient - ); - }; - }, - }, - ], + providers: getProviders(config), }; } } -export { AtomicFactory } from './token'; +export { AtomicFactory, JSON_API_SDK_CONFIG } from './token'; diff --git a/libs/json-api/json-api-nestjs-sdk/src/ngModule.ts b/libs/json-api/json-api-nestjs-sdk/src/ngModule.ts new file mode 100644 index 0000000..d7a6493 --- /dev/null +++ b/libs/json-api/json-api-nestjs-sdk/src/ngModule.ts @@ -0,0 +1,14 @@ +export { + JsonApiAngular, + AtomicFactory, + provideJsonApi, + JSON_API_SDK_CONFIG, + getProviders, +} from './lib/json-api-angular'; +export { JsonApiUtilsService, JsonApiSdkService } from './lib/service'; +export { + FilterOperand, + ResourceObject, + AtomicOperations, + JsonSdkConfig, +} from './lib/types'; diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/README.md b/libs/json-rpc/nestjs-json-rpc-sdk/README.md index 3c9c749..a53a6b2 100644 --- a/libs/json-rpc/nestjs-json-rpc-sdk/README.md +++ b/libs/json-rpc/nestjs-json-rpc-sdk/README.md @@ -217,7 +217,7 @@ import { JsonRpcAngular, JsonRpcAngularConfig, TransportType, -} from '@klerick/nestjs-json-rpc-sdk/json-rpc-sdk.module' +} from '@klerick/nestjs-json-rpc-sdk/ngModule' import { Subject } from 'rxjs'; import { io } from 'socket.io-client'; import { diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/ng-package.json b/libs/json-rpc/nestjs-json-rpc-sdk/ng-package.json index bc57f35..23901e0 100644 --- a/libs/json-rpc/nestjs-json-rpc-sdk/ng-package.json +++ b/libs/json-rpc/nestjs-json-rpc-sdk/ng-package.json @@ -2,6 +2,6 @@ "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../../tmp/angular-lib/nestjs-json-rpc-sdk", "lib": { - "entryFile": "./src/json-rpc-sdk.module.ts" + "entryFile": "./src/ngModule.ts" } } diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/project.json b/libs/json-rpc/nestjs-json-rpc-sdk/project.json index 945a40f..3ce8bd8 100644 --- a/libs/json-rpc/nestjs-json-rpc-sdk/project.json +++ b/libs/json-rpc/nestjs-json-rpc-sdk/project.json @@ -30,8 +30,14 @@ "commands": [ "node tools/scripts/preparation-hybrid-npm-package.mjs nestjs-json-rpc-sdk", "node tools/scripts/preparation-npm-package.mjs nestjs-json-rpc-sdk", - "nx run nestjs-json-rpc-sdk:compile-for-angular", - "cp tmp/angular-lib/nestjs-json-rpc-sdk/esm2022/lib/angular/json-rpc-angular.module.mjs dist/libs/json-rpc/nestjs-json-rpc-sdk/mjs/src/lib/angular/json-rpc-angular.module.js" + { + "command": "nx run nestjs-json-rpc-sdk:compile-for-angular", + "forwardAllArgs": false + }, + { + "command": "cp tmp/angular-lib/nestjs-json-rpc-sdk/esm2022/lib/angular/json-rpc-angular.module.mjs dist/libs/json-rpc/nestjs-json-rpc-sdk/mjs/src/lib/angular/json-rpc-angular.module.js", + "forwardAllArgs": false + } ], "cwd": "./", "parallel": false @@ -52,7 +58,7 @@ "updateBuildableProjectDepsInPackageJson": true, "buildableProjectDepsInPackageJsonType": "peerDependencies", "additionalEntryPoints": [ - "libs/json-rpc/nestjs-json-rpc-sdk/src/json-rpc-sdk.module.ts" + "libs/json-rpc/nestjs-json-rpc-sdk/src/ngModule.ts" ], "generateExportsField": true } @@ -69,7 +75,7 @@ "updateBuildableProjectDepsInPackageJson": true, "buildableProjectDepsInPackageJsonType": "peerDependencies", "additionalEntryPoints": [ - "libs/json-rpc/nestjs-json-rpc-sdk/src/json-rpc-sdk.module.ts" + "libs/json-rpc/nestjs-json-rpc-sdk/src/ngModule.ts" ], "generateExportsField": true } diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/angular/json-rpc-angular.module.ts b/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/angular/json-rpc-angular.module.ts index 3fe46b9..01700c4 100644 --- a/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/angular/json-rpc-angular.module.ts +++ b/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/angular/json-rpc-angular.module.ts @@ -1,11 +1,27 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; -import { HttpClientModule } from '@angular/common/http'; +import { + makeEnvironmentProviders, + ModuleWithProviders, + NgModule, +} from '@angular/core'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; import { JSON_RPC_SDK_CONFIG } from './tokens'; import { JsonRpcAngularConfig } from '../types'; +export const provideJsonRpc = (config: JsonRpcAngularConfig) => + makeEnvironmentProviders([ + { + useValue: config, + provide: JSON_RPC_SDK_CONFIG, + }, + ]); + @NgModule({ - imports: [HttpClientModule], + imports: [], + providers: [provideHttpClient(withInterceptorsFromDi())], }) export class JsonRpcAngular { static forRoot( diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/json-rpc-angular.ts b/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/json-rpc-angular.ts index 9d185b8..8f538e0 100644 --- a/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/json-rpc-angular.ts +++ b/libs/json-rpc/nestjs-json-rpc-sdk/src/lib/json-rpc-angular.ts @@ -1,3 +1,6 @@ -export { JsonRpcAngular } from './angular/json-rpc-angular.module'; +export { + JsonRpcAngular, + provideJsonRpc, +} from './angular/json-rpc-angular.module'; export { JsonRpcAngularConfig, TransportType, Rpc } from './types'; export { JSON_RPC, RPC_BATCH } from './angular/tokens'; diff --git a/libs/json-rpc/nestjs-json-rpc-sdk/src/json-rpc-sdk.module.ts b/libs/json-rpc/nestjs-json-rpc-sdk/src/ngModule.ts similarity index 100% rename from libs/json-rpc/nestjs-json-rpc-sdk/src/json-rpc-sdk.module.ts rename to libs/json-rpc/nestjs-json-rpc-sdk/src/ngModule.ts