Product
Introducing Ruby Support in Socket
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
best-globals
Advanced tools
common global function and constants - i.e. coalesce
$ npm install best-globals
Have handy some common global functions
Returns the first not null nor undefined parameter.
Use coalesce.throwError(message)
for throw an Exception if all parameters are null or undefined.
Use coalesce.throwErrorIfUndefined(message)
for throw an Exception if all parameters are undefined.
coalesce
is similar to ??
, but coalesce
with null
and undefined
returns null
,
and ??
returns the last. Also coalesce
can be used with his auxiliar functions throwError
and throwErrorIfUndefined
.
var coalesce = require('best-globals').coalesce;
console.log(coalesce(1,2)); // = 1
console.log(coalesce(null,3)); // = 3
console.log(coalesce(null,undefined,false,4)); // = false
console.log(coalesce(null,undefined)); // = null [1]
console.log(coalesce(undefined,null)); // = null
console.log(coalesce(undefined,undefined)); // = undefined
console.log(coalesce(undefined,coalesce.throwErrorIfUndefined('name'))); // = throw an Error [1]
Note [1]
the behavior differs from ??
Returns a new object like originalConfig with the changes reflected
Changes can be:
changes.trueByObject(changes)
that means that the change only applies to non falsy valuesvar changing = require('best-globals').changing;
var newConfig = changing(
{
database:'default_db',
port:3306,
user:'default_user',
throwExceptions:true
},
{
database:'develop_db',
user:'devel_user',
password:'d3v31_u53r',
throwExceptions:undefined
},
changing.options({deletingValue:undefined})
);
console.log(newConfig);
/*
{
database:'develop_db',
port:3306,
user:'devel_user',
password:'d3v31_u53r',
},
*/
options | default | use |
---|---|---|
deletingValue | off | value used to delete a property |
mostlyPlain | false | allows non plain object to be changed property by property |
If the first argument is an instance of Error, It returns the same object with the changes reflected
var changing = require('best-globals').changing;
try{
//something
throw changing(new Error('error in example', {Gravity:'Falls'}));
}catch(err){
console.log(err.message); // error in example
consoel.log(err.Gravity); // Falls
}
Returns de text that must be passed to RegExp
for detects the exact original text.
var escapeRegExp = require('best-globals').escapeRegExp;
console.log(RegExp(escapeRegExp('a|b')).test('a|b')); // true
console.log(RegExp(escapeRegExp('a|b')).test('a')); // false
console.log(RegExp(/a|b/).test('a')); // true
Returns a unreadeable text that can be used to order the text in an human way
var forOrder = require('best-globals').forOrder;
console.log(forOrder('code X9')<forOrder('code X11')); // true
Returns a function to be pased to the sort array function.
var compareForOrder = require('best-globals').compareForOrder;
var data=[
{lastName:'Smith', firstName:'Bob' },
{lastName:'Kerry', firstName:'Kelly'},
];
data.sort(compareForOrder([
{column:'lastName' },
{column:'firstName', order:-1}, // descending
]));
console.log(data);
Suspends a promises chain for a while
var sleep = require('best-globals').sleep;
sleep(2000).then(function(){
console.log('two seconds waited');
return sleep(1000);
}).then(function(){
console.log('another second waited');
return 42;
}).then(sleep(3000)).then(function(result){
console.log('wait three seconds and pass the result to the next "then"');
});
Returns an array with a serie of numbers starting with from (or zero), step by step (or 1); with length or until to.
var serie = require('best-globals').serie;
console.log(serie({length:3})); // [0,1,2]
console.log(serie({from:2,length:3})); // [2,3,4]
console.log(serie({from:2,to:4})); // [2,3,4]
console.log(serie({from:2,to:15,step:5})); // [2,7,12]
Returns today with hour
var today = require('best-globals').today;
console.log(today()); // 2017-03-31 current date!
FAQs
common global function and constants - i.e. changes
The npm package best-globals receives a total of 439 weekly downloads. As such, best-globals popularity was classified as not popular.
We found that best-globals demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching Ruby support for all users. Enhance your Rails projects with AI-powered security scans for vulnerabilities and supply chain threats. Now in Beta!
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.