Skip to content

Commit 1fc272b

Browse files
committed
scaffold collab package
1 parent ba8d7b4 commit 1fc272b

File tree

10 files changed

+338
-112
lines changed

10 files changed

+338
-112
lines changed

package-lock.json

Lines changed: 249 additions & 109 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"dependencies": [
2424
"./packages/geometry:publish",
2525
"./packages/dom:publish",
26+
"./packages/collab:publish",
2627
"./packages/propagators:publish",
2728
"./packages/canvas:publish",
2829
"./packages/labs:publish"

packages/collab/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @folkjs/collab

packages/collab/package.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"name": "@folkjs/collab",
3+
"version": "0.0.5",
4+
"description": "Collaboration and P2P utilities",
5+
"keywords": [],
6+
"author": "Christopher Shank <[email protected]>",
7+
"type": "module",
8+
"license": "MIT",
9+
"exports": {
10+
"./*": {
11+
"import": "./dist/*.js",
12+
"types": "./dist/*.d.ts"
13+
}
14+
},
15+
"files": [
16+
"dist",
17+
"src"
18+
],
19+
"scripts": {
20+
"build": "wireit",
21+
"publish": "wireit",
22+
"test:dev": "npm run test --watch"
23+
},
24+
"wireit": {
25+
"build": {
26+
"command": "tsc --build --pretty && vite build",
27+
"files": [
28+
"src/**",
29+
"package.json",
30+
"tsconfig.json",
31+
"vite.config.ts"
32+
],
33+
"output": [
34+
"dist/**",
35+
"tsconfig.tsbuildinfo"
36+
]
37+
},
38+
"publish": {
39+
"command": "npm publish --access public",
40+
"dependencies": [
41+
"build",
42+
"test"
43+
]
44+
}
45+
},
46+
"devDependencies": {
47+
"typescript": "^5.8.2",
48+
"vite": "^7.1.5",
49+
"vite-plugin-wasm": "^3.5.0"
50+
},
51+
"dependencies": {
52+
"@automerge/vanillajs": "^2.3.0"
53+
}
54+
}

packages/collab/src/automerge.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from '@automerge/vanillajs';

packages/collab/tsconfig.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"extends": "../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"baseUrl": ".",
5+
"rootDir": "src",
6+
"outDir": "dist",
7+
"declaration": true,
8+
"rewriteRelativeImportExtensions": true
9+
},
10+
"include": ["src/"]
11+
}

packages/collab/vite.config.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { resolve } from 'node:path';
2+
import { defineConfig } from 'vite';
3+
import wasm from 'vite-plugin-wasm';
4+
5+
export default defineConfig({
6+
plugins: [wasm()],
7+
build: {
8+
lib: {
9+
entry: resolve(__dirname, 'dist/automerge.js'),
10+
formats: ['es'],
11+
fileName: () => 'automerge.js',
12+
},
13+
emptyOutDir: false,
14+
minify: false,
15+
sourcemap: true,
16+
},
17+
});

packages/labs/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"clean": "if-file-deleted",
5050
"dependencies": [
5151
"../dom:build",
52+
"../collab:build",
5253
"../geometry:build",
5354
"../canvas:build",
5455
"../propagators:build"
@@ -82,11 +83,11 @@
8283
}
8384
},
8485
"dependencies": {
85-
"@automerge/vanillajs": "^2.3.0",
8686
"@codemirror/lang-javascript": "^6.2.3",
8787
"@codemirror/view": "^6.36.5",
8888
"@dimforge/rapier2d": "^0.15.0",
8989
"@folkjs/canvas": "0.0.5",
90+
"@folkjs/collab": "0.0.5",
9091
"@folkjs/dom": "0.0.5",
9192
"@folkjs/geometry": "0.0.5",
9293
"@folkjs/propagators": "0.0.5",

packages/labs/src/dom-json.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ImmutableString } from '@automerge/vanillajs';
1+
import type { ImmutableString } from '@folkjs/collab/automerge';
22

33
// TODO: make this 1:1 correspondence with DOM node types
44
// TODO: don't couple to Automerge types

packages/labs/src/folk-sync-attribute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
type Patch,
1212
type PeerId,
1313
type Prop,
14-
} from '@automerge/vanillajs';
14+
} from '@folkjs/collab/automerge';
1515
import { CustomAttribute } from '@folkjs/dom/CustomAttribute';
1616
import type { DOMJElement, DOMJNode } from '@folkjs/labs/dom-json';
1717

0 commit comments

Comments
 (0)