locize-lastused
Version:
Using API lastUsed using in node.js, in the browser and for deno.
47 lines • 1.33 kB
JavaScript
var arr = [];
var each = arr.forEach;
var slice = arr.slice;
export function defaults(obj) {
each.call(slice.call(arguments, 1), function (source) {
if (source) {
for (var prop in source) {
if (obj[prop] === undefined) obj[prop] = source[prop];
}
}
});
return obj;
}
export function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this;
var args = arguments;
var later = function later() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
export function isMissingOption(obj, props) {
return props.reduce(function (mem, p) {
if (mem) return mem;
if (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {
var err = "i18next-lastused :: got \"".concat(obj[p], "\" in options for ").concat(p, " which is invalid.");
console.warn(err);
return err;
}
return false;
}, false);
}
export function replaceIn(str, arr, options) {
var ret = str;
arr.forEach(function (s) {
var regexp = new RegExp("{{".concat(s, "}}"), 'g');
ret = ret.replace(regexp, options[s]);
});
return ret;
}