You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
975 B
27 lines
975 B
import type { DatasetFactory, BaseQuad, Dataset } from "@rdfjs/types";
|
|
import WrapperSubscribableDataset from "./WrapperSubscribableDataset";
|
|
|
|
/**
|
|
* A DatasetFactory that returns a WrapperSubscribableDataset given a generic DatasetFactory.
|
|
*/
|
|
export default class WrapperSubscribableDatasetFactory<
|
|
InAndOutQuad extends BaseQuad = BaseQuad,
|
|
> implements DatasetFactory<InAndOutQuad, InAndOutQuad>
|
|
{
|
|
private datasetFactory: DatasetFactory<InAndOutQuad, InAndOutQuad>;
|
|
constructor(datasetFactory: DatasetFactory<InAndOutQuad, InAndOutQuad>) {
|
|
this.datasetFactory = datasetFactory;
|
|
}
|
|
|
|
dataset(
|
|
quads?: Dataset<InAndOutQuad, InAndOutQuad> | InAndOutQuad[],
|
|
): WrapperSubscribableDataset<InAndOutQuad> {
|
|
// Typings are wrong
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
return new WrapperSubscribableDataset(
|
|
this.datasetFactory,
|
|
quads ? this.datasetFactory.dataset(quads) : undefined,
|
|
);
|
|
}
|
|
}
|
|
|