gopro-js
Version:
A Promise based JavaScript GoPro Controller/API Wrapper (Unofficial)
48 lines (39 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var multilineRegExp = exports.multilineRegExp = function multilineRegExp(regs, options) {
return new RegExp(regs.map(function (reg) {
return reg.source;
}).join(''), options);
};
var prefixedStr = exports.prefixedStr = function prefixedStr(str) {
var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
return str ? '' + prefix + str : '';
};
var screamingSnakeCase = exports.screamingSnakeCase = function screamingSnakeCase(s) {
return s.replace(/(?:^|\.?)([A-Z])/g, function (_, c) {
return '_' + c;
}).replace(/^_/, '').toUpperCase();
};
var capitalizedCamelCase = exports.capitalizedCamelCase = function capitalizedCamelCase(s) {
var camel = s.toLowerCase().replace(/\W+(.)/g, function (_, c) {
return c.toUpperCase();
});
return camel.charAt(0).toUpperCase() + camel.slice(1);
};
var valueFinder = exports.valueFinder = function valueFinder(object, fullPath) {
var _ref = [fullPath.split('.'), undefined, object, 0],
args = _ref[0],
setting = _ref[1],
value = _ref[2],
i = _ref[3];
for (i = 0; i < args.length - 1; i += 1) {
setting = value;
value = value[capitalizedCamelCase(args[i])] || {};
}
setting = setting[screamingSnakeCase(args[i - 1])];
value = value[args[i]];
return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' ? { value: value, setting: setting } : {};
};