diff 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
line wrap: on
line diff
--- a/mod_conversejs/mod_conversejs.lua	Sun Sep 20 15:57:04 2020 +0100
+++ b/mod_conversejs/mod_conversejs.lua	Sun Sep 20 17:06:00 2020 +0200
@@ -23,6 +23,25 @@
 
 local version = module:get_option_string("conversejs_version", "");
 if version ~= "" then version = "/" .. version end
+
+local serve_dist = nil;
+local resources = module:get_option_path("conversejs_resources");
+if resources then
+	local serve;
+	if not pcall(function()
+		-- Prosody >= trunk / 0.12
+		local http_files = require "net.http.files";
+		serve = http_files.serve;
+	end) then
+		-- Prosody <= 0.11
+		serve = module:depends "http_files".serve;
+	end
+	local mime_map = module:shared("/*/http_files/mime").types or {css = "text/css"; js = "application/javascript"};
+	serve_dist = serve({path = resources; mime_map = mime_map});
+
+	cdn_url = module:http_url();
+end
+
 local js_url = module:get_option_string("conversejs_script", cdn_url..version.."/dist/converse.min.js");
 local css_url = module:get_option_string("conversejs_css", cdn_url..version.."/dist/converse.min.css");
 
@@ -112,6 +131,7 @@
 			event.response.headers.content_type = "application/javascript";
 			return js_template:format(json_encode(converse_options));
 		end;
+		["GET /dist/*"] = serve_dist;
 	}
 });