cozy-intent
Version:
Event-based library allowing interactions between React-Native and React applications
70 lines (52 loc) • 1.92 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isWebDevMode = exports.isThemeArg = exports.isNativeDevMode = exports.isFlagshipUiArgsArray = exports.interpolate = exports.getErrorMessage = void 0;
var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
var _api = require("../api");
var interpolate = function interpolate(str, params) {
if (!params) return str;
var names = Object.keys(params);
var vals = Object.values(params); // I do not see security risks here, we're not executing user input
// eslint-disable-next-line @typescript-eslint/no-implied-eval
var makeInterpolate = (0, _construct2.default)(Function, names.concat(["return `".concat(str, "`;")]));
try {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
return makeInterpolate.apply(void 0, vals);
} catch (_error) {
// String template and params did not match
return str;
}
};
exports.interpolate = interpolate;
var isNativeDevMode = function isNativeDevMode() {
try {
return !!__DEV__;
} catch (_unused) {
return false;
}
};
exports.isNativeDevMode = isNativeDevMode;
var isWebDevMode = function isWebDevMode() {
try {
return !!__DEVELOPMENT__;
} catch (_unused2) {
return false;
}
};
exports.isWebDevMode = isWebDevMode;
var getErrorMessage = function getErrorMessage(error) {
if (error instanceof Error) return error.message;
return String(error);
};
exports.getErrorMessage = getErrorMessage;
var isFlagshipUiArgsArray = function isFlagshipUiArgsArray(item) {
return Array.isArray(item) && (0, _api.isFlagshipUI)(item[0]);
};
exports.isFlagshipUiArgsArray = isFlagshipUiArgsArray;
var isThemeArg = function isThemeArg(item) {
return typeof item === 'string';
};
exports.isThemeArg = isThemeArg;