mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 23:04:52 +09:00
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
/**
|
|
Helper functions related to objects
|
|
@module objectOps
|
|
*/
|
|
|
|
/**
|
|
Deep clones an object, is actually just JSON.parse(JSON.stringify()) but looks cleaner.
|
|
@param {object} obj to clone
|
|
@returns {object}
|
|
|
|
@example
|
|
a = {"thingy":"with a value"};
|
|
b = a;
|
|
a == b; // true
|
|
c = objectOps.deepclone(a);
|
|
a == c; // false
|
|
*/
|
|
module.exports.deepclone = function(obj){
|
|
return JSON.parse(JSON.stringify(obj));
|
|
}
|
|
/**
|
|
Checks if a string is valid JSON using try/catch. If passed an object it will always return true.
|
|
@param {string} string to verify
|
|
@returns {boolean}
|
|
|
|
@example
|
|
objectOps.isJSON("99 bottles of beer"); // false
|
|
objectOps.isJSON("99"); // true
|
|
objectOps.isJSON({"thingy":"that is an object"}); // true
|
|
objectOps.isJSON(JSON.stringify({"thingy":"that is an object"})); // true
|
|
*/
|
|
module.exports.isJSON = function(string){
|
|
let stringIsJson = false;
|
|
let x
|
|
try {
|
|
x = JSON.parse(string);
|
|
} catch (e){
|
|
return false;
|
|
}
|
|
if(typeof x == "object" || typeof string == "object"){
|
|
stringIsJson = true;
|
|
}
|
|
return stringIsJson;
|
|
}
|