mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
97 lines
5.8 KiB
JavaScript
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
|