How ChiselStrike generates its TypeScript client API | Dark Hacker News