rest-client-sdk
Version:
Rest Client SDK for API
35 lines (34 loc) • 1.43 kB
TypeScript
import Mapping from './Mapping';
import type RestClientSdkInterface from './RestClientSdkInterface';
import type { Config } from './RestClientSdkInterface';
import { Token } from './TokenGenerator/types';
import TokenStorageInterface from './TokenStorageInterface';
import UnitOfWork from './UnitOfWork';
import AbstractClient from './client/AbstractClient';
import SerializerInterface from './serializer/SerializerInterface';
import { Logger } from './utils/logging';
declare type Entity = any;
export declare type MetadataDefinition = {
entity: Entity;
list: Iterable<Entity>;
};
export declare type SdkMetadata = Record<string, MetadataDefinition>;
declare class RestClientSdk<M extends SdkMetadata> implements RestClientSdkInterface<M> {
#private;
config: Config;
tokenStorage: TokenStorageInterface<Token>;
serializer: SerializerInterface;
mapping: Mapping;
unitOfWork: UnitOfWork;
readonly logger?: Logger;
constructor(tokenStorage: TokenStorageInterface<Token>, config: Config, mapping: Mapping, serializer?: SerializerInterface);
/**
* get a repository by it's metadata "key" attribute
*
* @param {string} key the repository "key" (the first argument of `new ClassMetadata`)
*/
getRepository<K extends keyof M & string>(key: K): AbstractClient<M[K]>;
private _mergeWithBaseConfig;
private checkConfigValidity;
}
export default RestClientSdk;