Skip to content

Instantly share code, notes, and snippets.

:shipit:
:shipit:

Wesley Wigham weswigham

:shipit:
:shipit:
Block or report user

Report or block weswigham

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
@weswigham
weswigham / apply-all-import-fixes.ts
Created Jun 6, 2019
Quick and dirty gist for using the compiler API to apply all available import fixes for a project
View apply-all-import-fixes.ts
// Usage: node ./apply-all-import-fixes.js ./path/to/index.ts
import * as ts from "typescript/lib/tsserverlibrary";
import * as fs from "fs";
import * as path from "path";
class Logger implements ts.server.Logger { // tslint:disable-line no-unnecessary-qualifier
private fd = -1;
private seq = 0;
private inGroup = false;
private firstInGroup = true;
@weswigham
weswigham / bigfactory3.ts
Created May 22, 2019
This is roughly the minimum size required to make the TS compiler OOM - note it's not really that big.
View bigfactory3.ts
interface Obj<T> {
ref: T;
}
interface Func<T> {
(x: T): void;
}
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
type CtorOf<T> = (arg: UnionToIntersection<T>) => T;
interface Big {
@weswigham
weswigham / bigfactory2.ts
Last active May 22, 2019
Now with no union call resolution
View bigfactory2.ts
interface Obj<T> {
ref: T;
}
interface Func<T> {
(x: T): void;
}
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
type CtorOf<T> = (arg: UnionToIntersection<T>) => T;
interface Big {
View bigfactory.ts
interface Obj<T> {
ref: T;
}
interface Func<T> {
(x: T): void;
}
type CtorOf<T> = T extends unknown ? (x: T) => T : never;
interface Big {
"0": { common?: string; "0"?: number, ref?: Obj<Big["0"]> | Func<Big["0"]>; }
View launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/gulp/bin/gulp.js",
"stopOnEntry": true,
"args": ["test"],
View keybase.md

Keybase proof

I hereby claim:

  • I am weswigham on github.
  • I am www (https://keybase.io/www) on keybase.
  • I have a public key whose fingerprint is 08AD 0E7B 235F E978 4AC5 DCCB D59F 87F6 0C54 00C9

To claim this, I am signing this object:

@weswigham
weswigham / catmullrom.js
Created Feb 18, 2015
Javascript is funcrtional
View catmullrom.js
var catmullRom = function(p0, p1, p2, p3, distance) {
var points = [p0, p1, p2, p3],
t = function(dest) {
if (dest === 0) return 0;
return Math.pow(
Math.sqrt(
Math.pow(points[dest].x - points[dest-1].x,2) + Math.pow(points[dest].y - points[dest-1].y,2) + Math.pow(points[dest].z - points[dest-1].z,2)
), 0.5) + t(dest-1);
},
t0 = t(0),
@weswigham
weswigham / get-mumble.sh
Last active Nov 14, 2018
D/l and build mumble from source on centos
View get-mumble.sh
# Install so many prerequisite libraries:
sudo yum groupinstall "Development tools"
sudo yum install openssl-devel git qt-devel boost boost-devel libsndfile-devel avahi avahi-compat-libdns_sd avahi-compat-libdns_sd-devel protobuf-compiler protobuf-devel gettext gettext-devel festival libtool-ltdl-devel libffi-devel pcre-devel readline-devel automake libtool gtk-devel intltool dotconf speech-dispatcher speech-dispatcher-devel alsa-lib-devel libdaemon-devel libusb-devel libtool rpm-build
# Clone the client’s source:
cd ~
git clone https://github.com/mumble-voip/mumble.git
cd mumble
# Checkout a stable revision:
git checkout 1.2.x
# Build the makefile:
@weswigham
weswigham / resteasy.js
Last active Feb 25, 2016
resteasy.js - Makes consuming rest interfaces as data promises super simple
View resteasy.js
(function(window) {
//Step 1: Promised wrapper for XMLHTTPRequest
function Request(url, options) {
return new Promise(function(resolve, reject) {
if (!options) {
if (typeof(url) == "string") {
options = { url: url };
} else {
@weswigham
weswigham / deepcopy.lua
Last active Aug 29, 2015
A recursive deepcopy implementation
View deepcopy.lua
local copymember = {
['function'] = function(val, memo)
local copy;
local err = pcall(function() --handling the error is faster than getting debug info
copy = loadstring(string.dump(val))
end)
if (not copy) then
memo[val] = val
return val
end
You can’t perform that action at this time.