Skip to content

Commit 4f2fad6

Browse files
committed
Add TypeScript submodule support for SpacetimeDB modules
- TypeScript server SDK: runtime API for module mounting (submodules), including namespaced dispatch, ctx.as helpers for cross-namespace calls, and HTTP handler delegation - TypeScript client codegen: namespace-aware table/reducer/procedure exports and query builder for submodule tables and views - Migrations: auto-migrate support for submodule tables, views, and indexes; AddConstraint step added alongside NamespacedIdentifier-based migration steps - CLI: namespace support for `spacetime call` and `spacetime sql` - C++/C# bindings: autogenerated RawSubmoduleV10 types - module-test-ts: submodule integration test (lib_submodule)
1 parent 2a07c57 commit 4f2fad6

63 files changed

Lines changed: 5141 additions & 1379 deletions

Some content is hidden

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

crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV10Section.g.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,23 @@
1212
#include <memory>
1313
#include "../autogen_base.h"
1414
#include "spacetimedb/bsatn/bsatn.h"
15-
#include "RawViewPrimaryKeyDefV10.g.h"
1615
#include "RawTableDefV10.g.h"
17-
#include "RawViewDefV10.g.h"
18-
#include "RawScheduleDefV10.g.h"
19-
#include "CaseConversionPolicy.g.h"
20-
#include "RawRowLevelSecurityDefV9.g.h"
21-
#include "RawHttpRouteDefV10.g.h"
22-
#include "RawReducerDefV10.g.h"
2316
#include "Typespace.g.h"
2417
#include "RawLifeCycleReducerDefV10.g.h"
25-
#include "ExplicitNames.g.h"
26-
#include "RawHttpHandlerDefV10.g.h"
18+
#include "RawReducerDefV10.g.h"
2719
#include "RawTypeDefV10.g.h"
20+
#include "RawRowLevelSecurityDefV9.g.h"
21+
#include "RawHttpRouteDefV10.g.h"
22+
#include "RawSubmoduleV10.g.h"
23+
#include "RawViewDefV10.g.h"
24+
#include "ExplicitNames.g.h"
2825
#include "RawProcedureDefV10.g.h"
26+
#include "CaseConversionPolicy.g.h"
27+
#include "RawScheduleDefV10.g.h"
28+
#include "RawViewPrimaryKeyDefV10.g.h"
29+
#include "RawHttpHandlerDefV10.g.h"
2930

3031
namespace SpacetimeDB::Internal {
3132

32-
SPACETIMEDB_INTERNAL_TAGGED_ENUM(RawModuleDefV10Section, SpacetimeDB::Internal::Typespace, std::vector<SpacetimeDB::Internal::RawTypeDefV10>, std::vector<SpacetimeDB::Internal::RawTableDefV10>, std::vector<SpacetimeDB::Internal::RawReducerDefV10>, std::vector<SpacetimeDB::Internal::RawProcedureDefV10>, std::vector<SpacetimeDB::Internal::RawViewDefV10>, std::vector<SpacetimeDB::Internal::RawScheduleDefV10>, std::vector<SpacetimeDB::Internal::RawLifeCycleReducerDefV10>, std::vector<SpacetimeDB::Internal::RawRowLevelSecurityDefV9>, SpacetimeDB::Internal::CaseConversionPolicy, SpacetimeDB::Internal::ExplicitNames, std::vector<SpacetimeDB::Internal::RawHttpHandlerDefV10>, std::vector<SpacetimeDB::Internal::RawHttpRouteDefV10>, std::vector<SpacetimeDB::Internal::RawViewPrimaryKeyDefV10>)
33+
SPACETIMEDB_INTERNAL_TAGGED_ENUM(RawModuleDefV10Section, SpacetimeDB::Internal::Typespace, std::vector<SpacetimeDB::Internal::RawTypeDefV10>, std::vector<SpacetimeDB::Internal::RawTableDefV10>, std::vector<SpacetimeDB::Internal::RawReducerDefV10>, std::vector<SpacetimeDB::Internal::RawProcedureDefV10>, std::vector<SpacetimeDB::Internal::RawViewDefV10>, std::vector<SpacetimeDB::Internal::RawScheduleDefV10>, std::vector<SpacetimeDB::Internal::RawLifeCycleReducerDefV10>, std::vector<SpacetimeDB::Internal::RawRowLevelSecurityDefV9>, SpacetimeDB::Internal::CaseConversionPolicy, SpacetimeDB::Internal::ExplicitNames, std::vector<SpacetimeDB::Internal::RawHttpHandlerDefV10>, std::vector<SpacetimeDB::Internal::RawHttpRouteDefV10>, std::vector<SpacetimeDB::Internal::RawViewPrimaryKeyDefV10>, std::vector<SpacetimeDB::Internal::RawSubmoduleV10>)
3334
} // namespace SpacetimeDB::Internal
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
2+
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
3+
4+
// This was generated using spacetimedb codegen.
5+
6+
#pragma once
7+
8+
#include <cstdint>
9+
#include <string>
10+
#include <vector>
11+
#include <optional>
12+
#include <memory>
13+
#include "../autogen_base.h"
14+
#include "spacetimedb/bsatn/bsatn.h"
15+
16+
namespace SpacetimeDB::Internal {
17+
struct RawModuleDefV10;
18+
} // namespace SpacetimeDB::Internal
19+
20+
namespace SpacetimeDB::Internal {
21+
22+
SPACETIMEDB_INTERNAL_PRODUCT_TYPE(RawSubmoduleV10) {
23+
std::string namespace_;
24+
std::shared_ptr<SpacetimeDB::Internal::RawModuleDefV10> module;
25+
26+
void bsatn_serialize(::SpacetimeDB::bsatn::Writer& writer) const {
27+
::SpacetimeDB::bsatn::serialize(writer, namespace_);
28+
::SpacetimeDB::bsatn::serialize(writer, *module);
29+
}
30+
SPACETIMEDB_PRODUCT_TYPE_EQUALITY(namespace_, module)
31+
};
32+
} // namespace SpacetimeDB::Internal

crates/bindings-csharp/Runtime/Internal/Autogen/RawModuleDefV10Section.g.cs

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/bindings-csharp/Runtime/Internal/Autogen/RawSubmoduleV10.g.cs

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

0 commit comments

Comments
 (0)