@automerge/react 2.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/package.json +58 -0
- package/src/index.ts +7 -0
- package/tsconfig.json +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# @automerge/react
|
|
2
|
+
|
|
3
|
+
A minimalist React package for Automerge Repo; does nothing but re-export other packages for your convenience.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @automerge/react
|
|
9
|
+
# or
|
|
10
|
+
yarn add @automerge/react
|
|
11
|
+
# or
|
|
12
|
+
pnpm add @automerge/react
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
import { createRepo, useDocument } from "@automerge/react"
|
|
19
|
+
|
|
20
|
+
// Create a pre-configured repo instance
|
|
21
|
+
const repo = createRepo({
|
|
22
|
+
websocketUrl: "ws://localhost:8080", // optional
|
|
23
|
+
enableStorage: true, // optional, defaults to true
|
|
24
|
+
enableMessageChannel: true, // optional, defaults to true
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
// Use in your React components
|
|
28
|
+
function MyComponent() {
|
|
29
|
+
const doc = useDocument(repo, "my-doc-id")
|
|
30
|
+
|
|
31
|
+
if (!doc) return <div>Loading...</div>
|
|
32
|
+
|
|
33
|
+
return <div>{doc.content}</div>
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
|
|
39
|
+
- Pre-configured Automerge Repo setup with common adapters
|
|
40
|
+
- Re-exports all React hooks from `@automerge/automerge-repo-react-hooks`
|
|
41
|
+
- TypeScript support
|
|
42
|
+
- Minimalist API surface
|
|
43
|
+
|
|
44
|
+
## API
|
|
45
|
+
|
|
46
|
+
### `createRepo(options?: CreateRepoOptions)`
|
|
47
|
+
|
|
48
|
+
Creates a pre-configured Automerge Repo instance with common adapters.
|
|
49
|
+
|
|
50
|
+
Options:
|
|
51
|
+
|
|
52
|
+
- `websocketUrl?: string` - The URL of the WebSocket server to connect to
|
|
53
|
+
- `enableStorage?: boolean` - Whether to enable IndexedDB storage (default: true)
|
|
54
|
+
- `enableMessageChannel?: boolean` - Whether to enable MessageChannel network adapter (default: true)
|
|
55
|
+
|
|
56
|
+
### Hooks
|
|
57
|
+
|
|
58
|
+
All hooks from `@automerge/automerge-repo-react-hooks` are re-exported:
|
|
59
|
+
|
|
60
|
+
- `useRepo`
|
|
61
|
+
- `useDocument`
|
|
62
|
+
- `useHandle`
|
|
63
|
+
- `useLocalAwareness`
|
|
64
|
+
- `useRemoteAwareness`
|
|
65
|
+
- `useBootstrap`
|
|
66
|
+
- `useSyncState`
|
|
67
|
+
|
|
68
|
+
## License
|
|
69
|
+
|
|
70
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "@automerge/automerge-repo";
|
|
2
|
+
export * from "@automerge/automerge-repo-react-hooks";
|
|
3
|
+
export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
|
|
4
|
+
export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
|
|
5
|
+
export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
|
|
6
|
+
export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,uCAAuC,CAAA;AAErD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAA;AAC/F,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "@automerge/automerge-repo";
|
|
2
|
+
export * from "@automerge/automerge-repo-react-hooks";
|
|
3
|
+
export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
|
|
4
|
+
export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
|
|
5
|
+
export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
|
|
6
|
+
export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@automerge/react",
|
|
3
|
+
"version": "2.0.0-beta.2",
|
|
4
|
+
"description": "A quick-import React package for Automerge Repo",
|
|
5
|
+
"repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-react",
|
|
6
|
+
"author": "Peter van Hardenberg <pvh@pvh.ca>",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"watch": "npm-watch build",
|
|
14
|
+
"test": "vitest",
|
|
15
|
+
"test:watch": "npm-watch test"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@automerge/automerge-repo": "workspace:*",
|
|
19
|
+
"@automerge/automerge-repo-network-broadcastchannel": "workspace:*",
|
|
20
|
+
"@automerge/automerge-repo-network-messagechannel": "workspace:*",
|
|
21
|
+
"@automerge/automerge-repo-network-websocket": "workspace:*",
|
|
22
|
+
"@automerge/automerge-repo-storage-indexeddb": "workspace:*",
|
|
23
|
+
"@automerge/automerge-repo-react-hooks": "workspace:*",
|
|
24
|
+
"react": "^18.0.0"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"react": "^18.0.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/react": "^18.0.0",
|
|
31
|
+
"typescript": "^5.0.0",
|
|
32
|
+
"vitest": "^1.0.0"
|
|
33
|
+
},
|
|
34
|
+
"exports": {
|
|
35
|
+
".": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"watch": {
|
|
38
|
+
"build": {
|
|
39
|
+
"patterns": "./src/**/*",
|
|
40
|
+
"extensions": [
|
|
41
|
+
".ts"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"test": {
|
|
45
|
+
"quiet": true,
|
|
46
|
+
"patterns": [
|
|
47
|
+
"./src/**/*",
|
|
48
|
+
"./test/**/*"
|
|
49
|
+
],
|
|
50
|
+
"extensions": [
|
|
51
|
+
".ts"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
}
|
|
58
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "@automerge/automerge-repo"
|
|
2
|
+
export * from "@automerge/automerge-repo-react-hooks"
|
|
3
|
+
|
|
4
|
+
export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel"
|
|
5
|
+
export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel"
|
|
6
|
+
export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket"
|
|
7
|
+
export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb"
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"jsx": "react",
|
|
5
|
+
"module": "NodeNext",
|
|
6
|
+
"moduleResolution": "nodenext",
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationMap": true,
|
|
9
|
+
"outDir": "./dist",
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"strict": true,
|
|
13
|
+
"strictNullChecks": true,
|
|
14
|
+
"skipLibCheck": true
|
|
15
|
+
},
|
|
16
|
+
"include": ["src/**/*.ts"],
|
|
17
|
+
"exclude": ["dist"]
|
|
18
|
+
}
|