Skip to content

Instantly share code, notes, and snippets.

@oslego
oslego / hooks.js
Last active December 4, 2020 18:20 — forked from WebReflection/hooks.js
const augment = callback => () => {
const useState = {
init: true,
value: void 0,
update(value) {
useState.value = value;
callback(hooks)
}
};
const hooks = {
<!DOCTYPE html>
<html lang="en">
<head>
<style media="screen">
div {
animation: marker 0s 1;
}
@keyframes marker { to { outline-color: inherit } }
</style>
</head>
@oslego
oslego / StyleSheetArrayProxy.js
Created December 9, 2019 16:34
StyleSheetArray implementation with Proxy and Reflect
// https://github.com/WICG/construct-stylesheets/issues/45#issuecomment-522879888
'use strict';
function isArrayIndex(string) {
if (typeof string !== 'string') {
return false;
}
const number = Number(string);
return Number.isSafeInteger(number)
@oslego
oslego / String.isBalanced.js
Created August 4, 2017 12:25
Method that returns true when a string is balanced and false otherwise.
/*
Task:
Given an input string return true if the string is balanced, otherwise return false.
A string is balanced when every opening bracket "{", square bracket "[", and parenthesis "("
has a matching closing character.
*/
const string = "{[()]}";
(function(input){
@oslego
oslego / recursive_toLargestUnit.js
Created December 31, 2016 16:01
Get size on disk by highest order of magnitude using recursion.
// From https://ponyfoo.com/articles/var-let-const
function toLargestUnit (value, unit = `MB`) {
const units = [`MB`, `GB`, `TB`]
const i = units.indexOf(unit)
const nextUnit = units[i + 1]
if (value >= 1024 && nextUnit) {
return toLargestUnit(value / 1024, nextUnit)
}
return { value, unit }
}
@oslego
oslego / pr.md
Created June 11, 2016 12:50 — forked from bgrins/pr.md
Checkout github pull requests locally

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = git@github.com:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:

@oslego
oslego / alternative_switch.js
Created January 20, 2016 15:30
Alternative JS solution to `switch` statement or suite of `if` statements.
/*
Alternative solution to switch statement or a suite of if statements
using an object literal in JS to store cases.
if (type == "save") { }
if (type == "delete") { }
*/
function operation(type, opts) {
var handler = {
/*
I used your style, your header div, but with a slide like this
<section data-state="showHeader" data-header="custom head">
<p>Hello</p>
</section>
*/
Reveal.addEventListener( 'slidechanged', function( event ) {
@oslego
oslego / scrollTo.js
Last active September 22, 2015 10:32 — forked from james2doyle/scrollTo.js
a native scrollTo function in javascript that uses requestAnimationFrame and easing for animation
// easing functions http://goo.gl/5HLl8
Math.easeInOutQuad = function (t, b, c, d) {
t /= d/2;
if (t < 1) {
return c/2*t*t + b
}
t--;
return -c/2 * (t*(t-2) - 1) + b;
};