efficy-enterprise-api
Version:
The Efficy Enterprise API is developed for server-side usage in a Node.js environment (e.g. for integrations) and also bundled for usage inside an Efficy browser session for client-side JSON RPC requests.
37 lines (33 loc) • 967 B
JavaScript
// Variables that are primitive are accessed by value
const isPrimitive = (val) => {
return val !== Object(val);
}
const ParseGentle = {
fieldsObj(inputObj) {
const outputObj = {};
if (!inputObj || typeof inputObj !== "object" || Array.isArray(inputObj)) return outputObj;
Object.keys(inputObj).forEach(key => {
if (isPrimitive(inputObj[key])) {
outputObj[key] = inputObj[key];
}
})
return outputObj;
},
toFloatKey(key) {
return parseFloat(key) || 0;
},
numberProperties(object, numberProperties) {
numberProperties.forEach(name => {
if (object[name] && isNaN(parseFloat(object[name])) === false) {
object[name] = parseFloat(object[name]);
}
})
return object;
}
}
const ParseHard = {
isFieldValue(value) {
if (isPrimitive(value) === false) throw new TypeError(`ParseHard.isFieldValue::argument 'value' is not a primitive value`);
}
}
export {isPrimitive, ParseGentle, ParseHard}