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.
 
 
 
ldo-compact-fork/packages/dataset/src/ExtendedDatasetFactory.ts

34 lines
998 B

import type {
DatasetFactory,
BaseQuad,
Dataset,
DatasetCoreFactory,
} from "@rdfjs/types";
import ExtendedDataset from "./ExtendedDataset";
/**
* A DatasetFactory that creates an ExtendedDataset given a DatasetCoreFactory.
*/
export default class ExtendedDatasetFactory<
InAndOutQuad extends BaseQuad = BaseQuad,
> implements DatasetFactory<InAndOutQuad, InAndOutQuad>
{
private datasetCoreFactory: DatasetCoreFactory<InAndOutQuad, InAndOutQuad>;
constructor(
datasetCoreFactory: DatasetCoreFactory<InAndOutQuad, InAndOutQuad>,
) {
this.datasetCoreFactory = datasetCoreFactory;
}
dataset(
quads?: Dataset<InAndOutQuad, InAndOutQuad> | InAndOutQuad[],
): ExtendedDataset<InAndOutQuad> {
return new ExtendedDataset(
// The typings are incorrect on the dataset core factory
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
this.datasetCoreFactory.dataset(quads),
this.datasetCoreFactory,
);
}
}