ORMed and Dangerous | Ep 7
TypeScript.fm - The Friendly Show for TypeScript Developers - A podcast by Kamran Ayub and Erik Onarheim - Tuesdays

Categories:
This week Kamran and Erik discuss when ORMs are helpful... or hurtful. They cover trade-offs, the spectrum of abstraction, the value of escape hatches, and the options available to you in the TypeScript ecosystem.Week of February 17, 2025(05:54) - News: Ember 6.2 Released(07:16) - News: Deno 2.2 Releasednpm-check-updates packagePackage JSON Upgrade VS Code extensionhttps://github.com/vuki656/package-info.nvim for NeovimCommunity Highlights(16:48) - Community Highlights: UseTypeScript for Your Stored Procedures?!(17:20) - Community Highlights: Node API Compatibility Across Runtimes(17:58) - Community Highlight: Why Type Catalogs Can Be Better Than Unions(19:05) - Community Highlight: tapi.js Automatically Maps JSON to Strongly-Typed Classes(20:33) - Community Highlight: Standard Schema Hopes to Align TS Validator Libraries(21:34) - Community Highlight: 2ality: Read-only accessibility in TypeScript Deep Dive: TypeScript ORMs(22:56) - Deep Dive: TypeScript ORMs(24:21) - Deep Dive: Code-first or Database-first?(25:42) - Deep Dive: What Pain Do ORMs Solve?(27:21) - Deep Dive: When Should You Use an ORM?Martin Fowler's ORM Hate articlePrimeagen's Don't Use an ORM reaction video(30:02) - Deep Dive: To Use An ORM Or Not to Use an ORM?(31:47) - Deep Dive: SQL Builders vs. Abstracted ORMs(32:28) - Deep Dive: Do You Have An Escape Hatch?(33:36) - Deep Dive: Are ORMs A Symptom of Poor Data Architecture?(37:01) - Deep Dive: TypeScript ORM Landscape(37:26) - Deep Dive: Drizzle ORMFireship's Drizzle in 100 secondsWorks with Deno, Bun, Node.js(42:06) - Deep Dive: Prisma ORMWorks with Deno (unofficially) and Node.jsPrisma is being rewritten in TypeScript(46:42) - Deep Dive: MikroORM(49:10) - Tangent: Kamran and Erik Exchange War Stories(50:48) - Deep Dive: MikroORM Continued(51:44) - Deep Dive: TypeORM(53:06) - Deep Dive: ConvexDB(55:00) - Deep Dive: sequelize(55:48) - Deep Dive: Other AlternativesObjection.jsKnex.jsWaterlineBookshelfMongoose/Typegoose(56:33) - Deep Dive: Takeaways / tl;dlSecrets of the Handbook(57:47) - Branded / Nominal TypesTypeScript Playground Example – Nominal Typing400-comment GH issue on different ways to do nominal typing and trade-offsMichael Zalecki blog post on nominal types in TypeScriptBranded Types from Learning TypeScript by Josh GoldbergCreated a "sealed" method/class (example from Excalibur)Links(01:04:25) - Cool Stuff: Kodaps Academy on Drizzle Versus Prisma(01:05:10) - Cool Stuff: jet ValidatorsReference: https://blog.logrocket.com/best-typescript-orms/ Reference: https://www.sitepoint.com/javascript-typescript-orms/ Reference: https://www.timsanteford.com/posts/choosing-the-best-typescript-orm-for-your-project/ Sponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScrip...