commit 9ec93888cc620eb304249745c114b2395d82a97f
parent 270964c32ea6cf9ba330d77e2714a0caaf2c3da2
Author: triesap <tyson@radroots.org>
Date: Wed, 24 Jun 2026 07:45:01 +0000
bindings: source constants and kinds
- Render events constants and kinds from radroots_events source constants.
- Render identity username constants from radroots_identity source constants.
- Add raw TypeScript body support for non-DTO source-generated files.
- Remove binding_model dependencies from migrated events and identity constants crates.
Diffstat:
7 files changed, 251 insertions(+), 138 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -1755,7 +1755,6 @@ name = "radroots_events_bindings"
version = "0.1.0"
dependencies = [
"radroots_events",
- "radroots_sdk_binding_model",
]
[[package]]
@@ -1814,7 +1813,6 @@ name = "radroots_identity_bindings"
version = "0.1.0"
dependencies = [
"radroots_identity",
- "radroots_sdk_binding_model",
]
[[package]]
diff --git a/crates/events_bindings/Cargo.toml b/crates/events_bindings/Cargo.toml
@@ -9,5 +9,4 @@ homepage.workspace = true
publish = false
[dependencies]
-radroots_sdk_binding_model = { path = "../binding_model" }
radroots_events = { workspace = true }
diff --git a/crates/events_bindings/src/lib.rs b/crates/events_bindings/src/lib.rs
@@ -6,14 +6,19 @@ pub use model::{constants_module, kinds_module};
#[cfg(test)]
mod tests {
+ use radroots_events::{kinds, listing::RADROOTS_LISTING_PRODUCT_TAG_KEYS};
+
use super::{constants_module, kinds_module};
#[test]
fn preserves_event_constant_exports() {
- let constants = constants_module().render();
- let kinds = kinds_module().render();
+ let constants = constants_module();
+ let kinds_ts = kinds_module();
assert!(constants.contains("RADROOTS_LISTING_PRODUCT_TAG_KEYS"));
- assert!(kinds.contains("KIND_LISTING"));
- assert!(kinds.contains("KIND_TRADE_LISTING_ORDER_REQ"));
+ assert!(constants.contains(RADROOTS_LISTING_PRODUCT_TAG_KEYS[0]));
+ assert!(kinds_ts.contains("KIND_LISTING"));
+ assert!(kinds_ts.contains(&kinds::KIND_LISTING.to_string()));
+ assert!(kinds_ts.contains("KIND_TRADE_LISTING_ORDER_REQ"));
+ assert!(kinds_ts.contains(&kinds::KIND_TRADE_LISTING_ORDER_REQ.to_string()));
}
}
diff --git a/crates/events_bindings/src/model.rs b/crates/events_bindings/src/model.rs
@@ -1,114 +1,225 @@
-use radroots_sdk_binding_model::{self as ts, TsValue};
+use radroots_events::{kinds, listing::RADROOTS_LISTING_PRODUCT_TAG_KEYS};
-pub fn constants_module() -> ts::TsModule {
- ts::module(vec![
- ts::import_type(&["RadrootsListingProductTagKeys"], "./types.js"),
- ts::const_decl(
- "RADROOTS_LISTING_PRODUCT_TAG_KEYS",
- Some(ts::reference("RadrootsListingProductTagKeys")),
- TsValue::Array(vec![
- TsValue::String("key".to_owned()),
- TsValue::String("title".to_owned()),
- TsValue::String("category".to_owned()),
- TsValue::String("summary".to_owned()),
- TsValue::String("process".to_owned()),
- TsValue::String("lot".to_owned()),
- TsValue::String("location".to_owned()),
- TsValue::String("profile".to_owned()),
- TsValue::String("year".to_owned()),
- ]),
- ),
- ])
+pub fn constants_module() -> String {
+ format!(
+ "import type {{ RadrootsListingProductTagKeys }} from \"./types.js\";\n\nexport const RADROOTS_LISTING_PRODUCT_TAG_KEYS: RadrootsListingProductTagKeys = {};",
+ render_string_array(&RADROOTS_LISTING_PRODUCT_TAG_KEYS)
+ )
}
-pub fn kinds_module() -> ts::TsModule {
- ts::module(vec![
- ts::const_number("KIND_PROFILE", 0),
- ts::const_number("KIND_POST", 1),
- ts::const_number("KIND_FOLLOW", 3),
- ts::const_number("KIND_REACTION", 7),
- ts::const_number("KIND_SEAL", 13),
- ts::const_number("KIND_MESSAGE", 14),
- ts::const_number("KIND_MESSAGE_FILE", 15),
- ts::const_number("KIND_GIFT_WRAP", 1059),
- ts::const_number("KIND_COMMENT", 1111),
- ts::const_number("KIND_GEOCHAT", 20000),
- ts::const_number("KIND_LIST_MUTE", 10000),
- ts::const_number("KIND_LIST_PINNED_NOTES", 10001),
- ts::const_number("KIND_LIST_READ_WRITE_RELAYS", 10002),
- ts::const_number("KIND_LIST_BOOKMARKS", 10003),
- ts::const_number("KIND_LIST_COMMUNITIES", 10004),
- ts::const_number("KIND_LIST_PUBLIC_CHATS", 10005),
- ts::const_number("KIND_LIST_BLOCKED_RELAYS", 10006),
- ts::const_number("KIND_LIST_SEARCH_RELAYS", 10007),
- ts::const_number("KIND_LIST_SIMPLE_GROUPS", 10009),
- ts::const_number("KIND_LIST_RELAY_FEEDS", 10012),
- ts::const_number("KIND_LIST_INTERESTS", 10015),
- ts::const_number("KIND_LIST_MEDIA_FOLLOWS", 10020),
- ts::const_number("KIND_LIST_EMOJIS", 10030),
- ts::const_number("KIND_LIST_DM_RELAYS", 10050),
- ts::const_number("KIND_LIST_GOOD_WIKI_AUTHORS", 10101),
- ts::const_number("KIND_LIST_GOOD_WIKI_RELAYS", 10102),
- ts::const_number("KIND_LIST_SET_FOLLOW", 30000),
- ts::const_number("KIND_LIST_SET_GENERIC", 30001),
- ts::const_number("KIND_LIST_SET_RELAY", 30002),
- ts::const_number("KIND_LIST_SET_BOOKMARK", 30003),
- ts::const_number("KIND_LIST_SET_CURATION", 30004),
- ts::const_number("KIND_LIST_SET_VIDEO", 30005),
- ts::const_number("KIND_LIST_SET_PICTURE", 30006),
- ts::const_number("KIND_LIST_SET_KIND_MUTE", 30007),
- ts::const_number("KIND_LIST_SET_INTEREST", 30015),
- ts::const_number("KIND_LIST_SET_EMOJI", 30030),
- ts::const_number("KIND_LIST_SET_RELEASE_ARTIFACT", 30063),
- ts::const_number("KIND_LIST_SET_APP_CURATION", 30267),
- ts::const_number("KIND_LIST_SET_CALENDAR", 31924),
- ts::const_number("KIND_LIST_SET_STARTER_PACK", 39089),
- ts::const_number("KIND_LIST_SET_MEDIA_STARTER_PACK", 39092),
- ts::const_number("KIND_FARM", 30340),
- ts::const_number("KIND_PLOT", 30350),
- ts::const_number("KIND_COOP", 30360),
- ts::const_number("KIND_DOCUMENT", 30361),
- ts::const_number("KIND_RESOURCE_AREA", 30370),
- ts::const_number("KIND_RESOURCE_HARVEST_CAP", 30371),
- ts::const_number("KIND_ACCOUNT_CLAIM", 30380),
- ts::const_number("KIND_APP_DATA", 30078),
- ts::const_number("KIND_LISTING", 30402),
- ts::const_number("KIND_APPLICATION_HANDLER", 31990),
- ts::const_number("KIND_TRADE_LISTING_VALIDATE_REQ", 5321),
- ts::const_number("KIND_TRADE_LISTING_VALIDATE_RES", 6321),
- ts::const_number("KIND_WORKER_TRADE_TRANSITION_PROOF_REQ", 5322),
- ts::const_number("KIND_WORKER_TRADE_TRANSITION_PROOF_RES", 6322),
- ts::const_number("KIND_TRADE_ORDER_REQUEST", 3422),
- ts::const_number("KIND_TRADE_ORDER_RESPONSE", 3423),
- ts::const_number("KIND_TRADE_ORDER_DECISION", 3423),
- ts::const_number("KIND_TRADE_ORDER_REVISION", 3424),
- ts::const_number("KIND_TRADE_ORDER_REVISION_RESPONSE", 3425),
- ts::const_number("KIND_TRADE_QUESTION", 3426),
- ts::const_number("KIND_TRADE_ANSWER", 3427),
- ts::const_number("KIND_TRADE_DISCOUNT_REQUEST", 3428),
- ts::const_number("KIND_TRADE_DISCOUNT_OFFER", 3429),
- ts::const_number("KIND_TRADE_DISCOUNT_ACCEPT", 3430),
- ts::const_number("KIND_TRADE_FORBIDDEN_3431", 3431),
- ts::const_number("KIND_TRADE_CANCEL", 3432),
- ts::const_number("KIND_TRADE_FULFILLMENT_UPDATE", 3433),
- ts::const_number("KIND_TRADE_RECEIPT", 3434),
- ts::const_number("KIND_TRADE_VALIDATION_RECEIPT", 3440),
- ts::const_number("KIND_TRADE_LISTING_ORDER_REQ", 3422),
- ts::const_number("KIND_TRADE_LISTING_ORDER_RES", 3423),
- ts::const_number("KIND_TRADE_LISTING_ORDER_REVISION_REQ", 3424),
- ts::const_number("KIND_TRADE_LISTING_ORDER_REVISION_RES", 3425),
- ts::const_number("KIND_TRADE_LISTING_QUESTION_REQ", 3426),
- ts::const_number("KIND_TRADE_LISTING_ANSWER_RES", 3427),
- ts::const_number("KIND_TRADE_LISTING_DISCOUNT_REQ", 3428),
- ts::const_number("KIND_TRADE_LISTING_DISCOUNT_OFFER_RES", 3429),
- ts::const_number("KIND_TRADE_LISTING_DISCOUNT_ACCEPT_REQ", 3430),
- ts::const_number("KIND_TRADE_LISTING_CANCEL_REQ", 3432),
- ts::const_number("KIND_TRADE_LISTING_FULFILLMENT_UPDATE_REQ", 3433),
- ts::const_number("KIND_TRADE_LISTING_RECEIPT_REQ", 3434),
- ts::const_number("KIND_JOB_REQUEST_MIN", 5000),
- ts::const_number("KIND_JOB_REQUEST_MAX", 5999),
- ts::const_number("KIND_JOB_RESULT_MIN", 6000),
- ts::const_number("KIND_JOB_RESULT_MAX", 6999),
- ts::const_number("KIND_JOB_FEEDBACK", 7000),
- ])
+pub fn kinds_module() -> String {
+ render_number_constants(EVENT_KIND_EXPORTS)
+}
+
+const EVENT_KIND_EXPORTS: &[(&str, u32)] = &[
+ ("KIND_PROFILE", kinds::KIND_PROFILE),
+ ("KIND_POST", kinds::KIND_POST),
+ ("KIND_FOLLOW", kinds::KIND_FOLLOW),
+ ("KIND_REACTION", kinds::KIND_REACTION),
+ ("KIND_SEAL", kinds::KIND_SEAL),
+ ("KIND_MESSAGE", kinds::KIND_MESSAGE),
+ ("KIND_MESSAGE_FILE", kinds::KIND_MESSAGE_FILE),
+ ("KIND_GIFT_WRAP", kinds::KIND_GIFT_WRAP),
+ ("KIND_COMMENT", kinds::KIND_COMMENT),
+ ("KIND_GEOCHAT", kinds::KIND_GEOCHAT),
+ ("KIND_LIST_MUTE", kinds::KIND_LIST_MUTE),
+ ("KIND_LIST_PINNED_NOTES", kinds::KIND_LIST_PINNED_NOTES),
+ (
+ "KIND_LIST_READ_WRITE_RELAYS",
+ kinds::KIND_LIST_READ_WRITE_RELAYS,
+ ),
+ ("KIND_LIST_BOOKMARKS", kinds::KIND_LIST_BOOKMARKS),
+ ("KIND_LIST_COMMUNITIES", kinds::KIND_LIST_COMMUNITIES),
+ ("KIND_LIST_PUBLIC_CHATS", kinds::KIND_LIST_PUBLIC_CHATS),
+ ("KIND_LIST_BLOCKED_RELAYS", kinds::KIND_LIST_BLOCKED_RELAYS),
+ ("KIND_LIST_SEARCH_RELAYS", kinds::KIND_LIST_SEARCH_RELAYS),
+ ("KIND_LIST_SIMPLE_GROUPS", kinds::KIND_LIST_SIMPLE_GROUPS),
+ ("KIND_LIST_RELAY_FEEDS", kinds::KIND_LIST_RELAY_FEEDS),
+ ("KIND_LIST_INTERESTS", kinds::KIND_LIST_INTERESTS),
+ ("KIND_LIST_MEDIA_FOLLOWS", kinds::KIND_LIST_MEDIA_FOLLOWS),
+ ("KIND_LIST_EMOJIS", kinds::KIND_LIST_EMOJIS),
+ ("KIND_LIST_DM_RELAYS", kinds::KIND_LIST_DM_RELAYS),
+ (
+ "KIND_LIST_GOOD_WIKI_AUTHORS",
+ kinds::KIND_LIST_GOOD_WIKI_AUTHORS,
+ ),
+ (
+ "KIND_LIST_GOOD_WIKI_RELAYS",
+ kinds::KIND_LIST_GOOD_WIKI_RELAYS,
+ ),
+ ("KIND_LIST_SET_FOLLOW", kinds::KIND_LIST_SET_FOLLOW),
+ ("KIND_LIST_SET_GENERIC", kinds::KIND_LIST_SET_GENERIC),
+ ("KIND_LIST_SET_RELAY", kinds::KIND_LIST_SET_RELAY),
+ ("KIND_LIST_SET_BOOKMARK", kinds::KIND_LIST_SET_BOOKMARK),
+ ("KIND_LIST_SET_CURATION", kinds::KIND_LIST_SET_CURATION),
+ ("KIND_LIST_SET_VIDEO", kinds::KIND_LIST_SET_VIDEO),
+ ("KIND_LIST_SET_PICTURE", kinds::KIND_LIST_SET_PICTURE),
+ ("KIND_LIST_SET_KIND_MUTE", kinds::KIND_LIST_SET_KIND_MUTE),
+ ("KIND_LIST_SET_INTEREST", kinds::KIND_LIST_SET_INTEREST),
+ ("KIND_LIST_SET_EMOJI", kinds::KIND_LIST_SET_EMOJI),
+ (
+ "KIND_LIST_SET_RELEASE_ARTIFACT",
+ kinds::KIND_LIST_SET_RELEASE_ARTIFACT,
+ ),
+ (
+ "KIND_LIST_SET_APP_CURATION",
+ kinds::KIND_LIST_SET_APP_CURATION,
+ ),
+ ("KIND_LIST_SET_CALENDAR", kinds::KIND_LIST_SET_CALENDAR),
+ (
+ "KIND_LIST_SET_STARTER_PACK",
+ kinds::KIND_LIST_SET_STARTER_PACK,
+ ),
+ (
+ "KIND_LIST_SET_MEDIA_STARTER_PACK",
+ kinds::KIND_LIST_SET_MEDIA_STARTER_PACK,
+ ),
+ ("KIND_FARM", kinds::KIND_FARM),
+ ("KIND_PLOT", kinds::KIND_PLOT),
+ ("KIND_COOP", kinds::KIND_COOP),
+ ("KIND_DOCUMENT", kinds::KIND_DOCUMENT),
+ ("KIND_RESOURCE_AREA", kinds::KIND_RESOURCE_AREA),
+ (
+ "KIND_RESOURCE_HARVEST_CAP",
+ kinds::KIND_RESOURCE_HARVEST_CAP,
+ ),
+ ("KIND_ACCOUNT_CLAIM", kinds::KIND_ACCOUNT_CLAIM),
+ ("KIND_APP_DATA", kinds::KIND_APP_DATA),
+ ("KIND_LISTING", kinds::KIND_LISTING),
+ ("KIND_APPLICATION_HANDLER", kinds::KIND_APPLICATION_HANDLER),
+ (
+ "KIND_TRADE_LISTING_VALIDATE_REQ",
+ kinds::KIND_TRADE_LISTING_VALIDATE_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_VALIDATE_RES",
+ kinds::KIND_TRADE_LISTING_VALIDATE_RES,
+ ),
+ (
+ "KIND_WORKER_TRADE_TRANSITION_PROOF_REQ",
+ kinds::KIND_WORKER_TRADE_TRANSITION_PROOF_REQ,
+ ),
+ (
+ "KIND_WORKER_TRADE_TRANSITION_PROOF_RES",
+ kinds::KIND_WORKER_TRADE_TRANSITION_PROOF_RES,
+ ),
+ ("KIND_TRADE_ORDER_REQUEST", kinds::KIND_TRADE_ORDER_REQUEST),
+ (
+ "KIND_TRADE_ORDER_RESPONSE",
+ kinds::KIND_TRADE_ORDER_RESPONSE,
+ ),
+ (
+ "KIND_TRADE_ORDER_DECISION",
+ kinds::KIND_TRADE_ORDER_DECISION,
+ ),
+ (
+ "KIND_TRADE_ORDER_REVISION",
+ kinds::KIND_TRADE_ORDER_REVISION,
+ ),
+ (
+ "KIND_TRADE_ORDER_REVISION_RESPONSE",
+ kinds::KIND_TRADE_ORDER_REVISION_RESPONSE,
+ ),
+ ("KIND_TRADE_QUESTION", kinds::KIND_TRADE_QUESTION),
+ ("KIND_TRADE_ANSWER", kinds::KIND_TRADE_ANSWER),
+ (
+ "KIND_TRADE_DISCOUNT_REQUEST",
+ kinds::KIND_TRADE_DISCOUNT_REQUEST,
+ ),
+ (
+ "KIND_TRADE_DISCOUNT_OFFER",
+ kinds::KIND_TRADE_DISCOUNT_OFFER,
+ ),
+ (
+ "KIND_TRADE_DISCOUNT_ACCEPT",
+ kinds::KIND_TRADE_DISCOUNT_ACCEPT,
+ ),
+ (
+ "KIND_TRADE_FORBIDDEN_3431",
+ kinds::KIND_TRADE_FORBIDDEN_3431,
+ ),
+ ("KIND_TRADE_CANCEL", kinds::KIND_TRADE_CANCEL),
+ (
+ "KIND_TRADE_FULFILLMENT_UPDATE",
+ kinds::KIND_TRADE_FULFILLMENT_UPDATE,
+ ),
+ ("KIND_TRADE_RECEIPT", kinds::KIND_TRADE_RECEIPT),
+ (
+ "KIND_TRADE_VALIDATION_RECEIPT",
+ kinds::KIND_TRADE_VALIDATION_RECEIPT,
+ ),
+ (
+ "KIND_TRADE_LISTING_ORDER_REQ",
+ kinds::KIND_TRADE_LISTING_ORDER_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_ORDER_RES",
+ kinds::KIND_TRADE_LISTING_ORDER_RES,
+ ),
+ (
+ "KIND_TRADE_LISTING_ORDER_REVISION_REQ",
+ kinds::KIND_TRADE_LISTING_ORDER_REVISION_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_ORDER_REVISION_RES",
+ kinds::KIND_TRADE_LISTING_ORDER_REVISION_RES,
+ ),
+ (
+ "KIND_TRADE_LISTING_QUESTION_REQ",
+ kinds::KIND_TRADE_LISTING_QUESTION_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_ANSWER_RES",
+ kinds::KIND_TRADE_LISTING_ANSWER_RES,
+ ),
+ (
+ "KIND_TRADE_LISTING_DISCOUNT_REQ",
+ kinds::KIND_TRADE_LISTING_DISCOUNT_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_DISCOUNT_OFFER_RES",
+ kinds::KIND_TRADE_LISTING_DISCOUNT_OFFER_RES,
+ ),
+ (
+ "KIND_TRADE_LISTING_DISCOUNT_ACCEPT_REQ",
+ kinds::KIND_TRADE_LISTING_DISCOUNT_ACCEPT_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_CANCEL_REQ",
+ kinds::KIND_TRADE_LISTING_CANCEL_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_FULFILLMENT_UPDATE_REQ",
+ kinds::KIND_TRADE_LISTING_FULFILLMENT_UPDATE_REQ,
+ ),
+ (
+ "KIND_TRADE_LISTING_RECEIPT_REQ",
+ kinds::KIND_TRADE_LISTING_RECEIPT_REQ,
+ ),
+ ("KIND_JOB_REQUEST_MIN", kinds::KIND_JOB_REQUEST_MIN),
+ ("KIND_JOB_REQUEST_MAX", kinds::KIND_JOB_REQUEST_MAX),
+ ("KIND_JOB_RESULT_MIN", kinds::KIND_JOB_RESULT_MIN),
+ ("KIND_JOB_RESULT_MAX", kinds::KIND_JOB_RESULT_MAX),
+ ("KIND_JOB_FEEDBACK", kinds::KIND_JOB_FEEDBACK),
+];
+
+fn render_number_constants(exports: &[(&str, u32)]) -> String {
+ let mut rendered = String::new();
+ for (name, value) in exports {
+ rendered.push_str("export const ");
+ rendered.push_str(name);
+ rendered.push_str(" = ");
+ rendered.push_str(&value.to_string());
+ rendered.push_str(";\n");
+ }
+ rendered
+}
+
+fn render_string_array(values: &[&str]) -> String {
+ let items = values
+ .iter()
+ .map(|value| format!("{value:?}"))
+ .collect::<Vec<_>>()
+ .join(", ");
+ format!("[{items}]")
}
diff --git a/crates/identity_bindings/Cargo.toml b/crates/identity_bindings/Cargo.toml
@@ -9,5 +9,4 @@ homepage.workspace = true
publish = false
[dependencies]
-radroots_sdk_binding_model = { path = "../binding_model" }
radroots_identity = { workspace = true }
diff --git a/crates/identity_bindings/src/lib.rs b/crates/identity_bindings/src/lib.rs
@@ -1,28 +1,30 @@
pub use radroots_identity as upstream;
-use radroots_sdk_binding_model::{self as ts, TsValue};
+use radroots_identity::{
+ RADROOTS_USERNAME_MAX_LEN, RADROOTS_USERNAME_MIN_LEN, RADROOTS_USERNAME_REGEX,
+};
-pub fn constants_module() -> ts::TsModule {
- ts::module(vec![
- ts::const_number("RADROOTS_USERNAME_MIN_LEN", 3),
- ts::const_number("RADROOTS_USERNAME_MAX_LEN", 30),
- ts::const_decl(
- "RADROOTS_USERNAME_REGEX",
- None,
- TsValue::String(r#"^(?!.*\.\.)(?!\.)(?!.*\.$)[a-z0-9._-]{3,30}$"#.to_owned()),
- ),
- ])
+pub fn constants_module() -> String {
+ format!(
+ "export const RADROOTS_USERNAME_MIN_LEN = {RADROOTS_USERNAME_MIN_LEN};\nexport const RADROOTS_USERNAME_MAX_LEN = {RADROOTS_USERNAME_MAX_LEN};\nexport const RADROOTS_USERNAME_REGEX = {RADROOTS_USERNAME_REGEX:?};"
+ )
}
#[cfg(test)]
mod tests {
- use super::constants_module;
+ use super::{
+ RADROOTS_USERNAME_MAX_LEN, RADROOTS_USERNAME_MIN_LEN, RADROOTS_USERNAME_REGEX,
+ constants_module,
+ };
#[test]
fn preserves_username_constant_exports() {
- let rendered = constants_module().render();
+ let rendered = constants_module();
assert!(rendered.contains("RADROOTS_USERNAME_MIN_LEN"));
+ assert!(rendered.contains(&RADROOTS_USERNAME_MIN_LEN.to_string()));
assert!(rendered.contains("RADROOTS_USERNAME_MAX_LEN"));
+ assert!(rendered.contains(&RADROOTS_USERNAME_MAX_LEN.to_string()));
assert!(rendered.contains("RADROOTS_USERNAME_REGEX"));
+ assert!(rendered.contains(&format!("{RADROOTS_USERNAME_REGEX:?}")));
}
}
diff --git a/tools/xtask/src/output.rs b/tools/xtask/src/output.rs
@@ -25,6 +25,7 @@ pub struct GeneratedFile {
pub enum TsSource {
DtoRegistry(DtoTypesModule),
Module(TsModule),
+ Raw(String),
}
impl TsSource {
@@ -32,6 +33,7 @@ impl TsSource {
match self {
Self::DtoRegistry(module) => module.body_ts().to_owned(),
Self::Module(module) => module.render(),
+ Self::Raw(body) => body.clone(),
}
}
@@ -39,6 +41,7 @@ impl TsSource {
match self {
Self::DtoRegistry(module) => module.imports_ts(),
Self::Module(_) => None,
+ Self::Raw(_) => None,
}
}
}
@@ -90,10 +93,8 @@ pub fn package_outputs() -> Result<Vec<PackageOutput>, String> {
spec: spec_by_key("events"),
types_ts: Some(TsSource::DtoRegistry(dto_roots::events_types_module()?)),
types_imports_ts: None,
- constants_ts: Some(TsSource::Module(
- radroots_events_bindings::constants_module(),
- )),
- kinds_ts: Some(TsSource::Module(radroots_events_bindings::kinds_module())),
+ constants_ts: Some(TsSource::Raw(radroots_events_bindings::constants_module())),
+ kinds_ts: Some(TsSource::Raw(radroots_events_bindings::kinds_module())),
},
PackageOutput {
spec: spec_by_key("events_indexed"),
@@ -108,9 +109,7 @@ pub fn package_outputs() -> Result<Vec<PackageOutput>, String> {
spec: spec_by_key("identity"),
types_ts: None,
types_imports_ts: None,
- constants_ts: Some(TsSource::Module(
- radroots_identity_bindings::constants_module(),
- )),
+ constants_ts: Some(TsSource::Raw(radroots_identity_bindings::constants_module())),
kinds_ts: None,
},
PackageOutput {