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.
38 lines
1.4 KiB
38 lines
1.4 KiB
import type { Dataset, Quad } from "@rdfjs/types";
|
|
import type { ISubscribableDatasetFactory } from "@ldo/subscribable-dataset";
|
|
import { SubscribableDatasetFactory } from "@ldo/subscribable-dataset";
|
|
import { LdoDataset } from "./LdoDataset";
|
|
|
|
/**
|
|
* @category Getting an LdoDataset
|
|
* `LdoDatasetFactory` is a helper class that includes methods for creating LdoDatasets.
|
|
*
|
|
* This class exists for parity with RDF/JS. Most developers will not use it. Instead, it's better to use {@link createLdoDataset}.
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* import { createLdoDatasetFactory } from "@ldo/ldo";
|
|
* import { createExtendedDatasetFactory } from "@ldo/dataset";
|
|
* import { createTransactionDatasetFactory } from "@ldo/subscribable-dataset";
|
|
*
|
|
* const datasetFactory = createExtendedDatasetFactory();
|
|
* const transactionDatasetFactory = createTransactionDatasetFactroy();
|
|
* const ldoDatasetFactory = new LdoDatasetFactory(
|
|
* datasetFactory,
|
|
* transactionDatasetFactory
|
|
* );
|
|
* const ldoDataset = ldoDatasetFactory.dataset(initialDataset);
|
|
* ```
|
|
*/
|
|
export class LdoDatasetFactory
|
|
extends SubscribableDatasetFactory<Quad>
|
|
implements ISubscribableDatasetFactory<Quad>
|
|
{
|
|
dataset(quads?: Dataset<Quad, Quad> | Quad[] | undefined): LdoDataset {
|
|
return new LdoDataset(
|
|
this.datasetFactory,
|
|
this.transactionDatasetFactory,
|
|
this.datasetFactory.dataset(quads),
|
|
);
|
|
}
|
|
}
|
|
|