-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtools.js
More file actions
42 lines (38 loc) · 1.38 KB
/
tools.js
File metadata and controls
42 lines (38 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
* Tools helpers.
*/
/**
* @desc Function to evaluate numbers of release from last release
* @param {String} release - Version string (e.g. '2.3.4' or 'v2.3.4')
* @returns {Array} Array of version number parts
*/
export const releasesNumber = (release) => {
const numbers = release[0] === 'v' ? release.substr(1).split('.') : release.split('.'); // get numbers last release
numbers.pop();
numbers[0] = numbers[0] === '1' ? '1' : String(parseInt(numbers[0], 10) * 10); // calc aproximativly number of release
return numbers;
};
/**
* @desc Function generate pagniation request
* @param {Int} page
* @param {Int} perPage
* @param {String} search
* @returns {String} Pagination request string
*/
export const pageRequest = (page, perPage, search) => {
let request = `${page - 1}&${perPage}`;
if (search && search !== '') request += `&${search}`;
return request;
};
/**
* @desc Function get a dynamic total count from dataTable
* @param {Array} items - Array of items from the current page
* @param {Object} options - Options object from Vuetify dataTable
* @returns {number} server items length
*/
export const serverItemsLength = (items, options) =>
items.length === options.itemsPerPage ? options.page * options.itemsPerPage + options.itemsPerPage : options.page * options.itemsPerPage;
/**
* Exports.
*/
export default { releasesNumber, pageRequest, serverItemsLength };