use const when var immutable, no need for var used only once

This commit is contained in:
Alan Hamlett
2021-01-12 00:06:09 -08:00
parent aa655f7a63
commit 649c64cf1d

View File

@@ -12,7 +12,6 @@ var in_array = require('./../helpers/in_array');
var contains = require('./../helpers/contains'); var contains = require('./../helpers/contains');
class WakaTimeCore { class WakaTimeCore {
constructor() { constructor() {
this.tabsWithDevtoolsOpen = []; this.tabsWithDevtoolsOpen = [];
} }
@@ -33,17 +32,14 @@ class WakaTimeCore {
$.ajax({ $.ajax({
url: config.summariesApiUrl + '?start=' + today + '&end=' + today, url: config.summariesApiUrl + '?start=' + today + '&end=' + today,
dataType: 'json', dataType: 'json',
success: (data) => { success: data => {
deferredObject.resolve(data.data[0].grand_total); deferredObject.resolve(data.data[0].grand_total);
}, },
error: (xhr, status, err) => { error: (xhr, status, err) => {
console.error(config.summariesApiUrl, status, err.toString()); console.error(config.summariesApiUrl, status, err.toString());
deferredObject.resolve(false); deferredObject.resolve(false);
} },
}); });
return deferredObject.promise(); return deferredObject.promise();
@@ -60,13 +56,13 @@ class WakaTimeCore {
$.ajax({ $.ajax({
url: config.currentUserApiUrl, url: config.currentUserApiUrl,
dataType: 'json', dataType: 'json',
success: (data) => { success: data => {
deferredObject.resolve(data.data); deferredObject.resolve(data.data);
}, },
error: (xhr, status, err) => { error: (xhr, status, err) => {
console.error(config.currentUserApiUrl, status, err.toString()); console.error(config.currentUserApiUrl, status, err.toString());
deferredObject.resolve(false); deferredObject.resolve(false);
} },
}); });
return deferredObject.promise(); return deferredObject.promise();
@@ -77,19 +73,21 @@ class WakaTimeCore {
* and sends it to WakaTime for logging. * and sends it to WakaTime for logging.
*/ */
recordHeartbeat() { recordHeartbeat() {
browser.storage.sync.get({ browser.storage.sync
.get({
loggingEnabled: config.loggingEnabled, loggingEnabled: config.loggingEnabled,
loggingStyle: config.loggingStyle, loggingStyle: config.loggingStyle,
blacklist: '', blacklist: '',
whitelist: '' whitelist: '',
}).then((items) => { })
.then(items => {
if (items.loggingEnabled === true) { if (items.loggingEnabled === true) {
changeExtensionState('allGood'); changeExtensionState('allGood');
browser.idle.queryState(config.detectionIntervalInSeconds).then((newState) => { browser.idle.queryState(config.detectionIntervalInSeconds).then(newState => {
if (newState === 'active') { if (newState === 'active') {
// Get current tab URL. // Get current tab URL.
browser.tabs.query({currentWindow: true, active: true}).then((tabs) => { browser.tabs.query({ currentWindow: true, active: true }).then(tabs => {
if (tabs.length == 0) return; if (tabs.length == 0) return;
var currentActiveTab = tabs[0]; var currentActiveTab = tabs[0];
@@ -101,13 +99,15 @@ class WakaTimeCore {
} }
if (items.loggingStyle == 'blacklist') { if (items.loggingStyle == 'blacklist') {
if (! contains(currentActiveTab.url, items.blacklist)) { if (!contains(currentActiveTab.url, items.blacklist)) {
this.sendHeartbeat({ this.sendHeartbeat(
{
url: currentActiveTab.url, url: currentActiveTab.url,
project: null, project: null,
}, debug); },
} debug,
else { );
} else {
changeExtensionState('blacklisted'); changeExtensionState('blacklisted');
console.log(currentActiveTab.url + ' is on a blacklist.'); console.log(currentActiveTab.url + ' is on a blacklist.');
} }
@@ -117,18 +117,15 @@ class WakaTimeCore {
var heartbeat = this.getHeartbeat(currentActiveTab.url, items.whitelist); var heartbeat = this.getHeartbeat(currentActiveTab.url, items.whitelist);
if (heartbeat.url) { if (heartbeat.url) {
this.sendHeartbeat(heartbeat, debug); this.sendHeartbeat(heartbeat, debug);
} } else {
else {
changeExtensionState('whitelisted'); changeExtensionState('whitelisted');
console.log(currentActiveTab.url + ' is not on a whitelist.'); console.log(currentActiveTab.url + ' is not on a whitelist.');
} }
} }
}); });
} }
}); });
} } else {
else {
changeExtensionState('notLogging'); changeExtensionState('notLogging');
} }
}); });
@@ -144,17 +141,17 @@ class WakaTimeCore {
* @returns {object} * @returns {object}
*/ */
getHeartbeat(url, list) { getHeartbeat(url, list) {
var lines = list.split('\n'); const projectIndicatorCharacters = '@@';
const lines = list.split('\n');
for (var i = 0; i < lines.length; i++) { for (var i = 0; i < lines.length; i++) {
// strip (http:// or https://) and trailing (`/` or `@@`) // strip (http:// or https://) and trailing (`/` or `@@`)
var line = lines[i]; var cleanLine = lines[i]
var cleanLine = line.trim().replace(/(\/|@@)$/, '').replace(/^(?:https?:\/\/)?/i, ''); .trim()
var emptyLine = cleanLine === ''; .replace(/(\/|@@)$/, '')
if (emptyLine) { .replace(/^(?:https?:\/\/)?/i, '');
continue; if (cleanLine === '') continue;
}
var projectIndicatorCharacters = '@@';
var projectIndicatorIndex = cleanLine.lastIndexOf(projectIndicatorCharacters); var projectIndicatorIndex = cleanLine.lastIndexOf(projectIndicatorCharacters);
var projectIndicatorExists = projectIndicatorIndex > -1; var projectIndicatorExists = projectIndicatorIndex > -1;
var projectName = null; var projectName = null;
@@ -162,7 +159,9 @@ class WakaTimeCore {
if (projectIndicatorExists) { if (projectIndicatorExists) {
var start = projectIndicatorIndex + projectIndicatorCharacters.length; var start = projectIndicatorIndex + projectIndicatorCharacters.length;
projectName = cleanLine.substring(start); projectName = cleanLine.substring(start);
urlFromLine = cleanLine.replace(cleanLine.substring(projectIndicatorIndex), '').replace(/\/$/, ''); urlFromLine = cleanLine
.replace(cleanLine.substring(projectIndicatorIndex), '')
.replace(/\/$/, '');
} }
var schemaHttpExists = url.match(/^http:\/\//i); var schemaHttpExists = url.match(/^http:\/\//i);
var schemaHttpsExists = url.match(/^https:\/\//i); var schemaHttpsExists = url.match(/^https:\/\//i);
@@ -173,12 +172,15 @@ class WakaTimeCore {
if (schemaHttpsExists) { if (schemaHttpsExists) {
schema = 'https://'; schema = 'https://';
} }
var cleanUrl = url.trim().replace(/(\/|@@)$/, '').replace(/^(?:https?:\/\/)?/i, ''); var cleanUrl = url
.trim()
.replace(/(\/|@@)$/, '')
.replace(/^(?:https?:\/\/)?/i, '');
var startsWithUrl = cleanUrl.toLowerCase().indexOf(urlFromLine.toLowerCase()) > -1; var startsWithUrl = cleanUrl.toLowerCase().indexOf(urlFromLine.toLowerCase()) > -1;
if (startsWithUrl) { if (startsWithUrl) {
return { return {
url: schema + urlFromLine, url: schema + urlFromLine,
project: projectName project: projectName,
}; };
} }
} }
@@ -205,11 +207,10 @@ class WakaTimeCore {
time: moment().format('X'), time: moment().format('X'),
project: heartbeat.project || '<<LAST_PROJECT>>', project: heartbeat.project || '<<LAST_PROJECT>>',
is_debugging: debug, is_debugging: debug,
plugin: 'browser-wakatime/' + config.version plugin: 'browser-wakatime/' + config.version,
}); });
} }
/** /**
* Returns a promise with logging type variable. * Returns a promise with logging type variable.
* *
@@ -219,9 +220,11 @@ class WakaTimeCore {
_getLoggingType() { _getLoggingType() {
var deferredObject = $.Deferred(); var deferredObject = $.Deferred();
browser.storage.sync.get({ browser.storage.sync
loggingType: config.loggingType .get({
}).then(function (items) { loggingType: config.loggingType,
})
.then(function (items) {
deferredObject.resolve(items.loggingType); deferredObject.resolve(items.loggingType);
}); });
@@ -238,7 +241,7 @@ class WakaTimeCore {
sendHeartbeat(heartbeat, debug) { sendHeartbeat(heartbeat, debug) {
var payload = null; var payload = null;
this._getLoggingType().done((loggingType) => { this._getLoggingType().done(loggingType => {
// Get only the domain from the entity. // Get only the domain from the entity.
// And send that in heartbeat // And send that in heartbeat
if (loggingType == 'domain') { if (loggingType == 'domain') {
@@ -264,7 +267,6 @@ class WakaTimeCore {
* @returns {*} * @returns {*}
*/ */
sendAjaxRequestToApi(payload, method = 'POST') { sendAjaxRequestToApi(payload, method = 'POST') {
var deferredObject = $.Deferred(); var deferredObject = $.Deferred();
$.ajax({ $.ajax({
@@ -279,21 +281,20 @@ class WakaTimeCore {
}, },
201: function () { 201: function () {
// nothing to do here // nothing to do here
}
}, },
success: (response) => { },
success: response => {
deferredObject.resolve(this); deferredObject.resolve(this);
}, },
error: (xhr, status, err) => { error: (xhr, status, err) => {
console.error(config.heartbeatApiUrl, status, err.toString()); console.error(config.heartbeatApiUrl, status, err.toString());
deferredObject.resolve(this); deferredObject.resolve(this);
} },
}); });
return deferredObject.promise(); return deferredObject.promise();
} }
} }
export default WakaTimeCore; export default WakaTimeCore;