@beradrian/ngx-resource-core
Version:
Core of resource library
140 lines (139 loc) • 4.63 kB
TypeScript
export interface IResourceParamsBase {
url?: string;
pathPrefix?: string;
path?: string;
headers?: any;
body?: any;
params?: any;
query?: any;
}
export interface IResourceParams extends IResourceParamsBase {
rootNode?: string;
removeTrailingSlash?: boolean;
addTimestamp?: boolean | string;
withCredentials?: boolean;
lean?: boolean;
mutateBody?: boolean;
asPromise?: boolean;
keepEmptyBody?: boolean;
requestBodyType?: ResourceRequestBodyType;
responseBodyType?: ResourceResponseBodyType;
queryMappingMethod?: ResourceQueryMappingMethod;
asResourceResponse?: boolean;
[prop: string]: any;
}
export interface IResourceAction extends IResourceParams {
method?: ResourceRequestMethod;
expectJsonArray?: boolean;
resultFactory?: IResourceResultFactory;
map?: IResourceResponseMap;
filter?: IResourceResponseFilter;
}
export interface IResourceResponseMap {
(item: any, options: IResourceActionInner): any;
}
export interface IResourceResponseFilter {
(item: any, options: IResourceActionInner): boolean;
}
export interface IResourceResultFactory {
(item: any, options: IResourceActionInner): any;
}
export interface IResourceActionAttributes {
body: any;
query: any;
params: any;
onSuccess(data: any): any;
onError(data: any): any;
}
export interface IResourceActionInner {
actionAttributes?: IResourceActionAttributes;
actionOptions?: IResourceAction;
resolvedOptions?: IResourceParamsBase;
queryMappingMethod?: ResourceQueryMappingMethod;
usedInPath?: {
[key: string]: boolean;
};
mainPromise?: Promise<any>;
isModel?: boolean;
requestOptions?: IResourceRequest;
returnData?: any;
}
export interface IResourceRequest {
method?: ResourceRequestMethod;
headers?: any;
url?: string;
withCredentials?: boolean;
body?: any;
query?: {
[prop: string]: string;
};
responseBodyType?: ResourceResponseBodyType;
requestBodyType?: ResourceRequestBodyType;
}
export interface IResourceHandlerResponse {
promise: Promise<IResourceResponse>;
abort?(): void;
}
export interface IResourceResponse<B = any> {
status: number;
headers?: any;
body?: B;
}
export interface IResourceMethodStrictBase<IB, IQ, IP, O, R> {
(body: IB, query: IQ, params: IP, onSuccess?: (data: O) => any, onError?: (err: IResourceResponse) => any): R;
(body: IB, query: IQ, onSuccess?: (data: O) => any, onError?: (err: IResourceResponse) => any): R;
(body: IB, onSuccess?: (data: O) => any, onError?: (err: IResourceResponse) => any): R;
(onSuccess?: (data: O) => any, onError?: (err: IResourceResponse) => any): R;
}
export interface IResourceMethodBase<IB, O, R> extends IResourceMethodStrictBase<IB, any, any, O, R> {
}
export interface IResourceMethodStrict<IB, IQ, IP, O> extends IResourceMethodStrictBase<IB, IQ, IP, O, Promise<O>> {
}
export interface IResourceMethod<IB, O> extends IResourceMethodBase<IB, O, Promise<O>> {
}
export interface IResourceMethodResultStrict<IB, IQ, IP, O> extends IResourceMethodStrictBase<IB, IQ, IP, O, ResourceResult<O>> {
}
export interface IResourceMethodResult<IB, O> extends IResourceMethodBase<IB, O, ResourceResult<O>> {
}
export interface IResourceMethodStrictFull<IB, IQ, IP, O> extends IResourceMethodStrictBase<IB, IQ, IP, O, Promise<IResourceResponse<O>>> {
}
export interface IResourceMethodFull<IB, O> extends IResourceMethodBase<IB, O, Promise<IResourceResponse<O>>> {
}
export interface IResourceMethodResultStrictFull<IB, IQ, IP, O> extends IResourceMethodStrictBase<IB, IQ, IP, O, ResourceResult<IResourceResponse<O>>> {
}
export interface IResourceMethodResultFull<IB, O> extends IResourceMethodBase<IB, O, ResourceResult<IResourceResponse<O>>> {
}
export declare type ResourceResult<R extends {}> = R & {
$resolved?: boolean;
$promise?: Promise<R>;
$abort?(): void;
};
export declare enum ResourceRequestBodyType {
NONE = 0,
JSON = 1,
FORM = 2,
FORM_DATA = 3,
TEXT = 4,
BLOB = 5,
ARRAY_BUFFER = 6,
}
export declare enum ResourceResponseBodyType {
Text = 1,
Json = 2,
ArrayBuffer = 3,
Blob = 4,
}
export declare enum ResourceRequestMethod {
Get = 1,
Post = 2,
Put = 3,
Delete = 4,
Options = 5,
Head = 6,
Patch = 7,
}
export declare enum ResourceQueryMappingMethod {
Plain = 1,
Bracket = 2,
JQueryParamsBracket = 3,
}