Skip to content

Commit 52585c1

Browse files
Add typescript variant of view_pk_tests
1 parent e9e6dd2 commit 52585c1

5 files changed

Lines changed: 126 additions & 0 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "sdk-test-view-pk-ts",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"build": "cargo build -p spacetimedb-standalone && cargo run -p spacetimedb-cli -- build",
8+
"generate-ts": "cargo build -p spacetimedb-standalone && cargo run -p spacetimedb-cli -- generate --lang typescript --out-dir ts-codegen",
9+
"publish": "cargo run -p spacetimedb-cli -- publish"
10+
},
11+
"keywords": [],
12+
"author": "",
13+
"license": "ISC",
14+
"dependencies": {
15+
"spacetimedb": "workspace:^"
16+
}
17+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import { schema, t, table } from 'spacetimedb/server';
2+
3+
const view_pk_player = table(
4+
{ name: 'view_pk_player', public: true },
5+
{
6+
id: t.u64().primaryKey(),
7+
name: t.string(),
8+
}
9+
);
10+
11+
const view_pk_membership = table(
12+
{ name: 'view_pk_membership', public: true },
13+
{
14+
id: t.u64().primaryKey(),
15+
player_id: t.u64().index('btree'),
16+
}
17+
);
18+
19+
const view_pk_membership_secondary = table(
20+
{ name: 'view_pk_membership_secondary', public: true },
21+
{
22+
id: t.u64().primaryKey(),
23+
player_id: t.u64().index('btree'),
24+
}
25+
);
26+
27+
const spacetimedb = schema({
28+
view_pk_player,
29+
view_pk_membership,
30+
view_pk_membership_secondary,
31+
});
32+
export default spacetimedb;
33+
34+
export const insert_view_pk_player = spacetimedb.reducer(
35+
{ id: t.u64(), name: t.string() },
36+
(ctx, { id, name }) => {
37+
ctx.db.view_pk_player.insert({ id, name });
38+
}
39+
);
40+
41+
export const update_view_pk_player = spacetimedb.reducer(
42+
{ id: t.u64(), name: t.string() },
43+
(ctx, { id, name }) => {
44+
ctx.db.view_pk_player.id.update({ id, name });
45+
}
46+
);
47+
48+
export const insert_view_pk_membership = spacetimedb.reducer(
49+
{ id: t.u64(), player_id: t.u64() },
50+
(ctx, { id, player_id }) => {
51+
ctx.db.view_pk_membership.insert({ id, player_id });
52+
}
53+
);
54+
55+
export const insert_view_pk_membership_secondary = spacetimedb.reducer(
56+
{ id: t.u64(), player_id: t.u64() },
57+
(ctx, { id, player_id }) => {
58+
ctx.db.view_pk_membership_secondary.insert({ id, player_id });
59+
}
60+
);
61+
62+
export const all_view_pk_players = spacetimedb.view(
63+
{ name: 'all_view_pk_players', public: true },
64+
t.query(view_pk_player.rowType),
65+
ctx => {
66+
return ctx.from.view_pk_player.build();
67+
}
68+
);
69+
70+
export const sender_view_pk_players_a = spacetimedb.view(
71+
{ name: 'sender_view_pk_players_a', public: true },
72+
t.query(view_pk_player.rowType),
73+
ctx => {
74+
return ctx.from.view_pk_membership
75+
.rightSemijoin(ctx.from.view_pk_player, (membership, player) =>
76+
membership.player_id.eq(player.id)
77+
)
78+
.build();
79+
}
80+
);
81+
82+
export const sender_view_pk_players_b = spacetimedb.view(
83+
{ name: 'sender_view_pk_players_b', public: true },
84+
t.query(view_pk_player.rowType),
85+
ctx => {
86+
return ctx.from.view_pk_membership_secondary
87+
.rightSemijoin(ctx.from.view_pk_player, (membership, player) =>
88+
membership.player_id.eq(player.id)
89+
)
90+
.build();
91+
}
92+
);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"compilerOptions": {
3+
"strict": true,
4+
"skipLibCheck": true,
5+
"moduleResolution": "bundler",
6+
"jsx": "react-jsx",
7+
8+
"target": "ESNext",
9+
"lib": ["ES2021", "dom"],
10+
"module": "ESNext",
11+
"isolatedModules": true,
12+
"noEmit": true
13+
},
14+
"include": ["./**/*"]
15+
}

pnpm-workspace.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ packages:
1919
- 'modules/sdk-test-connect-disconnect-ts'
2020
- 'modules/sdk-test-procedure-ts'
2121
- 'modules/sdk-test-ts'
22+
- 'modules/sdk-test-view-pk-ts'
2223
- 'docs'

sdks/rust/tests/test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,3 +528,4 @@ macro_rules! view_pk_tests {
528528
}
529529

530530
view_pk_tests!(rust_view_pk, "");
531+
view_pk_tests!(typescript_view_pk, "-ts");

0 commit comments

Comments
 (0)