Skip to content

Instantly share code, notes, and snippets.

View qunabu's full-sized avatar

Mateusz Wojczal qunabu

View GitHub Profile
@qunabu
qunabu / getTranslationProc.js
Last active January 16, 2020 11:10
getTranslationProc.js
/**
* Proccess all the input array and calls `getTranslation` onEach row
* @param {Array} arr, array of objects term to be translated in the shape of `{key:"", value:""}`, eg. `{key:"fullName", value:"Full name"}
* @returns {Promise} resolved array is in the same shape as input
*/
const processTranslation = (arr, target = "de", api_key = process.env.GKEY) => {
return new Promise((resolve) => {
/**
*
* @param {Array} arr input variables array. Terms to be translated.
@qunabu
qunabu / getTranslationHelpers.js
Created January 14, 2020 20:59
getTranslationHelpers.js
/**
* Converts object to array
* @param {Object} obj
* @returns {Array}
* @example
*
* convertToArray({fullName:"Full Name"}) // returns [{key:"fullName", value:"Full name"}]
*/
const convertToArray = obj =>
Object.keys(obj).map(key => ({ key, value: obj[key] }));
@qunabu
qunabu / getTranslation.js
Last active January 16, 2020 12:04
getTranslation
/**
* Calls the translation.googleapis
* @param {Object} term, term to be translated the shape of `{key:"", value:""}`, eg. `{key:"fullName", value:"Full name"}
* @param {String} target language code eg `en`
* @param {String} key Google Api Key generated with `gcloud auth application-default print-access-token`
* @returns {Promise} resolve object is in the same shape as input
*/
const getTranslation = (term, target, key) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
@qunabu
qunabu / EmailQueue.js
Last active January 24, 2019 10:13
Node.js dummy email queue, when SMTP fails
/**
|--------|
/--X--| SMTP 1 |
/ ^ |--------|
/ \--- Retry with next provider
|----------------|/ |--------| |------------------|
| Mail | ---X--> | SMTP 2 | /->| ^_^ Happy user |
|----------------|\ ^ |--------| / |------------------|
\ \--- Retry /
\ |--------| /
@qunabu
qunabu / gist:d831f7261513219aa400fa3fef7ed379
Last active June 23, 2018 04:47
fancybox back button
$(window).on('hashchange', function() {
var i = parseInt(window.location.hash.substr(1));
if (isFinite(i) && $.fancybox.isOpen) { $.fancybox.jumpto(i) }
})