This is now published on npm, because I wanted to use it in something.