model.rs (6183B)
1 use dto_bindgen_backend_ts::{ 2 TypeScriptDeclaration, TypeScriptImport, TypeScriptModule, TypeScriptType, TypeScriptValue, 3 }; 4 use radroots_event::{ 5 envelope::kind as kinds, listing::operational::RADROOTS_OPERATIONAL_LISTING_PRODUCT_TAG_KEYS, 6 }; 7 8 pub fn constants_module() -> TypeScriptModule { 9 TypeScriptModule::new("src/generated/constants.ts") 10 .with_import(TypeScriptImport::type_only( 11 ["RadrootsOperationalListingProductTagKeys"], 12 "./types.js", 13 )) 14 .with_declaration(TypeScriptDeclaration::constant( 15 "RADROOTS_OPERATIONAL_LISTING_PRODUCT_TAG_KEYS", 16 Some(TypeScriptType::named( 17 "RadrootsOperationalListingProductTagKeys", 18 )), 19 TypeScriptValue::array( 20 RADROOTS_OPERATIONAL_LISTING_PRODUCT_TAG_KEYS 21 .iter() 22 .map(|value| TypeScriptValue::string(*value)) 23 .collect::<Vec<_>>(), 24 ), 25 )) 26 } 27 28 pub fn kinds_module() -> TypeScriptModule { 29 EVENT_KIND_EXPORTS.iter().fold( 30 TypeScriptModule::new("src/generated/kinds.ts"), 31 |module, (name, value)| { 32 module.with_declaration(TypeScriptDeclaration::constant( 33 *name, 34 None, 35 TypeScriptValue::number(i64::from(*value)), 36 )) 37 }, 38 ) 39 } 40 41 const EVENT_KIND_EXPORTS: &[(&str, u32)] = &[ 42 ("KIND_PROFILE", kinds::KIND_PROFILE), 43 ("KIND_POST", kinds::KIND_POST), 44 ("KIND_FOLLOW", kinds::KIND_FOLLOW), 45 ("KIND_REACTION", kinds::KIND_REACTION), 46 ("KIND_SEAL", kinds::KIND_SEAL), 47 ("KIND_MESSAGE", kinds::KIND_MESSAGE), 48 ("KIND_MESSAGE_FILE", kinds::KIND_MESSAGE_FILE), 49 ("KIND_GIFT_WRAP", kinds::KIND_GIFT_WRAP), 50 ("KIND_COMMENT", kinds::KIND_COMMENT), 51 ("KIND_GEOCHAT", kinds::KIND_GEOCHAT), 52 ("KIND_WIKI_MERGE_REQUEST", kinds::KIND_WIKI_MERGE_REQUEST), 53 ("KIND_WIKI_ARTICLE", kinds::KIND_WIKI_ARTICLE), 54 ("KIND_WIKI_REDIRECT", kinds::KIND_WIKI_REDIRECT), 55 ("KIND_LIST_MUTE", kinds::KIND_LIST_MUTE), 56 ("KIND_LIST_PINNED_NOTES", kinds::KIND_LIST_PINNED_NOTES), 57 ( 58 "KIND_LIST_READ_WRITE_RELAYS", 59 kinds::KIND_LIST_READ_WRITE_RELAYS, 60 ), 61 ("KIND_LIST_BOOKMARKS", kinds::KIND_LIST_BOOKMARKS), 62 ("KIND_LIST_COMMUNITIES", kinds::KIND_LIST_COMMUNITIES), 63 ("KIND_LIST_PUBLIC_CHATS", kinds::KIND_LIST_PUBLIC_CHATS), 64 ("KIND_LIST_BLOCKED_RELAYS", kinds::KIND_LIST_BLOCKED_RELAYS), 65 ("KIND_LIST_SEARCH_RELAYS", kinds::KIND_LIST_SEARCH_RELAYS), 66 ("KIND_LIST_SIMPLE_GROUPS", kinds::KIND_LIST_SIMPLE_GROUPS), 67 ("KIND_LIST_RELAY_FEEDS", kinds::KIND_LIST_RELAY_FEEDS), 68 ("KIND_LIST_INTERESTS", kinds::KIND_LIST_INTERESTS), 69 ("KIND_LIST_MEDIA_FOLLOWS", kinds::KIND_LIST_MEDIA_FOLLOWS), 70 ("KIND_LIST_EMOJIS", kinds::KIND_LIST_EMOJIS), 71 ("KIND_LIST_DM_RELAYS", kinds::KIND_LIST_DM_RELAYS), 72 ( 73 "KIND_LIST_GOOD_WIKI_AUTHORS", 74 kinds::KIND_LIST_GOOD_WIKI_AUTHORS, 75 ), 76 ( 77 "KIND_LIST_GOOD_WIKI_RELAYS", 78 kinds::KIND_LIST_GOOD_WIKI_RELAYS, 79 ), 80 ("KIND_LIST_SET_FOLLOW", kinds::KIND_LIST_SET_FOLLOW), 81 ("KIND_LIST_SET_GENERIC", kinds::KIND_LIST_SET_GENERIC), 82 ("KIND_LIST_SET_RELAY", kinds::KIND_LIST_SET_RELAY), 83 ("KIND_LIST_SET_BOOKMARK", kinds::KIND_LIST_SET_BOOKMARK), 84 ("KIND_LIST_SET_CURATION", kinds::KIND_LIST_SET_CURATION), 85 ("KIND_LIST_SET_VIDEO", kinds::KIND_LIST_SET_VIDEO), 86 ("KIND_LIST_SET_PICTURE", kinds::KIND_LIST_SET_PICTURE), 87 ("KIND_LIST_SET_KIND_MUTE", kinds::KIND_LIST_SET_KIND_MUTE), 88 ("KIND_LIST_SET_INTEREST", kinds::KIND_LIST_SET_INTEREST), 89 ("KIND_LIST_SET_EMOJI", kinds::KIND_LIST_SET_EMOJI), 90 ( 91 "KIND_LIST_SET_RELEASE_ARTIFACT", 92 kinds::KIND_LIST_SET_RELEASE_ARTIFACT, 93 ), 94 ( 95 "KIND_LIST_SET_APP_CURATION", 96 kinds::KIND_LIST_SET_APP_CURATION, 97 ), 98 ("KIND_LIST_SET_CALENDAR", kinds::KIND_LIST_SET_CALENDAR), 99 ( 100 "KIND_LIST_SET_STARTER_PACK", 101 kinds::KIND_LIST_SET_STARTER_PACK, 102 ), 103 ( 104 "KIND_LIST_SET_MEDIA_STARTER_PACK", 105 kinds::KIND_LIST_SET_MEDIA_STARTER_PACK, 106 ), 107 ("KIND_FARM", kinds::KIND_FARM), 108 ("KIND_PLOT", kinds::KIND_PLOT), 109 ("KIND_COOP", kinds::KIND_COOP), 110 ("KIND_DOCUMENT", kinds::KIND_DOCUMENT), 111 ("KIND_RESOURCE_AREA", kinds::KIND_RESOURCE_AREA), 112 ( 113 "KIND_RESOURCE_HARVEST_CAP", 114 kinds::KIND_RESOURCE_HARVEST_CAP, 115 ), 116 ("KIND_ACCOUNT_CLAIM", kinds::KIND_ACCOUNT_CLAIM), 117 ("KIND_APP_DATA", kinds::KIND_APP_DATA), 118 ("KIND_CLASSIFIED_LISTING", kinds::KIND_CLASSIFIED_LISTING), 119 ("KIND_APPLICATION_HANDLER", kinds::KIND_APPLICATION_HANDLER), 120 ("KIND_TRADE_PROPOSAL", kinds::KIND_TRADE_PROPOSAL), 121 ("KIND_TRADE_DECISION", kinds::KIND_TRADE_DECISION), 122 ( 123 "KIND_TRADE_REVISION_PROPOSAL", 124 kinds::KIND_TRADE_REVISION_PROPOSAL, 125 ), 126 ( 127 "KIND_TRADE_REVISION_DECISION", 128 kinds::KIND_TRADE_REVISION_DECISION, 129 ), 130 ("KIND_TRADE_CANCELLATION", kinds::KIND_TRADE_CANCELLATION), 131 ( 132 "KIND_TRADE_SELLER_RESERVATION_ASSERTION", 133 kinds::KIND_TRADE_SELLER_RESERVATION_ASSERTION, 134 ), 135 ( 136 "KIND_RHI_EVIDENCE_ATTESTATION", 137 kinds::KIND_RHI_EVIDENCE_ATTESTATION, 138 ), 139 ("KIND_KNOWLEDGE_CLAIM", kinds::KIND_KNOWLEDGE_CLAIM), 140 ("KIND_KNOWLEDGE_RELATION", kinds::KIND_KNOWLEDGE_RELATION), 141 ("KIND_KNOWLEDGE_REVIEW", kinds::KIND_KNOWLEDGE_REVIEW), 142 ( 143 "KIND_KNOWLEDGE_FIELD_REPORT", 144 kinds::KIND_KNOWLEDGE_FIELD_REPORT, 145 ), 146 ( 147 "KIND_KNOWLEDGE_CHANGE_PROPOSAL", 148 kinds::KIND_KNOWLEDGE_CHANGE_PROPOSAL, 149 ), 150 ( 151 "KIND_CONTRIBUTION_ATTESTATION", 152 kinds::KIND_CONTRIBUTION_ATTESTATION, 153 ), 154 ("KIND_KNOWLEDGE_SOURCE", kinds::KIND_KNOWLEDGE_SOURCE), 155 ("KIND_EVIDENCE_BOUNTY", kinds::KIND_EVIDENCE_BOUNTY), 156 ("KIND_JOB_REQUEST_MIN", kinds::KIND_JOB_REQUEST_MIN), 157 ("KIND_JOB_REQUEST_MAX", kinds::KIND_JOB_REQUEST_MAX), 158 ("KIND_JOB_RESULT_MIN", kinds::KIND_JOB_RESULT_MIN), 159 ("KIND_JOB_RESULT_MAX", kinds::KIND_JOB_RESULT_MAX), 160 ("KIND_JOB_FEEDBACK", kinds::KIND_JOB_FEEDBACK), 161 ];