comparison mod_conversejs/mod_conversejs.lua @ 4147:3a06dea21ea1

mod_conversejs: Enable serving resources from built-in http server This enables using release archives or locally built Converse.js
author Kim Alvefur <zash@zash.se>
date Sun, 20 Sep 2020 17:06:00 +0200
parents 36b6e3e3f9e2
children 4ee2a90d3818
comparison
equal deleted inserted replaced
4146:bebc5740fc16 4147:3a06dea21ea1
21 21
22 local cdn_url = module:get_option_string("conversejs_cdn", "https://cdn.conversejs.org"); 22 local cdn_url = module:get_option_string("conversejs_cdn", "https://cdn.conversejs.org");
23 23
24 local version = module:get_option_string("conversejs_version", ""); 24 local version = module:get_option_string("conversejs_version", "");
25 if version ~= "" then version = "/" .. version end 25 if version ~= "" then version = "/" .. version end
26
27 local serve_dist = nil;
28 local resources = module:get_option_path("conversejs_resources");
29 if resources then
30 local serve;
31 if not pcall(function()
32 -- Prosody >= trunk / 0.12
33 local http_files = require "net.http.files";
34 serve = http_files.serve;
35 end) then
36 -- Prosody <= 0.11
37 serve = module:depends "http_files".serve;
38 end
39 local mime_map = module:shared("/*/http_files/mime").types or {css = "text/css"; js = "application/javascript"};
40 serve_dist = serve({path = resources; mime_map = mime_map});
41
42 cdn_url = module:http_url();
43 end
44
26 local js_url = module:get_option_string("conversejs_script", cdn_url..version.."/dist/converse.min.js"); 45 local js_url = module:get_option_string("conversejs_script", cdn_url..version.."/dist/converse.min.js");
27 local css_url = module:get_option_string("conversejs_css", cdn_url..version.."/dist/converse.min.css"); 46 local css_url = module:get_option_string("conversejs_css", cdn_url..version.."/dist/converse.min.css");
28 47
29 local html_template; 48 local html_template;
30 49
110 local converse_options = get_converse_options(); 129 local converse_options = get_converse_options();
111 130
112 event.response.headers.content_type = "application/javascript"; 131 event.response.headers.content_type = "application/javascript";
113 return js_template:format(json_encode(converse_options)); 132 return js_template:format(json_encode(converse_options));
114 end; 133 end;
134 ["GET /dist/*"] = serve_dist;
115 } 135 }
116 }); 136 });
117 137