Remove some lodash deps.

This commit is contained in:
Lars Jung
2016-06-20 00:13:52 +02:00
parent fe9cdbc46b
commit 3246525d78
6 changed files with 48 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
const {lo} = require('../globals'); const isNum = x => typeof x === 'number';
const decimalMetric = { const decimalMetric = {
t: 1000.0, t: 1000.0,
@@ -30,14 +30,14 @@ const datePatterns = [
let defaultDateFormat = 'YYYY-MM-DD HH:mm'; let defaultDateFormat = 'YYYY-MM-DD HH:mm';
function setDefaultMetric(useBinaryMetric) { const setDefaultMetric = useBinaryMetric => {
defaultMetric = useBinaryMetric ? binaryMetric : decimalMetric; defaultMetric = useBinaryMetric ? binaryMetric : decimalMetric;
} };
function formatSize(size, metric) { const formatSize = (size, metric) => {
metric = metric || defaultMetric; metric = metric || defaultMetric;
if (!lo.isNumber(size) || size < 0) { if (!isNum(size) || size < 0) {
return ''; return '';
} }
@@ -49,22 +49,22 @@ function formatSize(size, metric) {
i += 1; i += 1;
} }
return (i <= 1 ? Math.round(size) : size.toFixed(1)).toString() + ' ' + metric.u[i]; return (i <= 1 ? Math.round(size) : size.toFixed(1)).toString() + ' ' + metric.u[i];
} };
function setDefaultDateFormat(dateFormat) { const setDefaultDateFormat = dateFormat => {
defaultDateFormat = dateFormat; defaultDateFormat = dateFormat;
} };
function formatNumber(number, padding) { const formatNumber = (number, padding) => {
let str = String(number); let str = String(number);
if (padding) { if (padding) {
str = ('000' + str).substr(-padding); str = ('000' + str).substr(-padding);
} }
return str; return str;
} };
function formatDate(millis, format) { const formatDate = (millis, format) => {
if (!millis || !lo.isNumber(millis)) { if (!millis || !isNum(millis)) {
return ''; return '';
} }
@@ -85,7 +85,7 @@ function formatDate(millis, format) {
}); });
return format; return format;
} };
module.exports = { module.exports = {

View File

@@ -6,7 +6,7 @@ const event = require('./event');
const notification = require('../view/notification'); const notification = require('../view/notification');
const doc = win.document; const doc = win.document;
const settings = lo.extend({ const settings = Object.assign({
fastBrowsing: true, fastBrowsing: true,
unmanagedInNewWindow: true unmanagedInNewWindow: true
}, allsettings.view); }, allsettings.view);

View File

@@ -1,7 +1,8 @@
const {lo} = require('../globals');
const config = require('../config'); const config = require('../config');
const settings = require('./settings'); const settings = require('./settings');
const includes = (arr, x) => arr.indexOf(x) >= 0;
const imagesHref = settings.publicHref + 'images/'; const imagesHref = settings.publicHref + 'images/';
const uiHref = imagesHref + 'ui/'; const uiHref = imagesHref + 'ui/';
const themesHref = imagesHref + 'themes/'; const themesHref = imagesHref + 'themes/';
@@ -21,11 +22,11 @@ function icon(id) {
return themesHref + href; return themesHref + href;
} }
if (lo.includes(defaultIcons, id)) { if (includes(defaultIcons, id)) {
return defaultThemeHref + id + '.svg'; return defaultThemeHref + id + '.svg';
} }
if (lo.includes(defaultIcons, baseId)) { if (includes(defaultIcons, baseId)) {
return defaultThemeHref + baseId + '.svg'; return defaultThemeHref + baseId + '.svg';
} }

View File

@@ -4,26 +4,26 @@ const store = win.localStorage;
const storekey = '_h5ai'; const storekey = '_h5ai';
function load() { const load = () => {
try { try {
return JSON.parse(store[storekey]); return JSON.parse(store[storekey]);
} catch (e) {/* skip */} } catch (e) {/* skip */}
return {}; return {};
} };
function save(obj) { const save = obj => {
store[storekey] = JSON.stringify(obj); store[storekey] = JSON.stringify(obj);
} };
function put(key, value) { const put = (key, value) => {
const obj = load(); const obj = load();
obj[key] = value; obj[key] = value;
save(obj); save(obj);
} };
function get(key) { const get = key => {
return load()[key]; return load()[key];
} };
module.exports = { module.exports = {

View File

@@ -1,23 +1,25 @@
const {lo} = require('../globals');
const config = require('../config'); const config = require('../config');
const each = (obj, fn) => Object.keys(obj).forEach(key => fn(obj[key], key));
const map = (arr, fn) => Array.from(arr, fn);
const reEndsWithSlash = /\/$/; const reEndsWithSlash = /\/$/;
const regexps = {}; const regexps = {};
function escapeRegExp(sequence) { const escapeRegExp = sequence => {
return sequence.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$]/g, '\\$&'); return sequence.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$]/g, '\\$&');
// return sequence.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); // return sequence.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
} };
function parse(types) { const parse = types => {
lo.each(types, (patterns, type) => { each(types, (patterns, type) => {
const pattern = '^(' + lo.map(patterns, p => '(' + escapeRegExp(p).replace(/\*/g, '.*') + ')').join('|') + ')$'; const pattern = '^(' + map(patterns, p => '(' + escapeRegExp(p).replace(/\*/g, '.*') + ')').join('|') + ')$';
regexps[type] = new RegExp(pattern, 'i'); regexps[type] = new RegExp(pattern, 'i');
}); });
} };
function getType(sequence) { const getType = sequence => {
if (reEndsWithSlash.test(sequence)) { if (reEndsWithSlash.test(sequence)) {
return 'folder'; return 'folder';
} }
@@ -26,15 +28,14 @@ function getType(sequence) {
const name = slashidx >= 0 ? sequence.substr(slashidx + 1) : sequence; const name = slashidx >= 0 ? sequence.substr(slashidx + 1) : sequence;
let result; let result;
lo.each(regexps, (regexp, type) => { // eslint-disable-line consistent-return each(regexps, (regexp, type) => {
if (regexps[type].test(name)) { if (regexps[type].test(name)) {
result = type; result = type;
return false;
} }
}); });
return result ? result : 'file'; return result ? result : 'file';
} };
parse(Object.assign({}, config.types)); parse(Object.assign({}, config.types));

View File

@@ -1,6 +1,4 @@
const {lo} = require('../globals'); const regularCmpFn = (val1, val2) => {
function regularCmpFn(val1, val2) {
if (val1 < val2) { if (val1 < val2) {
return -1; return -1;
} }
@@ -8,13 +6,13 @@ function regularCmpFn(val1, val2) {
return 1; return 1;
} }
return 0; return 0;
} };
// Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license // Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license
// Author: Jim Palmer (based on chunking idea from Dave Koelle) // Author: Jim Palmer (based on chunking idea from Dave Koelle)
// //
// Modified to make it work with h5ai // Modified to make it work with h5ai
function naturalCmpFn(val1, val2) { const naturalCmpFn = (val1, val2) => {
const re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi; const re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi;
const sre = /(^[ ]*|[ ]*$)/g; const sre = /(^[ ]*|[ ]*$)/g;
const dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/; const dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/;
@@ -60,13 +58,13 @@ function naturalCmpFn(val1, val2) {
} }
} }
return 0; return 0;
} };
function escapePattern(sequence) { const escapePattern = sequence => {
return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&'); return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&');
} };
function parsePattern(sequence, advanced) { const parsePattern = (sequence, advanced) => {
if (!advanced) { if (!advanced) {
return escapePattern(sequence); return escapePattern(sequence);
} }
@@ -75,14 +73,10 @@ function parsePattern(sequence, advanced) {
return sequence.substr(3); return sequence.substr(3);
} }
sequence = lo.map(lo.trim(sequence).split(/\s+/), part => { return sequence.trim().split(/\s+/).map(part => {
return lo.map(part.split(''), character => { return part.split('').map(char => escapePattern(char)).join('.*?');
return escapePattern(character);
}).join('.*?');
}).join('|'); }).join('|');
};
return sequence;
}
module.exports = { module.exports = {