Compare commits
No commits in common. "feature/typing-improvement" and "main" have entirely different histories.
feature/ty
...
main
@ -16,7 +16,7 @@ import {Observable, of, throwError} from "rxjs";
|
|||||||
import {catchError, switchMap} from "rxjs/operators";
|
import {catchError, switchMap} from "rxjs/operators";
|
||||||
|
|
||||||
export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TModel extends {}> {
|
export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TModel extends {}> {
|
||||||
protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<unknown>; } = {};
|
protected _commands: { [key: string]: IDataSourceCommandAdapterOptions<any>; } = {};
|
||||||
protected _keyResolver?: (model: TModel) => TModel[keyof TModel];
|
protected _keyResolver?: (model: TModel) => TModel[keyof TModel];
|
||||||
protected _defaultCriteria!: IQueryCriteria;
|
protected _defaultCriteria!: IQueryCriteria;
|
||||||
protected _query!: IDataSourceQueryAdapterOptions<TQuery, TModel>;
|
protected _query!: IDataSourceQueryAdapterOptions<TQuery, TModel>;
|
||||||
@ -93,7 +93,7 @@ export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCrit
|
|||||||
return this._messageErrorHandler(err);
|
return this._messageErrorHandler(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
public addCommandByCallback<TCommand, TCommandResult>(name: string, commandHandler: (command: TCommand) => Observable<TCommandResult>, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<Partial<TCommand>>) {
|
public addCommandByCallback<TCommand, TCommandResult>(name: string, commandHandler: (command: TCommand) => Observable<TCommandResult>, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<TCommand & any>) {
|
||||||
const handleWrapper = (command: TCommand) => {
|
const handleWrapper = (command: TCommand) => {
|
||||||
return commandHandler(command).pipe(catchError(this._handleErrorPipe.bind(this)));
|
return commandHandler(command).pipe(catchError(this._handleErrorPipe.bind(this)));
|
||||||
};
|
};
|
||||||
@ -108,7 +108,7 @@ export abstract class BaseHttpDataSourceOptionsBuilder<TQuery extends IQueryCrit
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public addCommandByUrl<TCommand, TCommandResult>(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<Partial<TCommand>>, beforeCommand?: (command: TCommand) => Observable<TCommand>) {
|
public addCommandByUrl<TCommand, TCommandResult>(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent<TModel>) => Observable<TCommand & any>, beforeCommand?: (command: TCommand) => Observable<TCommand>) {
|
||||||
const handleWrapper = (command: TCommand) => {
|
const handleWrapper = (command: TCommand) => {
|
||||||
const finalBeforeCommand = beforeCommand || (_ => of(command));
|
const finalBeforeCommand = beforeCommand || (_ => of(command));
|
||||||
return finalBeforeCommand(command)
|
return finalBeforeCommand(command)
|
||||||
|
@ -43,7 +43,7 @@ export class HttpDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TModel
|
|||||||
return finalBeforeRead(query)
|
return finalBeforeRead(query)
|
||||||
.pipe(
|
.pipe(
|
||||||
switchMap(finalQuery => {
|
switchMap(finalQuery => {
|
||||||
return queryHandler(finalQuery);
|
return queryHandler(finalQuery as any);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,6 @@ export class SingleDataSourceOptionsBuilder<TQuery extends IQueryCriteria, TMode
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected convertToParams(finalQuery: TQuery) {
|
protected convertToParams(finalQuery: TQuery) {
|
||||||
// todo: could use an alternative method to avoid casting to any
|
|
||||||
return Object.keys(finalQuery).reduce((prev, key) => {
|
return Object.keys(finalQuery).reduce((prev, key) => {
|
||||||
prev[key] = (finalQuery as any)[key]; // Cast finalQuery to any to bypass the error
|
prev[key] = (finalQuery as any)[key]; // Cast finalQuery to any to bypass the error
|
||||||
return prev;
|
return prev;
|
||||||
|
@ -75,7 +75,7 @@ export class GenericRestDataSourceService
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
setResolveCommand<TQuery extends IQueryCriteria, TModel>(options: IDataSourceOptions<TQuery, TModel>, name: string, resolveCommandModel: (event: IResolveCommandModelEvent<TModel>) => Observable<unknown>) {
|
setResolveCommand<TQuery extends IQueryCriteria, TModel>(options: IDataSourceOptions<TQuery, TModel>, name: string, resolveCommandModel: (event: IResolveCommandModelEvent<TModel>) => Observable<any>) {
|
||||||
options.transport.commands[name].resolveCommandModel = resolveCommandModel;
|
options.transport.commands[name].resolveCommandModel = resolveCommandModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user