fix DI in BaseHttpDataSourceOptionsBuilder since inject is not compatible with no injectable classes

This commit is contained in:
Mathias Beaulieu-Duncan 2024-09-02 21:27:25 -04:00
parent 8a1dc9eb36
commit ce880013cc
Signed by: mathias
GPG Key ID: 1C16CF05BAF9162D
3 changed files with 8 additions and 8 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@openharbor/ngx-data", "name": "@openharbor/ngx-data",
"version": "18.0.0-alpha.5", "version": "18.0.0-alpha.6",
"repository": "https://git.openharbor.io/Open-Harbor/ngx-data", "repository": "https://git.openharbor.io/Open-Harbor/ngx-data",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@ -14,7 +14,6 @@ import {
} from "@openharbor/data"; } from "@openharbor/data";
import {Observable, of, throwError} from "rxjs"; import {Observable, of, throwError} from "rxjs";
import {catchError, switchMap} from "rxjs/operators"; import {catchError, switchMap} from "rxjs/operators";
import {inject} from "@angular/core";
export abstract class BaseHttpDataSourceOptionsBuilder<TQuery, TModel> { export abstract class BaseHttpDataSourceOptionsBuilder<TQuery, TModel> {
protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<any>; } = {}; protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<any>; } = {};
@ -22,7 +21,8 @@ export abstract class BaseHttpDataSourceOptionsBuilder<TQuery, TModel> {
protected _defaultCriteria: IQueryCriteria; protected _defaultCriteria: IQueryCriteria;
protected _query: IDataSourceQueryAdapterOptions<TQuery, TModel>; protected _query: IDataSourceQueryAdapterOptions<TQuery, TModel>;
readonly http: HttpClient = inject(HttpClient); constructor(protected readonly http: HttpClient) {
}
createDataSource(): IDataSource<TQuery, TModel> { createDataSource(): IDataSource<TQuery, TModel> {
return new DataSource<TQuery, TModel>(this.createOptions()); return new DataSource<TQuery, TModel>(this.createOptions());

View File

@ -1,4 +1,4 @@
import {Inject, Injectable} from "@angular/core"; import {inject, Inject, Injectable} from "@angular/core";
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { HttpDataSourceOptionsBuilder } from "./HttpDataSourceBuilder"; import { HttpDataSourceOptionsBuilder } from "./HttpDataSourceBuilder";
import { SingleDataSourceOptionsBuilder } from "./SingleObjectDataSourceBuilder"; import { SingleDataSourceOptionsBuilder } from "./SingleObjectDataSourceBuilder";
@ -9,17 +9,17 @@ import { ListDataSourceOptionsBuilder } from "./ListDataSourceBuilder";
providedIn: 'root' providedIn: 'root'
}) })
export class HttpDataSourceService { export class HttpDataSourceService {
@Inject(HttpClient) protected http!: HttpClient; protected http: HttpClient = inject(HttpClient);
builder<TQuery, TModel>() { builder<TQuery, TModel>() {
return new HttpDataSourceOptionsBuilder<TQuery, TModel>(); return new HttpDataSourceOptionsBuilder<TQuery, TModel>(this.http);
} }
singleBuilder<TQuery, TModel>() { singleBuilder<TQuery, TModel>() {
return new SingleDataSourceOptionsBuilder<TQuery, TModel>(); return new SingleDataSourceOptionsBuilder<TQuery, TModel>(this.http);
} }
listBuilder<TQuery, TModel>() { listBuilder<TQuery, TModel>() {
return new ListDataSourceOptionsBuilder<TQuery, TModel>(); return new ListDataSourceOptionsBuilder<TQuery, TModel>(this.http);
} }
} }