Skip to content

Instantly share code, notes, and snippets.

View milesegan's full-sized avatar
💭
/╲/\╭(ఠఠ益ఠఠ)╮/\╱\

Miles Egan milesegan

💭
/╲/\╭(ఠఠ益ఠఠ)╮/\╱\
View GitHub Profile
@milesegan
milesegan / hooks.ts
Created April 22, 2019 07:39
React hooks utilities.
import { useEffect, useRef } from "react";
// Runs only on update, not on initial render, unlike useEffect.
// Handy replacement for componentDidUpdate().
export function useUpdateEffect(
effect: React.EffectCallback,
deps?: React.DependencyList
): void {
const didMountRef = useRef(false);
@milesegan
milesegan / tsutils.ts
Last active September 18, 2021 14:05
typescript utils
// Null filtering.
function isDefined<T>(value: T | undefined | null): value is T {
return !!value;
}
// Immutability
export type Immutable<T> = T extends Function | boolean | number | string | null | undefined
? T
: T extends Array<infer U>
? ReadonlyArray<Immutable<U>>
@milesegan
milesegan / transcode-opus.py
Last active September 11, 2022 01:56
Parallel flac to opus conversion script
#!/usr/bin/env pipenv run python
import subprocess
from pathlib import Path
import sys
from tempfile import NamedTemporaryFile
import multiprocessing as mp
def usage():