import type { Dataset, DatasetCoreFactory, DatasetCore, Quad, } from "@rdfjs/types"; import ExtendedDatasetFactory from "./ExtendedDatasetFactory"; import { dataset as initializeDatasetCore } from "@rdfjs/dataset"; import type { ExtendedDataset } from "."; /** * Creates a dataset factory that generates ExtendedDatasets * @returns DatasetFactory */ export function createExtendedDatasetFactory(): ExtendedDatasetFactory { const datasetFactory: DatasetCoreFactory = { dataset: (quads?: Dataset | Quad[]): DatasetCore => { return initializeDatasetCore( Array.isArray(quads) ? quads : quads?.toArray(), ); }, }; return new ExtendedDatasetFactory(datasetFactory); } /** * Creates an ExtendedDataset * @param quads: A dataset or array of Quads to initialize the dataset. * @returns Dataset */ export default function createExtendedDataset( quads?: Dataset | Quad[], ): ExtendedDataset { const extendedDatasetFactory = createExtendedDatasetFactory(); return extendedDatasetFactory.dataset(quads); }