Comparing version 1.0.1 to 2.0.0
# Change Log & History | ||
> ##### 23-06-2019 ~ _v1.0.1_ : _Stable_ | ||
> #### 2021-02-21 - v2.0.0 Stable | ||
Move to Typescript | ||
Review & Checked All Codes | ||
> #### 2019-06-23 - v1.0.1 Stable | ||
Initial Release |
384
index.js
@@ -1,141 +0,178 @@ | ||
module.exports = class apphelpers { | ||
/** | ||
* Trim Mod | ||
*/ | ||
async trims(str, char) { | ||
if (typeof char === 'undefined') { | ||
char = ''; | ||
} | ||
let regex = new RegExp(`(^\s*${char})|(${char}\s*$)`, 'gm'); | ||
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isMobile = exports.getOS = exports.getBrowser = exports.validUrl = exports.validNum = exports.validEmail = exports.randNum = exports.randStr = exports.ucwords = exports.fupper = exports.trims = void 0; | ||
var crypto_1 = __importDefault(require("crypto")); | ||
var trims = function (str, char) { return __awaiter(void 0, void 0, void 0, function () { | ||
var regex; | ||
return __generator(this, function (_a) { | ||
char = char || ''; | ||
regex = new RegExp("(^s*" + char + ")|(" + char + "s*$)", 'gm'); | ||
str = str.trim(); | ||
str = str.replace(/\r\n|\r|\n|\t/gm, ''); | ||
str = str.replace(regex, ''); | ||
return str.trim(); | ||
} | ||
/** | ||
* Upper Case First Letter | ||
*/ | ||
async fupper(str) { | ||
str = str.toLowerCase(); | ||
return str.charAt(0).toUpperCase() + str.slice(1); | ||
} | ||
/** | ||
* PHP UC Words | ||
*/ | ||
async ucwords(str) { | ||
return (str + '').replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, ($1) => { | ||
return $1.toUpperCase(); | ||
}); | ||
} | ||
/** | ||
* Random String | ||
* Max Length 40 | ||
*/ | ||
async randStr(length) { | ||
if (typeof length === 'undefined') { | ||
length = 40; | ||
return [2, str.trim()]; | ||
}); | ||
}); }; | ||
exports.trims = trims; | ||
var fupper = function (str) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { | ||
return [2, str.toLowerCase().charAt(0).toUpperCase() + str.slice(1)]; | ||
}); }); }; | ||
exports.fupper = fupper; | ||
var ucwords = function (str) { return __awaiter(void 0, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
return [2, (str + '').replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, function ($1) { | ||
return $1.toUpperCase(); | ||
})]; | ||
}); | ||
}); }; | ||
exports.ucwords = ucwords; | ||
var randStr = function (count, m) { return __awaiter(void 0, void 0, void 0, function () { | ||
var maxLength, hash, alphaNum, val; | ||
return __generator(this, function (_a) { | ||
maxLength = count || 64; | ||
hash = crypto_1.default | ||
.createHash('sha512') | ||
.update(new Date().toISOString()) | ||
.digest('hex'); | ||
alphaNum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; | ||
val = ''; | ||
while (val.length < maxLength / 2) { | ||
val += alphaNum.charAt(Math.floor(Math.random() * alphaNum.length + 0)); | ||
} | ||
let value = ''; | ||
let letnum = 'abcdefghijklmnopqrstuvwxyz0123456789'; | ||
for (let i = 0; i < length; i++) { | ||
value += letnum.charAt(Math.floor((Math.random() * letnum.length) + 0)); | ||
} | ||
return value.toString(); | ||
} | ||
/** | ||
* Random Number | ||
* Max Length 10 | ||
*/ | ||
async randNum(length) { | ||
if (typeof length === 'undefined') { | ||
length = 10; | ||
} | ||
let num = Math.random().toString(); | ||
val = val + hash; | ||
val = val.substr(0, maxLength); | ||
return [2, m ? val : val.toLowerCase()]; | ||
}); | ||
}); }; | ||
exports.randStr = randStr; | ||
var randNum = function (count) { return __awaiter(void 0, void 0, void 0, function () { | ||
var num; | ||
return __generator(this, function (_a) { | ||
count = count || 10; | ||
num = Math.random().toString(); | ||
num = num.replace(/[^0-9]/, ''); | ||
return num.substr(1, length); | ||
} | ||
/** | ||
* Valid Number | ||
*/ | ||
async validNum(num) { | ||
return (/^[0-9]+$/).test(num); | ||
} | ||
/** | ||
* Valid Email | ||
*/ | ||
async validEmail(email) { | ||
let regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; | ||
return (regex.test(email)); | ||
} | ||
/** | ||
* Valid Url | ||
*/ | ||
async validUrl(url) { | ||
let regex = /^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/i; | ||
return (regex.test(url)); | ||
} | ||
/** | ||
* Client Browser | ||
*/ | ||
async getBrowser(agent) { | ||
let browsers_list = [ | ||
'msie', | ||
num = num.substr(1, count); | ||
num = parseInt(num); | ||
return [2, num]; | ||
}); | ||
}); }; | ||
exports.randNum = randNum; | ||
var validEmail = function (email) { return __awaiter(void 0, void 0, void 0, function () { | ||
var regex; | ||
return __generator(this, function (_a) { | ||
regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; | ||
return [2, regex.test(email)]; | ||
}); | ||
}); }; | ||
exports.validEmail = validEmail; | ||
var validNum = function (num) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { | ||
return [2, /^[0-9]+$/.test(num.toString())]; | ||
}); }); }; | ||
exports.validNum = validNum; | ||
var validUrl = function (url) { return __awaiter(void 0, void 0, void 0, function () { | ||
var regex; | ||
return __generator(this, function (_a) { | ||
regex = /^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/i; | ||
return [2, regex.test(url)]; | ||
}); | ||
}); }; | ||
exports.validUrl = validUrl; | ||
var getBrowser = function (agent) { return __awaiter(void 0, void 0, void 0, function () { | ||
var browserList, theBrowser, _i, browserList_1, browser; | ||
return __generator(this, function (_a) { | ||
browserList = [ | ||
'MSIE', | ||
'Trident', | ||
'edge', | ||
'kaios', | ||
'firefox', | ||
'opr', | ||
'samsungbrowser', | ||
'chrome', | ||
'safari', | ||
'netscape', | ||
'maxthon', | ||
'konqueror', | ||
'mobile', | ||
'Edge', | ||
'Kaios', | ||
'Firefox', | ||
'Opr', | ||
'Samsungbrowser', | ||
'YaBrowser', | ||
'Yowser', | ||
'Chrome', | ||
'Safari', | ||
'Netscape', | ||
'Maxthon', | ||
'Konqueror', | ||
'Mobile', | ||
'UCBrowser', | ||
'UCWEB' | ||
'UCWEB', | ||
]; | ||
let get_brow = false; | ||
let browsers_list_length = browsers_list.length; | ||
for (let j = 0; j < browsers_list_length; j++) { | ||
let the_sbrowser = new RegExp(browsers_list[j], 'gi'); | ||
if (agent.match(the_sbrowser)) { | ||
get_brow = browsers_list[j]; | ||
theBrowser = 'Other'; | ||
for (_i = 0, browserList_1 = browserList; _i < browserList_1.length; _i++) { | ||
browser = browserList_1[_i]; | ||
if (agent.match(new RegExp(browser, 'gmi'))) { | ||
theBrowser = browser; | ||
break; | ||
} | ||
} | ||
if (get_brow && get_brow !== 'undefined') { | ||
if (get_brow === 'MSIE' || get_brow === 'Trident') { | ||
return 'Internet Explorer'; | ||
} else if (get_brow === 'kaios') { | ||
return 'Kaios Browser'; | ||
} else if (get_brow === 'Opr') { | ||
return 'Opera'; | ||
} else if (get_brow === 'samsungbrowser') { | ||
return 'Samsung Browser'; | ||
} else if (get_brow === 'mobile') { | ||
return 'Handheld Browser'; | ||
} else if (get_brow === 'UCBrowser' || get_brow === 'UCWEB') { | ||
return 'UC Browser'; | ||
} else { | ||
return get_brow; | ||
} | ||
} else { | ||
return 'Other'; | ||
if (theBrowser === 'MSIE' || theBrowser === 'Trident') { | ||
return [2, 'Internet Explorer']; | ||
} | ||
} | ||
/** | ||
* Client OS | ||
*/ | ||
async getOS(agent) { | ||
let os = 'Other'; | ||
let os_arr = { | ||
else if (theBrowser === 'kaios') { | ||
return [2, 'Kaios Browser']; | ||
} | ||
else if (theBrowser === 'Opr' || theBrowser === 'opr') { | ||
return [2, 'Opera']; | ||
} | ||
else if (theBrowser === 'samsungbrowser') { | ||
return [2, 'Samsung Browser']; | ||
} | ||
else if (theBrowser === 'mobile') { | ||
return [2, 'Handheld Browser']; | ||
} | ||
else if (theBrowser === 'UCBrowser' || theBrowser === 'UCWEB') { | ||
return [2, 'UC Browser']; | ||
} | ||
else if (theBrowser === 'YaBrowser' || theBrowser === 'Yowser') { | ||
return [2, 'Yandex Browser']; | ||
} | ||
return [2, theBrowser]; | ||
}); | ||
}); }; | ||
exports.getBrowser = getBrowser; | ||
var getOS = function (agent) { return __awaiter(void 0, void 0, void 0, function () { | ||
var osList, theOs, i; | ||
return __generator(this, function (_a) { | ||
osList = { | ||
'windows nt 10': 'Windows 10', | ||
@@ -151,39 +188,66 @@ 'windows nt 6.3': 'Windows 8.1', | ||
'windows me': 'Windows ME', | ||
'win98': 'Windows 98', | ||
'win95': 'Windows 95', | ||
'win16': 'Windows 3.11', | ||
win98: 'Windows 98', | ||
win95: 'Windows 95', | ||
win16: 'Windows 3.11', | ||
'macintosh|mac os x': 'Mac OS X', | ||
'mac_powerpc': 'Mac OS 9', | ||
'ubuntu': 'Ubuntu', | ||
mac_powerpc: 'Mac OS 9', | ||
ubuntu: 'Ubuntu', | ||
'Red Hat': 'Red Hat', | ||
'android': 'Android', | ||
'linux': 'Linux', | ||
'iphone': 'iPhone', | ||
'ipod': 'iPod', | ||
'ipad': 'iPad', | ||
'blackberry': 'BlackBerry', | ||
'webos|wos': 'Mobile' | ||
android: 'Android', | ||
linux: 'Linux', | ||
iphone: 'iPhone', | ||
ipod: 'iPod', | ||
ipad: 'iPad', | ||
blackberry: 'BlackBerry', | ||
'webos|wos': 'Mobile', | ||
}; | ||
let obj_length = Object.keys(os_arr).length; | ||
for (let i = 0; i < obj_length; i++) { | ||
let regex = new RegExp(Object.keys(os_arr)[i], 'gi'); | ||
if (agent.match(regex)) { | ||
os = os_arr[Object.keys(os_arr)[i]]; | ||
theOs = 'Other'; | ||
for (i in osList) { | ||
if (agent.match(new RegExp(i, 'gmi'))) { | ||
theOs = osList[i]; | ||
break; | ||
} | ||
} | ||
return os; | ||
} | ||
/** | ||
* Check Mobile | ||
*/ | ||
async isMobile(agent) { | ||
let mobHeader = `kaios|samsungbrowser|samsung|meego|avantgo|playbook|opera m|symbian|smartphone|midp|wap|android|bolt|boost|docomo|fone|blazer|hiptop|phone|mini|tablet|iphone|ipod|ipad|blackberry|webos|wos|UCBrowser|UCWEB|mobile|mobi`; | ||
if (agent.match(new RegExp(mobHeader, 'gmi'))) { | ||
return 'Mobile'; | ||
} | ||
return 'Desktop'; | ||
} | ||
} | ||
return [2, theOs]; | ||
}); | ||
}); }; | ||
exports.getOS = getOS; | ||
var isMobile = function (agent) { return __awaiter(void 0, void 0, void 0, function () { | ||
var mobiles; | ||
return __generator(this, function (_a) { | ||
mobiles = [ | ||
'kaios', | ||
'samsung', | ||
'meego', | ||
'avantgo', | ||
'playbook', | ||
'opera m', | ||
'symbian', | ||
'midp', | ||
'wap', | ||
'android', | ||
'bolt', | ||
'boost', | ||
'docomo', | ||
'fone', | ||
'blazer', | ||
'hiptop', | ||
'phone', | ||
'mini', | ||
'tablet', | ||
'iphone', | ||
'ipod', | ||
'ipad', | ||
'blackberry', | ||
'webos', | ||
'wos', | ||
'UCBrowser', | ||
'UCWEB', | ||
'mobi', | ||
]; | ||
if (agent.match(new RegExp(mobiles.join('|'), 'gmi'))) | ||
return [2, 'Mobile']; | ||
return [2, 'Desktop']; | ||
}); | ||
}); }; | ||
exports.isMobile = isMobile; |
{ | ||
"name": "apphelpers", | ||
"version": "1.0.1", | ||
"version": "2.0.0", | ||
"description": "Node Js App Helper Functions", | ||
@@ -16,3 +16,7 @@ "homepage": "https://github.com/krishnaTORQUE/apphelpers", | ||
"url": "https://github.com/krishnaTORQUE/apphelpers" | ||
}, | ||
"dependencies": { | ||
"@types/node": "^14.14.31", | ||
"typescript": "^4.1.5" | ||
} | ||
} | ||
} |
# AppHelpers | ||
**v1.0.1 : _Stable_** | ||
Node Js Backend App Helper Functions | ||
Always Check [CHANGELOG](CHANGELOG.md) before Install or Update | ||
> #### _Description_ | ||
### Examples | ||
Node Js App Helper Functions | ||
_Typescript_ | ||
```javascript | ||
const apphelpers = require('apphelpers'); | ||
let helpers = new apphelpers(); | ||
/** | ||
* Example | ||
*/ | ||
helpers.ucwords('hello world').then(str => { | ||
console.log(str); | ||
// return Hello World | ||
}); | ||
import { ucwords } from 'apphelpers'; | ||
const str = await ucwords('hello world'); | ||
console.log(str); // return Hello World | ||
``` | ||
_Common Js_ | ||
#### List of Functions | ||
```javascript | ||
const { ucwords } = require('apphelpers'); | ||
const str = await ucwords('hello world'); | ||
console.log(str); // return Hello World | ||
``` | ||
**trims** | ||
> All Functions are Promise based | ||
**fupper** | ||
### List of Functions | ||
**ucwords** | ||
trims | ||
**randStr** | ||
fupper | ||
**randNum** | ||
ucwords | ||
**validNum** | ||
randStr | ||
**validEmail** | ||
randNum | ||
**validUrl** | ||
validEmail | ||
**getBrowser** | ||
validNum | ||
**getOS** | ||
validUrl | ||
**isMobile** | ||
getBrowser | ||
getOS | ||
> ## _License (C) 2019 under GNU GPL V2._ | ||
isMobile | ||
> ## License (C) 2021 under GNU GPL V2. |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
17430
6
487
52
2
1
+ Added@types/node@^14.14.31
+ Addedtypescript@^4.1.5
+ Added@types/node@14.18.63(transitive)
+ Addedtypescript@4.9.5(transitive)