model.rs (7408B)
1 use radroots_events::{kinds, listing::RADROOTS_LISTING_PRODUCT_TAG_KEYS}; 2 3 pub fn constants_module() -> String { 4 format!( 5 "import type {{ RadrootsListingProductTagKeys }} from \"./types.js\";\n\nexport const RADROOTS_LISTING_PRODUCT_TAG_KEYS: RadrootsListingProductTagKeys = {};", 6 render_string_array(&RADROOTS_LISTING_PRODUCT_TAG_KEYS) 7 ) 8 } 9 10 pub fn kinds_module() -> String { 11 render_number_constants(EVENT_KIND_EXPORTS) 12 } 13 14 const EVENT_KIND_EXPORTS: &[(&str, u32)] = &[ 15 ("KIND_PROFILE", kinds::KIND_PROFILE), 16 ("KIND_POST", kinds::KIND_POST), 17 ("KIND_FOLLOW", kinds::KIND_FOLLOW), 18 ("KIND_REACTION", kinds::KIND_REACTION), 19 ("KIND_SEAL", kinds::KIND_SEAL), 20 ("KIND_MESSAGE", kinds::KIND_MESSAGE), 21 ("KIND_MESSAGE_FILE", kinds::KIND_MESSAGE_FILE), 22 ("KIND_GIFT_WRAP", kinds::KIND_GIFT_WRAP), 23 ("KIND_COMMENT", kinds::KIND_COMMENT), 24 ("KIND_GEOCHAT", kinds::KIND_GEOCHAT), 25 ("KIND_LIST_MUTE", kinds::KIND_LIST_MUTE), 26 ("KIND_LIST_PINNED_NOTES", kinds::KIND_LIST_PINNED_NOTES), 27 ( 28 "KIND_LIST_READ_WRITE_RELAYS", 29 kinds::KIND_LIST_READ_WRITE_RELAYS, 30 ), 31 ("KIND_LIST_BOOKMARKS", kinds::KIND_LIST_BOOKMARKS), 32 ("KIND_LIST_COMMUNITIES", kinds::KIND_LIST_COMMUNITIES), 33 ("KIND_LIST_PUBLIC_CHATS", kinds::KIND_LIST_PUBLIC_CHATS), 34 ("KIND_LIST_BLOCKED_RELAYS", kinds::KIND_LIST_BLOCKED_RELAYS), 35 ("KIND_LIST_SEARCH_RELAYS", kinds::KIND_LIST_SEARCH_RELAYS), 36 ("KIND_LIST_SIMPLE_GROUPS", kinds::KIND_LIST_SIMPLE_GROUPS), 37 ("KIND_LIST_RELAY_FEEDS", kinds::KIND_LIST_RELAY_FEEDS), 38 ("KIND_LIST_INTERESTS", kinds::KIND_LIST_INTERESTS), 39 ("KIND_LIST_MEDIA_FOLLOWS", kinds::KIND_LIST_MEDIA_FOLLOWS), 40 ("KIND_LIST_EMOJIS", kinds::KIND_LIST_EMOJIS), 41 ("KIND_LIST_DM_RELAYS", kinds::KIND_LIST_DM_RELAYS), 42 ( 43 "KIND_LIST_GOOD_WIKI_AUTHORS", 44 kinds::KIND_LIST_GOOD_WIKI_AUTHORS, 45 ), 46 ( 47 "KIND_LIST_GOOD_WIKI_RELAYS", 48 kinds::KIND_LIST_GOOD_WIKI_RELAYS, 49 ), 50 ("KIND_LIST_SET_FOLLOW", kinds::KIND_LIST_SET_FOLLOW), 51 ("KIND_LIST_SET_GENERIC", kinds::KIND_LIST_SET_GENERIC), 52 ("KIND_LIST_SET_RELAY", kinds::KIND_LIST_SET_RELAY), 53 ("KIND_LIST_SET_BOOKMARK", kinds::KIND_LIST_SET_BOOKMARK), 54 ("KIND_LIST_SET_CURATION", kinds::KIND_LIST_SET_CURATION), 55 ("KIND_LIST_SET_VIDEO", kinds::KIND_LIST_SET_VIDEO), 56 ("KIND_LIST_SET_PICTURE", kinds::KIND_LIST_SET_PICTURE), 57 ("KIND_LIST_SET_KIND_MUTE", kinds::KIND_LIST_SET_KIND_MUTE), 58 ("KIND_LIST_SET_INTEREST", kinds::KIND_LIST_SET_INTEREST), 59 ("KIND_LIST_SET_EMOJI", kinds::KIND_LIST_SET_EMOJI), 60 ( 61 "KIND_LIST_SET_RELEASE_ARTIFACT", 62 kinds::KIND_LIST_SET_RELEASE_ARTIFACT, 63 ), 64 ( 65 "KIND_LIST_SET_APP_CURATION", 66 kinds::KIND_LIST_SET_APP_CURATION, 67 ), 68 ("KIND_LIST_SET_CALENDAR", kinds::KIND_LIST_SET_CALENDAR), 69 ( 70 "KIND_LIST_SET_STARTER_PACK", 71 kinds::KIND_LIST_SET_STARTER_PACK, 72 ), 73 ( 74 "KIND_LIST_SET_MEDIA_STARTER_PACK", 75 kinds::KIND_LIST_SET_MEDIA_STARTER_PACK, 76 ), 77 ("KIND_FARM", kinds::KIND_FARM), 78 ("KIND_PLOT", kinds::KIND_PLOT), 79 ("KIND_COOP", kinds::KIND_COOP), 80 ("KIND_DOCUMENT", kinds::KIND_DOCUMENT), 81 ("KIND_RESOURCE_AREA", kinds::KIND_RESOURCE_AREA), 82 ( 83 "KIND_RESOURCE_HARVEST_CAP", 84 kinds::KIND_RESOURCE_HARVEST_CAP, 85 ), 86 ("KIND_ACCOUNT_CLAIM", kinds::KIND_ACCOUNT_CLAIM), 87 ("KIND_APP_DATA", kinds::KIND_APP_DATA), 88 ("KIND_LISTING", kinds::KIND_LISTING), 89 ("KIND_APPLICATION_HANDLER", kinds::KIND_APPLICATION_HANDLER), 90 ( 91 "KIND_TRADE_LISTING_VALIDATE_REQ", 92 kinds::KIND_TRADE_LISTING_VALIDATE_REQ, 93 ), 94 ( 95 "KIND_TRADE_LISTING_VALIDATE_RES", 96 kinds::KIND_TRADE_LISTING_VALIDATE_RES, 97 ), 98 ( 99 "KIND_WORKER_TRADE_TRANSITION_PROOF_REQ", 100 kinds::KIND_WORKER_TRADE_TRANSITION_PROOF_REQ, 101 ), 102 ( 103 "KIND_WORKER_TRADE_TRANSITION_PROOF_RES", 104 kinds::KIND_WORKER_TRADE_TRANSITION_PROOF_RES, 105 ), 106 ("KIND_TRADE_ORDER_REQUEST", kinds::KIND_TRADE_ORDER_REQUEST), 107 ( 108 "KIND_TRADE_ORDER_RESPONSE", 109 kinds::KIND_TRADE_ORDER_RESPONSE, 110 ), 111 ( 112 "KIND_TRADE_ORDER_DECISION", 113 kinds::KIND_TRADE_ORDER_DECISION, 114 ), 115 ( 116 "KIND_TRADE_ORDER_REVISION", 117 kinds::KIND_TRADE_ORDER_REVISION, 118 ), 119 ( 120 "KIND_TRADE_ORDER_REVISION_RESPONSE", 121 kinds::KIND_TRADE_ORDER_REVISION_RESPONSE, 122 ), 123 ("KIND_TRADE_QUESTION", kinds::KIND_TRADE_QUESTION), 124 ("KIND_TRADE_ANSWER", kinds::KIND_TRADE_ANSWER), 125 ( 126 "KIND_TRADE_DISCOUNT_REQUEST", 127 kinds::KIND_TRADE_DISCOUNT_REQUEST, 128 ), 129 ( 130 "KIND_TRADE_DISCOUNT_OFFER", 131 kinds::KIND_TRADE_DISCOUNT_OFFER, 132 ), 133 ( 134 "KIND_TRADE_DISCOUNT_ACCEPT", 135 kinds::KIND_TRADE_DISCOUNT_ACCEPT, 136 ), 137 ( 138 "KIND_TRADE_FORBIDDEN_3431", 139 kinds::KIND_TRADE_FORBIDDEN_3431, 140 ), 141 ("KIND_TRADE_CANCEL", kinds::KIND_TRADE_CANCEL), 142 ( 143 "KIND_TRADE_FULFILLMENT_UPDATE", 144 kinds::KIND_TRADE_FULFILLMENT_UPDATE, 145 ), 146 ("KIND_TRADE_RECEIPT", kinds::KIND_TRADE_RECEIPT), 147 ( 148 "KIND_TRADE_VALIDATION_RECEIPT", 149 kinds::KIND_TRADE_VALIDATION_RECEIPT, 150 ), 151 ( 152 "KIND_TRADE_LISTING_ORDER_REQ", 153 kinds::KIND_TRADE_LISTING_ORDER_REQ, 154 ), 155 ( 156 "KIND_TRADE_LISTING_ORDER_RES", 157 kinds::KIND_TRADE_LISTING_ORDER_RES, 158 ), 159 ( 160 "KIND_TRADE_LISTING_ORDER_REVISION_REQ", 161 kinds::KIND_TRADE_LISTING_ORDER_REVISION_REQ, 162 ), 163 ( 164 "KIND_TRADE_LISTING_ORDER_REVISION_RES", 165 kinds::KIND_TRADE_LISTING_ORDER_REVISION_RES, 166 ), 167 ( 168 "KIND_TRADE_LISTING_QUESTION_REQ", 169 kinds::KIND_TRADE_LISTING_QUESTION_REQ, 170 ), 171 ( 172 "KIND_TRADE_LISTING_ANSWER_RES", 173 kinds::KIND_TRADE_LISTING_ANSWER_RES, 174 ), 175 ( 176 "KIND_TRADE_LISTING_DISCOUNT_REQ", 177 kinds::KIND_TRADE_LISTING_DISCOUNT_REQ, 178 ), 179 ( 180 "KIND_TRADE_LISTING_DISCOUNT_OFFER_RES", 181 kinds::KIND_TRADE_LISTING_DISCOUNT_OFFER_RES, 182 ), 183 ( 184 "KIND_TRADE_LISTING_DISCOUNT_ACCEPT_REQ", 185 kinds::KIND_TRADE_LISTING_DISCOUNT_ACCEPT_REQ, 186 ), 187 ( 188 "KIND_TRADE_LISTING_CANCEL_REQ", 189 kinds::KIND_TRADE_LISTING_CANCEL_REQ, 190 ), 191 ( 192 "KIND_TRADE_LISTING_FULFILLMENT_UPDATE_REQ", 193 kinds::KIND_TRADE_LISTING_FULFILLMENT_UPDATE_REQ, 194 ), 195 ( 196 "KIND_TRADE_LISTING_RECEIPT_REQ", 197 kinds::KIND_TRADE_LISTING_RECEIPT_REQ, 198 ), 199 ("KIND_JOB_REQUEST_MIN", kinds::KIND_JOB_REQUEST_MIN), 200 ("KIND_JOB_REQUEST_MAX", kinds::KIND_JOB_REQUEST_MAX), 201 ("KIND_JOB_RESULT_MIN", kinds::KIND_JOB_RESULT_MIN), 202 ("KIND_JOB_RESULT_MAX", kinds::KIND_JOB_RESULT_MAX), 203 ("KIND_JOB_FEEDBACK", kinds::KIND_JOB_FEEDBACK), 204 ]; 205 206 fn render_number_constants(exports: &[(&str, u32)]) -> String { 207 let mut rendered = String::new(); 208 for (name, value) in exports { 209 rendered.push_str("export const "); 210 rendered.push_str(name); 211 rendered.push_str(" = "); 212 rendered.push_str(&value.to_string()); 213 rendered.push_str(";\n"); 214 } 215 rendered 216 } 217 218 fn render_string_array(values: &[&str]) -> String { 219 let items = values 220 .iter() 221 .map(|value| format!("{value:?}")) 222 .collect::<Vec<_>>() 223 .join(", "); 224 format!("[{items}]") 225 }