Skip to content

Instantly share code, notes, and snippets.

// Inspired from a package I think is called ts-attempt but can't find it anymore.
const failSymbol = Symbol('fail')
type Ok<T> = T
type Fail = { [failSymbol]: true; error: unknown }
type Result<T> = Ok<T> | Fail
export async function attempt<T>(fn: () => Promise<T>): Promise<Result<T>> {
var $ = require('jquery');
/**
* Om ni redan har ett system för cookies så kan ni använda den.
* Här är en funktion för att sätta cookies annars.
*/
function setCookie(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
return false;
// Less
@navy: #001f3f;
@blue: #0074d9;
@aqua: #7fdbff;
@teal: #39cccc;
@olive: #3d9970;
@green: #2ecc40;
@lime: #01ff70;
@yellow: #ffdc00;
@orange: #ff851b;
module.exports=xmlToJSON;var xmlToJSON=function(){this.version="1.3";var e={mergeCDATA:!0,grokAttr:!0,grokText:!0,normalize:!0,xmlns:!0,namespaceKey:"_ns",textKey:"_text",valueKey:"_value",attrKey:"_attr",cdataKey:"_cdata",attrsAsObject:!0,stripAttrPrefix:!0,stripElemPrefix:!0,childrenAsArray:!0},t=new RegExp(/(?!xmlns)^.*:/),r=new RegExp(/^\s+|\s+$/g);return this.grokType=function(e){return/^\s*$/.test(e)?null:/^(?:true|false)$/i.test(e)?"true"===e.toLowerCase():isFinite(e)?parseFloat(e):e},this.parseString=function(e,t){return this.parseXML(this.stringToXML(e),t)},this.parseXML=function(a,n){for(var s in n)e[s]=n[s];var l={},i=0,o="";if(e.xmlns&&a.namespaceURI&&(l[e.namespaceKey]=a.namespaceURI),a.attributes&&a.attributes.length>0){var u={};for(i;i<a.attributes.length;i++){var c=a.attributes.item(i);m={};var p="";p=e.stripAttrPrefix?c.name.replace(t,""):c.name,m[e.valueKey]=e.grokAttr?this.grokType(c.value.replace(r,"")):c.value.replace(r,""),e.xmlns&&c.namespaceURI&&(m[e.namespaceKey]=c.namespaceURI),e.att
(function() {
var JSONP, Waveform,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
window.Waveform = Waveform = (function() {
Waveform.name = 'Waveform';
function Waveform(options) {
this.redraw = __bind(this.redraw, this);
@HektorW
HektorW / Windows update
Last active August 29, 2015 14:21
Link
http://fediafedia.com/prank/win7/index.html
var current = 0;
var target = 0;
var updateDelay = 0;
var speed = 30 / 1000;
var lastTime = performance.now();
function step() {
requestAnimationFrame(step);
@HektorW
HektorW / designer.html
Created November 10, 2014 15:57
designer
<link rel="import" href="../paper-button/paper-button.html">
<polymer-element name="my-element">
<template>
<style>
:host {
position: absolute;
width: 100%;
height: 100%;
@HektorW
HektorW / prefixes
Last active August 29, 2015 14:06
Some common vendor prefixes
// Prefixes
(function() {
var w = window;
// performance.now
var p = w.performance = w.performance || {};
p.now =
p.now ||
p.webkitNow ||
p.mozNow ||
@HektorW
HektorW / gist:abae50e9820cebe0c883
Created August 22, 2014 15:07
Dick butts for everyone
(function() {
var sources = [
'http://i2.kym-cdn.com/photos/images/newsfeed/000/697/069/753.png',
'http://i2.kym-cdn.com/entries/icons/original/000/001/030/dickbutt.jpg',
'http://i0.kym-cdn.com/photos/images/newsfeed/000/714/090/08e.jpg',
'http://i3.kym-cdn.com/photos/images/masonry/000/711/605/f6d.jpg'
];
var index = parseInt(Math.random() * sources.length, 10);