diff --git a/packages/solid/src/SolidLdoTransactionDataset.ts b/packages/solid/src/SolidLdoTransactionDataset.ts index 212bfba..8c57c0d 100644 --- a/packages/solid/src/SolidLdoTransactionDataset.ts +++ b/packages/solid/src/SolidLdoTransactionDataset.ts @@ -27,6 +27,35 @@ import { InvalidUriError } from "./requester/results/error/InvalidUriError"; import type { DatasetChanges, GraphNode } from "@ldo/rdf-utils"; import { splitChangesByGraph } from "./util/splitChangesByGraph"; +/** + * A SolidLdoTransactionDataset has all the functionality of a SolidLdoDataset + * and represents a transaction to the parent SolidLdoDataset. + * + * It is recommended to use the `startTransaction` method on a SolidLdoDataset + * to initialize this class + * + * @example + * ```typescript + * import { createSolidLdoDataset } from "@ldo/solid"; + * import { ProfileShapeType } from "./.ldo/profile.shapeTypes.ts" + * + * // ... + * + * const solidLdoDataset = createSolidLdoDataset(); + * + * const profileDocument = solidLdoDataset + * .getResource("https://example.com/profile"); + * await profileDocument.read(); + * + * const transaction = solidLdoDataset.startTransaction(); + * + * const profile = transaction + * .using(ProfileShapeType) + * .fromSubject("https://example.com/profile#me"); + * profile.name = "Some Name"; + * await transaction.commitToPod(); + * ``` + */ export class SolidLdoTransactionDataset extends LdoTransactionDataset implements ISolidLdoDataset diff --git a/packages/solid/src/index.ts b/packages/solid/src/index.ts index 22b3108..1eb93cb 100644 --- a/packages/solid/src/index.ts +++ b/packages/solid/src/index.ts @@ -1,6 +1,7 @@ export * from "./createSolidLdoDataset"; export * from "./SolidLdoDataset"; export * from "./SolidLdoDatasetContext"; +export * from "./SolidLdoTransactionDataset"; export * from "./resource/Resource"; export * from "./resource/Container"; diff --git a/packages/solid/src/methods.ts b/packages/solid/src/methods.ts index ccaf5a1..b1945ba 100644 --- a/packages/solid/src/methods.ts +++ b/packages/solid/src/methods.ts @@ -27,7 +27,7 @@ import type { SolidLdoTransactionDataset } from "./SolidLdoTransactionDataset"; * * const cProfile = changeData(profile, resource); * cProfile.name = "My New Name"; - * await commitData(cProfile); + * const result = await commitData(cProfile); * ``` */ export function changeData( @@ -65,7 +65,7 @@ export function changeData( * * const cProfile = changeData(profile, resource); * cProfile.name = "My New Name"; - * await commitData(cProfile); + * const result = await commitData(cProfile); * ``` */ export async function commitData( diff --git a/packages/solid/src/types.ts b/packages/solid/src/types.ts index 45bd75a..e87f63c 100644 --- a/packages/solid/src/types.ts +++ b/packages/solid/src/types.ts @@ -3,6 +3,9 @@ import type { Container } from "./resource/Container"; import type { Leaf } from "./resource/Leaf"; import type { ContainerUri, LeafUri } from "./util/uriTypes"; +/** + * A SolidLdoDataset provides methods for getting Solid resources. + */ export interface ISolidLdoDataset { getResource(uri: ContainerUri, options?: ResourceGetterOptions): Container; getResource(uri: LeafUri, options?: ResourceGetterOptions): Leaf;