blob: 8556951c38a10681c4baad1f2f971f71d1b36ee5 (
plain) (
tree)
|
|
/*global exports: false, require: false, console: false, Cc: false, Ci: false */
/*jslint onevar: false */
// Released under the MIT/X11 license
// http://www.opensource.org/licenses/mit-license.php
"use strict";
// ==============================================================
var Cc = require("chrome").Cc;
var Ci = require("chrome").Ci;
var urlMod = require("url");
/**
* get parameters of URL as an object (name, value)
*/
function getParamsFromURL (url, base) {
if (!url || (url.toString().length === 0)) {
throw new Error("Missing URL value!");
}
if (!(url instanceof urlMod.URL)) {
url = new urlMod.URL(url.toString(), base);
}
var paramsArr = url.path.split("?");
if (paramsArr.length === 1) {
return {};
}
// get convert URL parameters to an Object
var params = {}, s = [];
paramsArr[1].split('&').forEach(function(par) {
s = par.split('=');
params[s[0]] = s[1];
});
return params;
}
/**
* Get a bug no from URL ... fails with aliases
* It should theoretically belong to bzpage.js, but we don't have
* unit tests there yet, so keeping here.
*
* @param url String with URL to be analyzed
* @return String with the bug ID (hopefully number, but not for aliases)
*/
exports.getBugNo = function getBugNo(url) {
var params = getParamsFromURL(url);
if (params && params.id) {
return params.id;
}
};
/**
* format date to be in ISO format (just day part)
*
* @param date
* @return string with the formatted date
*/
exports.getISODate = function getISODate(dateStr) {
function pad(n) {
return n < 10 ? '0' + n : n;
}
var date = new Date(dateStr);
return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' +
pad(date.getDate());
};
|