1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/url.js
2016-04-29 16:32:48 +02:00

97 lines
5.8 KiB
JavaScript

(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var _ = Package.underscore._;
/* Package-scope variables */
var URL, buildUrl;
(function(){
/////////////////////////////////////////////////////////////////////////////////////
// //
// packages/url/url_common.js //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
URL = {}; // 1
// 2
var encodeString = function(str) { // 3
return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}; // 5
// 6
// 7
URL._encodeParams = function(params) { // 8
var buf = []; // 9
_.each(params, function(value, key) { // 10
if (buf.length) // 11
buf.push('&'); // 12
buf.push(encodeString(key), '=', encodeString(value)); // 13
}); // 14
return buf.join('').replace(/%20/g, '+'); // 15
}; // 16
// 17
// 18
buildUrl = function(before_qmark, from_qmark, opt_query, opt_params) { // 19
var url_without_query = before_qmark; // 20
var query = from_qmark ? from_qmark.slice(1) : null; // 21
// 22
if (typeof opt_query === "string") // 23
query = String(opt_query); // 24
// 25
if (opt_params) { // 26
query = query || ""; // 27
var prms = URL._encodeParams(opt_params); // 28
if (query && prms) // 29
query += '&'; // 30
query += prms; // 31
} // 32
// 33
var url = url_without_query; // 34
if (query !== null) // 35
url += ("?"+query); // 36
// 37
return url; // 38
}; // 39
// 40
/////////////////////////////////////////////////////////////////////////////////////
}).call(this);
(function(){
/////////////////////////////////////////////////////////////////////////////////////
// //
// packages/url/url_server.js //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
var url_util = Npm.require('url'); // 1
// 2
URL._constructUrl = function (url, query, params) { // 3
var url_parts = url_util.parse(url); // 4
return buildUrl( // 5
url_parts.protocol + "//" + url_parts.host + url_parts.pathname, // 6
url_parts.search, query, params); // 7
}; // 8
// 9
/////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package.url = {
URL: URL
};
})();
//# sourceMappingURL=url.js.map