import type { BaseQuad, DatasetFactory } from "@rdfjs/types"; import type { ISubscribableDataset, ITransactionDatasetFactory } from "./types"; import { TransactionDataset } from "./TransactionDataset"; export class TransactionDatasetFactory implements ITransactionDatasetFactory { private datasetFactory: DatasetFactory; private transactionDatasetFactory: ITransactionDatasetFactory; constructor( datasetFactory: DatasetFactory, transactionDatasetFactory?: ITransactionDatasetFactory, ) { this.datasetFactory = datasetFactory; this.transactionDatasetFactory = transactionDatasetFactory || this; } transactionDataset( parentDataset: ISubscribableDataset, ): TransactionDataset { return new TransactionDataset( parentDataset, this.datasetFactory, this.transactionDatasetFactory, ); } }