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/subscribable-dataset/src/TransactionDatasetFactory.ts

27 lines
1.0 KiB

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