Merge pull request #115 from o-development/feat/useLdoForm

Feat/use ldo form
main
jaxoncreed 3 weeks ago committed by GitHub
commit 1a0870ecf3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      lerna.json
  2. 76
      package-lock.json
  3. 6
      packages/cli/package.json
  4. 8
      packages/connected-nextgraph/package.json
  5. 8
      packages/connected-solid/package.json
  6. 4
      packages/connected/package.json
  7. 4
      packages/jsonld-dataset-proxy/package.json
  8. 6
      packages/ldo/package.json
  9. 10
      packages/react/package.json
  10. 1
      packages/react/src/methods/change/types.ts
  11. 30
      packages/react/src/methods/change/useChangeDataset.ts
  12. 4
      packages/react/src/methods/change/useChangeMatchObject.ts
  13. 4
      packages/react/src/methods/change/useChangeMatchSubject.ts
  14. 4
      packages/react/src/methods/change/useChangeSubject.ts
  15. 4
      packages/schema-converter-shex/package.json
  16. 8
      packages/solid-react/package.json
  17. 6
      packages/solid-type-index/package.json
  18. 2
      packages/subscribable-dataset/package.json
  19. 13
      packages/subscribable-dataset/src/TransactionDataset.ts
  20. 1
      packages/subscribable-dataset/src/types.ts
  21. 10
      packages/svelte/package.json

@ -1,4 +1,4 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "1.0.0-alpha.31"
"version": "1.0.0-alpha.33"
}

76
package-lock.json generated

@ -46461,12 +46461,12 @@
},
"packages/cli": {
"name": "@ldo/cli",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@jeswr/shacl2shex": "^1.1.0",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/schema-converter-shex": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/schema-converter-shex": "^1.0.0-alpha.32",
"@shexjs/parser": "^1.0.0-alpha.24",
"child-process-promise": "^2.2.1",
"commander": "^9.3.0",
@ -46523,11 +46523,11 @@
},
"packages/connected": {
"name": "@ldo/connected",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30"
},
"devDependencies": {
@ -46546,12 +46546,12 @@
},
"packages/connected-nextgraph": {
"name": "@ldo/connected-nextgraph",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6",
@ -46559,7 +46559,7 @@
},
"devDependencies": {
"@inrupt/solid-client-authn-core": "^3.0.0",
"@ldo/cli": "^1.0.0-alpha.31",
"@ldo/cli": "^1.0.0-alpha.32",
"@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2",
"@solid/community-server": "8.0.0-alpha.0",
@ -46649,12 +46649,12 @@
},
"packages/connected-solid": {
"name": "@ldo/connected-solid",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6",
@ -46663,7 +46663,7 @@
},
"devDependencies": {
"@inrupt/solid-client-authn-core": "^3.0.0",
"@ldo/cli": "^1.0.0-alpha.31",
"@ldo/cli": "^1.0.0-alpha.32",
"@ldo/test-solid-server": "^1.0.0-alpha.28",
"@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2",
@ -47006,11 +47006,11 @@
},
"packages/jsonld-dataset-proxy": {
"name": "@ldo/jsonld-dataset-proxy",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"jsonld2graphobject": "^0.0.4"
},
"devDependencies": {
@ -47041,12 +47041,12 @@
},
"packages/ldo": {
"name": "@ldo/ldo",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"buffer": "^6.0.3",
"readable-stream": "^4.3.0"
},
@ -47166,14 +47166,14 @@
},
"packages/react": {
"name": "@ldo/react",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"license": "MIT",
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"cross-fetch": "^3.1.6"
},
"devDependencies": {
@ -48428,7 +48428,7 @@
},
"packages/schema-converter-shex": {
"name": "@ldo/schema-converter-shex",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/traverser-shexj": "^1.0.0-alpha.28",
@ -48436,7 +48436,7 @@
"jsonld2graphobject": "^0.0.5"
},
"devDependencies": {
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@shexjs/parser": "^1.0.0-alpha.24",
"@types/jsonld": "^1.5.6",
"@types/shexj": "^2.1.3",
@ -48492,13 +48492,13 @@
},
"packages/solid-react": {
"name": "@ldo/solid-react",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"license": "MIT",
"dependencies": {
"@inrupt/solid-client-authn-browser": "^3.0.0",
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected-solid": "^1.0.0-alpha.31",
"@ldo/react": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/connected-solid": "^1.0.0-alpha.32",
"@ldo/react": "^1.0.0-alpha.33",
"cross-fetch": "^3.1.6"
},
"devDependencies": {
@ -48636,11 +48636,11 @@
},
"packages/solid-type-index": {
"name": "@ldo/solid-type-index",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"license": "MIT",
"dependencies": {
"@ldo/connected-solid": "^1.0.0-alpha.31",
"@ldo/solid-react": "^1.0.0-alpha.31"
"@ldo/connected-solid": "^1.0.0-alpha.32",
"@ldo/solid-react": "^1.0.0-alpha.33"
},
"devDependencies": {
"@ldo/rdf-utils": "^1.0.0-alpha.30",
@ -48770,7 +48770,7 @@
},
"packages/subscribable-dataset": {
"name": "@ldo/subscribable-dataset",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/dataset": "^1.0.0-alpha.30",
@ -48839,14 +48839,14 @@
},
"packages/svelte": {
"name": "@ldo/svelte",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"license": "MIT",
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"tsx": "^4.19.4"
},
"devDependencies": {

@ -1,6 +1,6 @@
{
"name": "@ldo/cli",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "A Command Line Interface for Linked Data Objects",
"main": "./dist/index.js",
"type": "module",
@ -41,8 +41,8 @@
},
"dependencies": {
"@jeswr/shacl2shex": "^1.1.0",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/schema-converter-shex": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/schema-converter-shex": "^1.0.0-alpha.32",
"@shexjs/parser": "^1.0.0-alpha.24",
"child-process-promise": "^2.2.1",
"commander": "^9.3.0",

@ -1,6 +1,6 @@
{
"name": "@ldo/connected-nextgraph",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "A plugin for @ldo/connected to work with the Solid ecosystem.",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -39,7 +39,7 @@
"homepage": "https://github.com/o-development/ldo/tree/main/packages/solid#readme",
"devDependencies": {
"@inrupt/solid-client-authn-core": "^3.0.0",
"@ldo/cli": "^1.0.0-alpha.31",
"@ldo/cli": "^1.0.0-alpha.32",
"@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2",
"@solid/community-server": "8.0.0-alpha.0",
@ -54,9 +54,9 @@
"typedoc-plugin-markdown": "^3.17.1"
},
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6",

@ -1,6 +1,6 @@
{
"name": "@ldo/connected-solid",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "A plugin for @ldo/connected to work with the Solid ecosystem.",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -37,7 +37,7 @@
"homepage": "https://github.com/o-development/ldo/tree/main/packages/solid#readme",
"devDependencies": {
"@inrupt/solid-client-authn-core": "^3.0.0",
"@ldo/cli": "^1.0.0-alpha.31",
"@ldo/cli": "^1.0.0-alpha.32",
"@ldo/test-solid-server": "^1.0.0-alpha.28",
"@rdfjs/types": "^1.0.1",
"@solid-notifications/types": "^0.1.2",
@ -49,9 +49,9 @@
"typedoc-plugin-markdown": "^3.17.1"
},
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@solid-notifications/subscription": "^0.1.2",
"cross-fetch": "^3.1.6",

@ -1,6 +1,6 @@
{
"name": "@ldo/connected",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "A library for connecting LDO to resources outside the LDO environment",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -50,7 +50,7 @@
},
"dependencies": {
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30"
},
"files": [

@ -1,6 +1,6 @@
{
"name": "@ldo/jsonld-dataset-proxy",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -51,7 +51,7 @@
],
"dependencies": {
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"jsonld2graphobject": "^0.0.4"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@ldo/ldo",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -48,8 +48,8 @@
},
"dependencies": {
"@ldo/dataset": "^1.0.0-alpha.30",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"buffer": "^6.0.3",
"readable-stream": "^4.3.0"
},

@ -1,6 +1,6 @@
{
"name": "@ldo/react",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"description": "A React library for LDO.",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -43,11 +43,11 @@
"vitest": "^3.2.4"
},
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"cross-fetch": "^3.1.6"
},
"files": [

@ -8,6 +8,7 @@ export type useChangeReturn<Type, Plugins extends ConnectedPlugin[]> = [
Type,
useChangeSetData<Type, Plugins>,
useChangeCommitData<Plugins>,
transactionDataset: ConnectedLdoTransactionDataset<Plugins>,
];
type BaseOtherType = LdoBase | LdSet<LdoBase>;

@ -1,4 +1,4 @@
import { useCallback, useMemo } from "react";
import { useCallback, useMemo, useState, useEffect } from "react";
import type {
ConnectedLdoDataset,
ConnectedLdoTransactionDataset,
@ -31,10 +31,21 @@ export function createUseChangeDataset<Plugins extends ConnectedPlugin[]>(
return function useChangeDataset(
specificDataset?: IConnectedLdoDataset<Plugins>,
): useChangeDatasetReturn<Plugins> {
const transactionDataset = useMemo(() => {
const [transactionDataset, setTransactionDataset] = useState<
ConnectedLdoTransactionDataset<Plugins>
>(() => {
return (
specificDataset ?? dataset
).startTransaction() as ConnectedLdoTransactionDataset<Plugins>;
});
// Update transaction dataset when specificDataset changes
useEffect(() => {
setTransactionDataset(
(
specificDataset ?? dataset
).startTransaction() as ConnectedLdoTransactionDataset<Plugins>,
);
}, [specificDataset]);
const setData = useCallback<useChangeSetDataset<Plugins>>(
@ -46,9 +57,18 @@ export function createUseChangeDataset<Plugins extends ConnectedPlugin[]>(
[transactionDataset],
);
const commitData = useCallback<useChangeCommitData<Plugins>>(() => {
return transactionDataset.commitToRemote();
}, [transactionDataset]);
const commitData = useCallback<useChangeCommitData<Plugins>>(async () => {
const result = await transactionDataset.commitToRemote();
if (!result.isError) {
// Replace with a new transaction from the dataset or specificDataset
setTransactionDataset(
(
specificDataset ?? dataset
).startTransaction() as ConnectedLdoTransactionDataset<Plugins>,
);
}
return result;
}, [transactionDataset, specificDataset]);
return useMemo(
() => [transactionDataset, setData, commitData],

@ -59,8 +59,8 @@ export function createUseChangeMatchObject<Plugins extends ConnectedPlugin[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
);
};
}

@ -61,8 +61,8 @@ export function createUseChangeMatchSubject<Plugins extends ConnectedPlugin[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
);
};
}

@ -76,8 +76,8 @@ export function createUseChangeSubject<Plugins extends ConnectedPlugin[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
);
};
}

@ -1,6 +1,6 @@
{
"name": "@ldo/schema-converter-shex",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -34,7 +34,7 @@
},
"homepage": "https://github.com/o-development/ldo/tree/main/packages/schema-converter-shex#readme",
"devDependencies": {
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@shexjs/parser": "^1.0.0-alpha.24",
"@types/jsonld": "^1.5.6",
"@types/shexj": "^2.1.3",

@ -1,6 +1,6 @@
{
"name": "@ldo/solid-react",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"description": "A React library for LDO and Solid",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -45,9 +45,9 @@
},
"dependencies": {
"@inrupt/solid-client-authn-browser": "^3.0.0",
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/connected-solid": "^1.0.0-alpha.31",
"@ldo/react": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/connected-solid": "^1.0.0-alpha.32",
"@ldo/react": "^1.0.0-alpha.33",
"cross-fetch": "^3.1.6"
},
"files": [

@ -1,6 +1,6 @@
{
"name": "@ldo/solid-type-index",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.33",
"description": "Solid Type Index support for LDO",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -44,8 +44,8 @@
"ts-node": "^10.9.2"
},
"dependencies": {
"@ldo/connected-solid": "^1.0.0-alpha.31",
"@ldo/solid-react": "^1.0.0-alpha.31"
"@ldo/connected-solid": "^1.0.0-alpha.32",
"@ldo/solid-react": "^1.0.0-alpha.33"
},
"files": [
"dist",

@ -1,6 +1,6 @@
{
"name": "@ldo/subscribable-dataset",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "An RDFJS dataset implementation that can be subscribed to for updates",
"type": "module",
"main": "./dist/cjs/index.cjs",

@ -287,4 +287,17 @@ export class TransactionDataset<InAndOutQuad extends BaseQuad = BaseQuad>
public getChanges(): DatasetChanges<InAndOutQuad> {
return this.datasetChanges;
}
/**
* Returns true if the transaction is holding changes that have yet to be committed.
* Returns false if no changes have yet been made to it.
*/
public hasChanges(): boolean {
return (
((this.datasetChanges.added && this.datasetChanges.added.size > 0) ||
(this.datasetChanges.removed &&
this.datasetChanges.removed.size > 0)) ??
false
);
}
}

@ -166,4 +166,5 @@ export interface ITransactionDataset<InAndOutQuad extends BaseQuad = BaseQuad>
rollback(): void;
commit(): void;
getChanges(): DatasetChanges<InAndOutQuad>;
hasChanges(): boolean;
}

@ -1,6 +1,6 @@
{
"name": "@ldo/svelte",
"version": "1.0.0-alpha.31",
"version": "1.0.0-alpha.32",
"description": "A Svelte library for LDO.",
"type": "module",
"main": "./dist/cjs/index.cjs",
@ -65,11 +65,11 @@
"svelte": "^3.50.0"
},
"dependencies": {
"@ldo/connected": "^1.0.0-alpha.31",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.31",
"@ldo/ldo": "^1.0.0-alpha.31",
"@ldo/connected": "^1.0.0-alpha.32",
"@ldo/jsonld-dataset-proxy": "^1.0.0-alpha.32",
"@ldo/ldo": "^1.0.0-alpha.32",
"@ldo/rdf-utils": "^1.0.0-alpha.30",
"@ldo/subscribable-dataset": "^1.0.0-alpha.31",
"@ldo/subscribable-dataset": "^1.0.0-alpha.32",
"tsx": "^4.19.4"
},
"files": [

Loading…
Cancel
Save