Compare commits

...

2 Commits

4 changed files with 6 additions and 5 deletions

View File

@ -16,7 +16,7 @@ import {Observable, of, throwError} from "rxjs";
import {catchError, switchMap} from "rxjs/operators";
export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TModel extends {}> {
protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<any>; } = {};
protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<unknown>; } = {};
protected _keyResolver?: (model: TModel) => TModel[keyof TModel];
protected _defaultCriteria!: IQueryCriteria;
protected _query!: IDataSourceQueryAdapterOptions<TQuery, TModel>;
@ -93,7 +93,7 @@ export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCrit
return this._messageErrorHandler(err);
}
public addCommandByCallback<TCommand, TCommandResult>(name: string, commandHandler: (command: TCommand) => Observable<TCommandResult>, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<TCommand & any>) {
public addCommandByCallback<TCommand, TCommandResult>(name: string, commandHandler: (command: TCommand) => Observable<TCommandResult>, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<Partial<TCommand>>) {
const handleWrapper = (command: TCommand) => {
return commandHandler(command).pipe(catchError(this._handleErrorPipe.bind(this)));
};
@ -108,7 +108,7 @@ export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCrit
return this;
}
public addCommandByUrl<TCommand, TCommandResult>(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<TCommand & any>, beforeCommand?: (command: TCommand) => Observable<TCommand>) {
public addCommandByUrl<TCommand, TCommandResult>(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<Partial<TCommand>>, beforeCommand?: (command: TCommand) => Observable<TCommand>) {
const handleWrapper = (command: TCommand) => {
const finalBeforeCommand = beforeCommand || (_ => of(command));
return finalBeforeCommand(command)

View File

@ -43,7 +43,7 @@ export class HttpDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TModel
return finalBeforeRead(query)
.pipe(
switchMap(finalQuery => {
return queryHandler(finalQuery as any);
return queryHandler(finalQuery);
})
);
}

View File

@ -45,6 +45,7 @@ export class SingleDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TMode
}
protected convertToParams(finalQuery: TQuery) {
// todo: could use an alternative method to avoid casting to any
return Object.keys(finalQuery).reduce((prev, key) => {
prev[key] = (finalQuery as any)[key]; // Cast finalQuery to any to bypass the error
return prev;

View File

@ -75,7 +75,7 @@ export class GenericRestDataSourceService
};
}
setResolveCommand<TQuery extends IQueryCriteria, TModel>(options: IDataSourceOptions<TQuery, TModel>, name: string, resolveCommandModel: (event: IResolveCommandModelEvent<TModel>) => Observable<any>) {
setResolveCommand<TQuery extends IQueryCriteria, TModel>(options: IDataSourceOptions<TQuery, TModel>, name: string, resolveCommandModel: (event: IResolveCommandModelEvent<TModel>) => Observable<unknown>) {
options.transport.commands[name].resolveCommandModel = resolveCommandModel;
}