@playbooks/utils
Version:
A collection of utilities used for Playbooks.
108 lines (107 loc) • 3.18 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const bytes = require("bytes");
const pluralize = require("pluralize");
const uniqid = require("uniqid");
const env = process.env.NEXT_PUBLIC_NODE_ENV || process.env.NODE_ENV;
const sleep = (ms) => {
return new Promise((resolve) => setTimeout(resolve, ms));
};
const getSeconds = () => {
return Math.floor(Date.now() / 1e3);
};
const getRandomInt = (max = 1e6) => {
return Math.floor(Math.random() * max);
};
const getUUID = (v = 36) => {
return uniqid();
};
const getPlural = (value) => {
return pluralize.plural(value);
};
const getSingular = (value) => {
return pluralize.singular(value);
};
const formatUUID = (url, index = 2) => {
const paths = url.split("?")[0].split("#")[0].split("/");
const name = paths[index];
return name?.toLowerCase();
};
const mapChildren = (data, key) => {
const formattedData = [];
data.map((record) => {
const value = record[key];
if (isArray(value)) {
const childData = mapChildren(value, key);
childData.map((v) => formattedData.push(v));
}
return formattedData.push(record);
});
return formattedData;
};
const buildArray = (count = 1) => {
return Array.from(Array(count).keys());
};
const chunkArray = (array, chunkSize) => {
let index = 0;
const chunks = [];
while (index < array.length) {
const chunk = array.slice(index, index + chunkSize);
index += chunkSize;
chunks.push(chunk);
}
return chunks;
};
const shuffleArray = (array) => {
let randomIndex;
let currentIndex = array.length;
while (currentIndex !== 0) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex--;
[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
}
return array;
};
const computeBytes = (data, unit = "kb") => {
return bytes.format(data, { unit });
};
const isArray = (data) => {
return Array.isArray(data);
};
const isDate = (data) => {
return isObject(data) && typeof data.getMonth === "function";
};
const isFunction = (data) => {
return data ? typeof data === "function" : false;
};
const isObject = (data) => {
return data !== null && data && typeof data === "object";
};
const isString = (data) => {
return typeof data === "string";
};
const isEmpty = (data) => {
if (data === null || data === void 0 || data === "undefined") return true;
if (isArray(data)) return data.length === 0 ? true : false;
if (isObject(data)) return Object.keys(data).length === 0 ? true : false;
return data.length === 0 ? true : false;
};
exports.buildArray = buildArray;
exports.chunkArray = chunkArray;
exports.computeBytes = computeBytes;
exports.env = env;
exports.formatUUID = formatUUID;
exports.getPlural = getPlural;
exports.getRandomInt = getRandomInt;
exports.getSeconds = getSeconds;
exports.getSingular = getSingular;
exports.getUUID = getUUID;
exports.isArray = isArray;
exports.isDate = isDate;
exports.isEmpty = isEmpty;
exports.isFunction = isFunction;
exports.isObject = isObject;
exports.isString = isString;
exports.mapChildren = mapChildren;
exports.shuffleArray = shuffleArray;
exports.sleep = sleep;