Skip to content

Instantly share code, notes, and snippets.

🍕
I like pizzas

Gianluca Guarini GianlucaGuarini

🍕
I like pizzas
Block or report user

Report or block GianlucaGuarini

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@GianlucaGuarini
GianlucaGuarini / riot+compiler.js
Created Jun 29, 2019
Riot.js 4 + compiler polyfilled for IE11 - This code is only for demo purpose!!!
View riot+compiler.js
This file has been truncated, but you can view the full file.
View _colors.scss
:root {
@import '@design-system/colors.json';
--root-colors--primary: #{$primary};
--root-colors--secondary: #{$secondary};
}
@GianlucaGuarini
GianlucaGuarini / wait.js
Last active Jan 19, 2018
Functional advanced async (cancellable/abortable) `setTimeout` helper
View wait.js
/**
* Advanced async (cancellable/abortable) `setTimeout` helper
*/
function wait(delay) {
return (val) => {
let timer
let abort
const p = new Promise(function(resolve, reject) {
abort = reject
@GianlucaGuarini
GianlucaGuarini / curry.js
Last active Nov 18, 2017
Function to curry any javascript method
View curry.js
/**
* Function to curry any javascript method
* @param {Function} fn - the target function we want to curry
* @param {...[args]} acc - initial arguments
* @returns {Function|*} it will return a function until the target function
* will receive all its arguments
*/
function curry(fn, ...acc) {
return (...args) => {
args = [...acc, ...args]
@GianlucaGuarini
GianlucaGuarini / accessible-overlays.js
Last active Nov 1, 2017
Simple function to make your overlays element accessible
View accessible-overlays.js
// forked by a script of https://github.com/nilssolanki
import { add } from 'bianco.events'
/**
* A list of all the open overlays, tooltips, sidebars etc.
* @type {Map}
*/
const openOverlays = new Map()
/**
@GianlucaGuarini
GianlucaGuarini / real-device-px-ratio.js
Created Oct 9, 2017
Because devicePixelRatio is not relyable enough
View real-device-px-ratio.js
const resolutions = [
'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=',
'data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=',
'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACklEQVQYV2P4DwABAQEAWk1v8QAAAABJRU5ErkJggg==',
];
const img = document.createElement('img');
img.src = resolutions[0];
img.srcset = resolutions.map((itm, i) => `${itm} ${i + 1}x`).join(',');
View package.json
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"riot": "^3.4.2"
},
"devDependencies": {
"coffee-script": "^1.12.5",
View promise-sequence.js
function sequence(promises) {
return new Promise((resolve, reject) => {
const rets = []
const gen = (function*() {
// loop as long as we have promises in the queue
while (promises.length) {
// take always the first promise
const promise = promises.shift()
// wait until it's resolved to step to the next iteration
promise
@GianlucaGuarini
GianlucaGuarini / local-storage.js
Last active May 2, 2017
A simple script to deal safely with the localStorage
View local-storage.js
/**
* Deal with the localStorage avoiding odd issues due to paranoids that have disabled it by default
*/
const ls = window.localStorage
/**
* Call any method on the localStorage avoiding to throw errors
* @param {string} method - method we want to call
* @param {array} args - serialized params that will be proxied to the method we are going to call
* @returns {null|string} whatever the method call will return
@GianlucaGuarini
GianlucaGuarini / main.tag
Last active Mar 1, 2018
Simple example to demonstarte how to use es2015 imports with the default riot cli. Install riot via `npm i riot -g` and then run `npm run build`
View main.tag
<main-tag>
<h1>I got the power!</h1>
<h2>The answer is { answer }</h2>
<script>
import something from './something'
this.answer = something.answer
</script>
</main-tag>
You can’t perform that action at this time.