Skip to content

Commit 06420b3

Browse files
committed
Consolidated all ts code into the spacetimedb package and now sdk is a shim reexport
1 parent 6a966be commit 06420b3

174 files changed

Lines changed: 1060 additions & 638 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/typescript-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
run: pnpm build
5252

5353
- name: Run SDK tests
54-
working-directory: sdks/typescript/packages/sdk
54+
working-directory: sdks/typescript
5555
run: pnpm test
5656

5757
# - name: Extract SpacetimeDB branch name from file

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ pnpm-lock.yaml
33
dist
44
target
55
.github
6+
coverage

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ members = [
4747
"sdks/rust/tests/connect_disconnect_client",
4848
"tools/upgrade-version",
4949
"tools/license-check",
50-
"sdks/typescript/packages/test-app/server",
50+
"crates/bindings-typescript/test-app/server",
5151
]
5252
default-members = ["crates/cli", "crates/standalone", "crates/update"]
5353
# cargo feature graph resolver. v3 is default in edition2024 but workspace

crates/bindings-typescript/package.json

Lines changed: 139 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,6 @@
66
"bugs": {
77
"url": "https://github.com/clockworklabs/SpacetimeDB/issues"
88
},
9-
"source": "src/index.ts",
10-
"main": "dist/index.cjs",
11-
"module": "dist/index.mjs",
12-
"types": "src/index.ts",
13-
"exports": {
14-
".": {
15-
"types": "./src/index.ts",
16-
"source": "./src/index.ts",
17-
"development": "./src/index.ts",
18-
"import": "./dist/index.mjs",
19-
"require": "./dist/index.cjs",
20-
"default": "./dist/index.mjs"
21-
}
22-
},
239
"files": [
2410
"src",
2511
"dist",
@@ -33,26 +19,160 @@
3319
"license": "ISC",
3420
"author": "Clockwork Labs",
3521
"type": "module",
22+
"sideEffects": false,
3623
"scripts": {
37-
"build": "tsc",
38-
"format": "prettier --write .",
39-
"lint": "eslint . && prettier . --check",
24+
"build": "tsup",
25+
"format": "prettier . --write --ignore-path ../../.prettierignore",
26+
"lint": "eslint . && prettier . --check --ignore-path ../../.prettierignore",
4027
"test": "vitest run",
4128
"coverage": "vitest run --coverage",
42-
"generate": "cargo run -p spacetimedb-codegen --example regen-typescript-moduledef && prettier --write src/autogen"
29+
"brotli-size": "brotli-size dist/index.js",
30+
"size": "pnpm -s build && size-limit",
31+
"generate:moduledef": "cargo run -p spacetimedb-codegen --example regen-typescript-moduledef && prettier --write src/lib/autogen",
32+
"generate:client-api": "cargo build -p spacetimedb-standalone && cargo run -p spacetimedb-client-api-messages --example get_ws_schema > ws_schema.json && cargo run -p spacetimedb-cli generate --lang typescript --out-dir src/sdk/client_api --module-def ws_schema.json && rm ws_schema.json && find src/sdk/client_api -type f -exec perl -pi -e 's#\\@clockworklabs/spacetimedb-sdk#../../index#g' {} + && prettier --write src/sdk/client_api",
33+
"generate:test-app": "pnpm --filter @clockworklabs/test-app generate",
34+
"generate": "pnpm generate:moduledef && pnpm generate:client-api && pnpm generate:test-app"
4335
},
36+
"source": "src/index.ts",
37+
"main": "dist/index.cjs",
38+
"module": "dist/index.mjs",
39+
"types": "src/index.ts",
40+
"exports": {
41+
".": {
42+
"types": "./src/index.ts",
43+
"source": "./src/index.ts",
44+
"development": "./src/index.ts",
45+
"import": "./dist/index.mjs",
46+
"require": "./dist/index.cjs",
47+
"default": "./dist/index.mjs"
48+
},
49+
"./sdk": {
50+
"types": "./src/sdk/index.ts",
51+
"browser": "./dist/sdk/index.browser.mjs",
52+
"import": "./dist/sdk/index.mjs",
53+
"require": "./dist/sdk/index.cjs",
54+
"default": "./dist/sdk/index.mjs"
55+
},
56+
"./react": {
57+
"types": "./src/react/index.ts",
58+
"import": "./dist/react/index.mjs",
59+
"require": "./dist/react/index.cjs",
60+
"default": "./dist/react/index.mjs"
61+
},
62+
"./server": {
63+
"types": "./src/server/index.ts",
64+
"import": "./dist/server/index.mjs",
65+
"require": "./dist/server/index.cjs",
66+
"default": "./dist/server/index.mjs"
67+
}
68+
},
69+
"size-limit": [
70+
{
71+
"name": "cjs (brotli)",
72+
"path": "dist/index.cjs",
73+
"brotli": true,
74+
"limit": "25 kB"
75+
},
76+
{
77+
"name": "esm (brotli)",
78+
"path": "dist/index.mjs",
79+
"brotli": true,
80+
"limit": "20 kB"
81+
},
82+
{
83+
"name": "esm (gzip)",
84+
"path": "dist/index.mjs",
85+
"gzip": true,
86+
"limit": "25 kB"
87+
},
88+
{
89+
"name": "esm (uncompressed)",
90+
"path": "dist/index.mjs",
91+
"brotli": false,
92+
"limit": "150 kB"
93+
},
94+
{
95+
"name": "esm min (brotli)",
96+
"path": "dist/min/index.mjs",
97+
"brotli": true,
98+
"limit": "10 kB"
99+
},
100+
{
101+
"name": "esm min (gzip)",
102+
"path": "dist/min/index.mjs",
103+
"gzip": true,
104+
"limit": "15 kB"
105+
},
106+
{
107+
"name": "esm min (uncompressed)",
108+
"path": "dist/min/index.mjs",
109+
"brotli": false,
110+
"limit": "60 kB"
111+
},
112+
{
113+
"name": "react esm min (brotli)",
114+
"path": "dist/min/react/index.mjs",
115+
"brotli": true,
116+
"limit": "10 kB"
117+
},
118+
{
119+
"name": "react esm min (uncompressed)",
120+
"path": "dist/min/react/index.mjs",
121+
"limit": "10 kB"
122+
},
123+
{
124+
"name": "react esm min (gzip)",
125+
"path": "dist/min/react/index.mjs",
126+
"gzip": true,
127+
"limit": "15 kB"
128+
},
129+
{
130+
"name": "sdk esm min (brotli)",
131+
"path": "dist/min/sdk/index.browser.mjs",
132+
"brotli": true,
133+
"limit": "10 kB"
134+
},
135+
{
136+
"name": "sdk esm min (gzip)",
137+
"path": "dist/min/sdk/index.browser.mjs",
138+
"gzip": true,
139+
"limit": "15 kB"
140+
},
141+
{
142+
"name": "sdk esm min (uncompressed)",
143+
"path": "dist/min/sdk/index.browser.mjs",
144+
"limit": "10 kB"
145+
}
146+
],
44147
"dependencies": {
45-
"@zxing/text-encoding": "^0.9.0",
46148
"base64-js": "^1.5.1",
47149
"prettier": "^3.3.3"
48150
},
151+
"peerDependencies": {
152+
"react": "^18.0.0 || ^19.0.0-0 || ^19.0.0",
153+
"undici": "^6.19.2"
154+
},
155+
"peerDependenciesMeta": {
156+
"react": {
157+
"optional": true
158+
},
159+
"undici": {
160+
"optional": true
161+
}
162+
},
49163
"devDependencies": {
50164
"@eslint/js": "^9.17.0",
165+
"@size-limit/file": "^11.2.0",
166+
"@types/react": "^19.1.13",
51167
"@typescript-eslint/eslint-plugin": "^8.18.2",
52168
"@typescript-eslint/parser": "^8.18.2",
169+
"@vitest/coverage-v8": "^3.2.4",
170+
"brotli-size-cli": "^1.0.0",
53171
"eslint": "^9.33.0",
54172
"globals": "^15.14.0",
173+
"size-limit": "^11.2.0",
55174
"ts-node": "^10.9.2",
175+
"tsup": "^8.1.0",
56176
"typescript": "^5.9.2",
57177
"typescript-eslint": "^8.18.2",
58178
"vite": "^7.1.5",
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
export * from './connection_id';
2-
export * from './algebraic_type';
3-
export * from './algebraic_value';
4-
export { default as BinaryReader } from './binary_reader';
5-
export { default as BinaryWriter } from './binary_writer';
6-
export * from './schedule_at';
7-
export * from './time_duration';
8-
export * from './timestamp';
9-
export * from './utils';
10-
export * from './identity';
1+
export * from './lib/connection_id';
2+
export * from './lib/algebraic_type';
3+
export * from './lib/algebraic_value';
4+
export { default as BinaryReader } from './lib/binary_reader';
5+
export { default as BinaryWriter } from './lib/binary_writer';
6+
export * from './lib/schedule_at';
7+
export * from './lib/time_duration';
8+
export * from './lib/timestamp';
9+
export * from './lib/utils';
10+
export * from './lib/identity';
11+
export * from './sdk';
1112
export { default as t } from './server/type_builders';
File renamed without changes.
File renamed without changes.

crates/bindings-typescript/src/autogen/algebraic_type_type.ts renamed to crates/bindings-typescript/src/lib/autogen/algebraic_type_type.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
deepEqual as __deepEqual,
1515
type AlgebraicType as __AlgebraicTypeType,
1616
type AlgebraicTypeVariants as __AlgebraicTypeVariants,
17-
} from '../index';
17+
} from '../../index';
1818
import { SumType } from './sum_type_type';
1919
// Mark import as potentially unused
2020
declare type __keep_SumType = SumType;

crates/bindings-typescript/src/autogen/algebraic_type_variants.ts renamed to crates/bindings-typescript/src/lib/autogen/algebraic_type_variants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
deepEqual as __deepEqual,
1515
type AlgebraicType as __AlgebraicTypeType,
1616
type AlgebraicTypeVariants as __AlgebraicTypeVariants,
17-
} from '../index';
17+
} from '../../index';
1818
import { AlgebraicType as AlgebraicTypeType } from './algebraic_type_type';
1919
// Mark import as potentially unused
2020
declare type __keep_AlgebraicTypeType = AlgebraicTypeType;

crates/bindings-typescript/src/autogen/index_type_type.ts renamed to crates/bindings-typescript/src/lib/autogen/index_type_type.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
deepEqual as __deepEqual,
1515
type AlgebraicType as __AlgebraicTypeType,
1616
type AlgebraicTypeVariants as __AlgebraicTypeVariants,
17-
} from '../index';
17+
} from '../../index';
1818
import * as IndexTypeVariants from './index_type_variants';
1919

2020
// The tagged union or sum type for the algebraic type `IndexType`.

0 commit comments

Comments
 (0)