Skip to content

Commit

Permalink
remove ajaxPost / ajaxGet generic arguments when redundant
Browse files Browse the repository at this point in the history
  • Loading branch information
olmobrutall committed Oct 25, 2019
1 parent c4b8275 commit 99ea65e
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 28 deletions.
20 changes: 10 additions & 10 deletions Signum.React/Scripts/Finder.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1059,39 +1059,39 @@ export type AddToLite<T> = T extends Entity ? Lite<T> : T;
export module API {

export function fetchQueryDescription(queryKey: string): Promise<QueryDescription> {
return ajaxGet<QueryDescription>({ url: "~/api/query/description/" + queryKey });
return ajaxGet({ url: "~/api/query/description/" + queryKey });
}

export function fetchQueryEntity(queryKey: string): Promise<QueryEntity> {
return ajaxGet<QueryEntity>({ url: "~/api/query/queryEntity/" + queryKey });
return ajaxGet({ url: "~/api/query/queryEntity/" + queryKey });
}

export function executeQuery(request: QueryRequest, signal?: AbortSignal): Promise<ResultTable> {
return ajaxPost<ResultTable>({ url: "~/api/query/executeQuery", signal }, request);
return ajaxPost({ url: "~/api/query/executeQuery", signal }, request);
}

export function queryValue(request: QueryValueRequest, avoidNotifyPendingRequest: boolean | undefined = undefined, signal?: AbortSignal): Promise<any> {
return ajaxPost<any>({ url: "~/api/query/queryValue", avoidNotifyPendingRequests: avoidNotifyPendingRequest, signal }, request);
return ajaxPost({ url: "~/api/query/queryValue", avoidNotifyPendingRequests: avoidNotifyPendingRequest, signal }, request);
}

export function fetchEntitiesWithFilters(request: QueryEntitiesRequest): Promise<Lite<Entity>[]> {
return ajaxPost<Lite<Entity>[]>({ url: "~/api/query/entitiesWithFilter" }, request);
return ajaxPost({ url: "~/api/query/entitiesWithFilter" }, request);
}

export function fetchAllLites(request: { types: string }): Promise<Lite<Entity>[]> {
return ajaxGet<Lite<Entity>[]>({
return ajaxGet({
url: "~/api/query/allLites?" + QueryString.stringify(request)
});
}

export function findTypeLike(request: { subString: string, count: number }): Promise<Lite<TypeEntity>[]> {
return ajaxGet<Lite<TypeEntity>[]>({
return ajaxGet({
url: "~/api/query/findTypeLike?" + QueryString.stringify(request)
});
}

export function findLiteLike(request: AutocompleteRequest, signal?: AbortSignal): Promise<Lite<Entity>[]> {
return ajaxGet<Lite<Entity>[]>({ url: "~/api/query/findLiteLike?" + QueryString.stringify(request), signal });
return ajaxGet({ url: "~/api/query/findLiteLike?" + QueryString.stringify(request), signal });
}

export interface AutocompleteRequest {
Expand All @@ -1101,11 +1101,11 @@ export module API {
}

export function FindRowsLike(request: AutocompleteQueryRequest, signal?: AbortSignal): Promise<ResultTable> {
return ajaxPost<ResultTable>({ url: "~/api/query/findRowsLike", signal }, request);
return ajaxPost({ url: "~/api/query/findRowsLike", signal }, request);
}

export function parseTokens(queryKey: string, tokens: { token: string, options: SubTokensOptions }[]): Promise<QueryToken[]> {
return ajaxPost<QueryToken[]>({ url: "~/api/query/parseTokens" }, { queryKey, tokens });
return ajaxPost({ url: "~/api/query/parseTokens" }, { queryKey, tokens });
}

export function getSubTokens(queryKey: string, token: QueryToken | undefined, options: SubTokensOptions): Promise<QueryToken[]> {
Expand Down
12 changes: 6 additions & 6 deletions Signum.React/Scripts/Navigator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ export module API {
}

export function fetchAll<T extends Entity>(type: Type<T>): Promise<Array<T>> {
return ajaxGet<Array<T>>({ url: "~/api/fetchAll/" + type.typeName });
return ajaxGet({ url: "~/api/fetchAll/" + type.typeName });
}


Expand Down Expand Up @@ -742,7 +742,7 @@ export module API {
const typeName = getTypeName(type);
let idVal = id;

return ajaxGet<Entity>({ url: "~/api/entity/" + typeName + "/" + id });
return ajaxGet({ url: "~/api/entity/" + typeName + "/" + id });
}


Expand All @@ -754,22 +754,22 @@ export module API {
const typeName = (typeOrLite as Lite<any>).EntityType || getTypeName(typeOrLite as PseudoType);
let idVal = (typeOrLite as Lite<any>).id != null ? (typeOrLite as Lite<any>).id : id;

return ajaxGet<EntityPack<Entity>>({ url: "~/api/entityPack/" + typeName + "/" + idVal });
return ajaxGet({ url: "~/api/entityPack/" + typeName + "/" + idVal });
}


export function fetchEntityPackEntity<T extends Entity>(entity: T): Promise<EntityPack<T>> {

return ajaxPost<EntityPack<T>>({ url: "~/api/entityPackEntity" }, entity);
return ajaxPost({ url: "~/api/entityPackEntity" }, entity);
}

export function validateEntity(entity: ModifiableEntity): Promise<void> {
return ajaxPost<void>({ url: "~/api/validateEntity" }, entity);
return ajaxPost({ url: "~/api/validateEntity" }, entity);
}

export function getType(typeName: string): Promise<TypeEntity | null> {

return ajaxGet<TypeEntity>({ url: `~/api/reflection/typeEntity/${typeName}` });
return ajaxGet({ url: `~/api/reflection/typeEntity/${typeName}` });
}
}

Expand Down
24 changes: 12 additions & 12 deletions Signum.React/Scripts/Operations.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -480,57 +480,57 @@ export function isEntityOperation(operationType: OperationType) {
export namespace API {

export function construct<T extends Entity>(type: string, operationKey: string | ConstructSymbol_Simple<T>, ...args: any[]): Promise<EntityPack<T>> {
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/construct" }, { operationKey: getOperationKey(operationKey), args, type });
return ajaxPost({ url: "~/api/operation/construct" }, { operationKey: getOperationKey(operationKey), args, type });
}

export function constructFromEntity<T extends Entity, F extends Entity>(entity: F, operationKey: string | ConstructSymbol_From<T, F>, ...args: any[]): Promise<EntityPack<T>> {
GraphExplorer.propagateAll(entity, args);
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/constructFromEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
return ajaxPost({ url: "~/api/operation/constructFromEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
}

export function constructFromLite<T extends Entity, F extends Entity>(lite: Lite<F>, operationKey: string | ConstructSymbol_From<T, F>, ...args: any[]): Promise<EntityPack<T>> {
GraphExplorer.propagateAll(lite, args);
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/constructFromLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
return ajaxPost({ url: "~/api/operation/constructFromLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
}

export function constructFromMultiple<T extends Entity, F extends Entity>(lites: Lite<F>[], operationKey: string | ConstructSymbol_From<T, F>, ...args: any[]): Promise<ErrorReport> {
GraphExplorer.propagateAll(lites, args);
return ajaxPost<ErrorReport>({ url: "~/api/operation/constructFromMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
return ajaxPost({ url: "~/api/operation/constructFromMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
}

export function constructFromMany<T extends Entity, F extends Entity>(lites: Lite<F>[], operationKey: string | ConstructSymbol_From<T, F>, ...args: any[]): Promise<EntityPack<T>> {
GraphExplorer.propagateAll(lites, args);
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/constructFromMany" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
return ajaxPost({ url: "~/api/operation/constructFromMany" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
}

export function executeEntity<T extends Entity>(entity: T, operationKey: string | ExecuteSymbol<T>, ...args: any[]): Promise<EntityPack<T>> {
GraphExplorer.propagateAll(entity, args);
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/executeEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
return ajaxPost({ url: "~/api/operation/executeEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
}

export function executeLite<T extends Entity>(lite: Lite<T>, operationKey: string | ExecuteSymbol<T>, ...args: any[]): Promise<EntityPack<T>> {
GraphExplorer.propagateAll(lite, args);
return ajaxPost<EntityPack<T>>({ url: "~/api/operation/executeLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
return ajaxPost({ url: "~/api/operation/executeLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
}

export function executeMultiple<T extends Entity>(lites: Lite<T>[], operationKey: string | ExecuteSymbol<T>, ...args: any[]): Promise<ErrorReport> {
GraphExplorer.propagateAll(lites, args);
return ajaxPost<ErrorReport>({ url: "~/api/operation/executeMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
return ajaxPost({ url: "~/api/operation/executeMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
}

export function deleteEntity<T extends Entity>(entity: T, operationKey: string | DeleteSymbol<T>, ...args: any[]): Promise<void> {
GraphExplorer.propagateAll(entity, args);
return ajaxPost<void>({ url: "~/api/operation/deleteEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
return ajaxPost({ url: "~/api/operation/deleteEntity" }, { entity: entity, operationKey: getOperationKey(operationKey), args: args } as EntityOperationRequest);
}

export function deleteLite<T extends Entity>(lite: Lite<T>, operationKey: string | DeleteSymbol<T>, ...args: any[]): Promise<void> {
GraphExplorer.propagateAll(lite, args);
return ajaxPost<void>({ url: "~/api/operation/deleteLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
return ajaxPost({ url: "~/api/operation/deleteLite" }, { lite: lite, operationKey: getOperationKey(operationKey), args: args } as LiteOperationRequest);
}

export function deleteMultiple<T extends Entity>(lites: Lite<T>[], operationKey: string | DeleteSymbol<T>, ...args: any[]): Promise<ErrorReport> {
GraphExplorer.propagateAll(lites, args);
return ajaxPost<ErrorReport>({ url: "~/api/operation/deleteMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
return ajaxPost({ url: "~/api/operation/deleteMultiple" }, { lites: lites, operationKey: getOperationKey(operationKey), args: args } as MultiOperationRequest);
}

export interface ErrorReport {
Expand Down Expand Up @@ -576,7 +576,7 @@ export namespace API {


export function stateCanExecutes<T extends Entity>(lites: Lite<T>[], operationKeys: string[]): Promise<CanExecutesResponse> {
return ajaxPost<CanExecutesResponse>({ url: "~/api/operation/stateCanExecutes" }, { lites, operationKeys });
return ajaxPost({ url: "~/api/operation/stateCanExecutes" }, { lites, operationKeys });
}

export interface CanExecutesResponse {
Expand Down

1 comment on commit 99ea65e

@olmobrutall
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove ajaxGet / ajaxPost generic parameter

Looks like Typescript is able to infer the generic parameter from the target type.
image

So we can remove some duplication in all the API modules.

This is the regex that you can run in your own React project:

FIND: (ajaxGet|ajaxPost)<.*?>\(
REPL: $1(

Please sign in to comment.