alcaeus
Version:
Hydra Core hypermedia-aware client library
31 lines • 1.6 kB
TypeScript
import type { BaseQuad, DatasetCore, NamedNode } from '@rdfjs/types';
import type { RdfResource, ResourceIdentifier } from '@tpluscode/rdfine';
import type { ResourceFactory } from '@tpluscode/rdfine/lib/ResourceFactory';
import type { RdfResourceCore } from '@tpluscode/rdfine/RdfResource';
import type { GraphPointer } from 'clownface';
import type { CachedResourceFactory } from 'alcaeus-model/ResourceFactory.js';
import type { HydraEnvironment, HydraResponse, ResourceStore, ResourceStoreEntry } from './alcaeus.js';
export interface RepresentationInference {
(dataset: DatasetCore, env: HydraEnvironment): Iterable<BaseQuad>;
}
interface ResourceStoreInit<D extends DatasetCore> {
dataset: D;
environment: HydraEnvironment<D>;
inferences: RepresentationInference[];
factory?: ResourceFactory<D, RdfResource<D>>;
}
export default class ResourceStoreImpl<D extends DatasetCore> implements ResourceStore<D> {
private readonly dataset;
private readonly inferences;
readonly factory: CachedResourceFactory<D, RdfResource<D>>;
private readonly rootNodes;
private readonly responses;
private readonly environment;
constructor({ dataset, inferences, factory, environment }: ResourceStoreInit<D>);
clone(): ResourceStore<D>;
get<T extends RdfResourceCore<D>>(idOrPointer: NamedNode | GraphPointer<ResourceIdentifier, D>): Required<HydraResponse<D, T>> | undefined;
set(graph: NamedNode, { response, dataset, rootResource }: ResourceStoreEntry<D>): Promise<void>;
private tripleToQuad;
}
export {};
//# sourceMappingURL=ResourceStore.d.ts.map