import type { Dataset, DatasetFactory, Quad } from "@rdfjs/types"; import type { WrapperSubscribableDataset } from "."; import { createDataset } from "@ldobjects/dataset"; import WrapperSubscribableDatasetFactory from "./WrapperSubscribableDatasetFactory"; /** * Creates a dataset factory that generates a SubscribableDataset * @returns DatasetFactory for SubscribableDataset */ export function createWrapperSubscribableDatasetFactory(): WrapperSubscribableDatasetFactory { const datasetFactory: DatasetFactory = { dataset: (quads?: Dataset | Quad[]): Dataset => { return createDataset(quads); }, }; return new WrapperSubscribableDatasetFactory(datasetFactory); } /** * Creates a SubscribableDataset * @param quads: A dataset or array of Quads to initialize the dataset. * @returns Dataset */ export default function createWrapperSubscribableDataset( quads?: Dataset | Quad[], ): WrapperSubscribableDataset { const wrapperSubscribableDatasetFactory = createWrapperSubscribableDatasetFactory(); return wrapperSubscribableDatasetFactory.dataset(quads); }