UNPKG

heracles

Version:

Hydra Core hypermedia-aware client library

84 lines (70 loc) 2.33 kB
export declare interface IHeracles { resourceFactory:IResourceFactory; loadResource(uri:string):Promise<IHydraResource>; invokeOperation(operation:IOperation, uri:string, body:any, mediaType?:string):Promise<IHydraResource>; } export declare interface IResource { id:string; types:string[]; } export declare interface IApiDocumentation extends IResource { classes:Array<IClass>; getClass(classId:string):IClass; getOperations(classUri:string):Array<ISupportedOperation>; getOperations(classUri:string, predicateUri:string):Array<ISupportedOperation>; getProperties(classUri:string):Array<ISupportedProperty>; getEntrypoint():Promise<IHydraResource> } export interface IClass extends IDocumentedResource { supportedOperations:Array<ISupportedOperation>; supportedProperties:Array<ISupportedProperty>; } export interface IDocumentedResource extends IResource { title:string; description:string; } export interface ISupportedProperty extends IDocumentedResource { readable:boolean; writable:boolean; required:boolean; property:IRdfProperty; } export interface ISupportedOperation extends IDocumentedResource { method:string; expects:IClass; returns:IClass; requiresInput:boolean; } export interface IRdfProperty extends IDocumentedResource { range:IClass; domain:IClass; supportedOperations:Array<ISupportedOperation>; } export interface IOperation { title:string; description:string; method:string; expects:IClass; returns:IClass; requiresInput:boolean; invoke(body:any, mediaType?:string); } export interface IHydraResource extends IResource { operations:Array<IOperation>; apiDocumentation:IApiDocumentation; } export interface IPartialCollectionView extends IHydraResource { first:IHydraResource; previous:IHydraResource; next:IHydraResource; last:IHydraResource; collection:IHydraResource; } export interface IResourceFactory { createResource(heracles:IHeracles, obj:Object, apiDocumentation:IApiDocumentation, resources, typeOverride?:string):IResource } export interface IStatusCodeDescription { code:number, description:string; } export default IHeracles;