David Sherret @dsherret.dev · 05/09/2026I feel like it’s the same problem with file paths? You can get if a dir from the entry kind (then convert to url with trailing slash) and user provided info usually has context on what it is (ex. configFilePath, rootDirPath). In Deno we did urls everywhere because modules could be remote or local. 010
David Sherret @dsherret.dev · 05/09/2026I always do this too github.com/dsherret/path (obviously slight perf implications compared to just a string. ts-morph follows something more similar to ts 6’s ts.Path)github.comGitHub - dsherret/path: Path class for JavaScript.Path class for JavaScript. Contribute to dsherret/path development by creating an account on GitHub. 030
David Sherret @dsherret.dev · 05/09/2026Simple rule to follow is if there’s a trailing slash then it’s a directory and relative paths are from it. Otherwise it’s a file and the relative path is from the parent (it’s how the rust url crate works, but I know not everything works that way). 110
Reposted by David Sherretsnek @snek.dev · 01/09/2026bit of an update, it's been a few months now since I parted ways with Deno, and I'm starting to actively look for jobs again! I'm pretty good with big systems, compilers, and embedded. especially if rust or elixir are involved :) 33811
David Sherret @dsherret.dev · 30/07/2026Basically a Wasm build of the typescript-go repo. Just made some updates to it now so it's all sync so it works in the console. I used AI or else this would have taken many weekends otherwise. I'm also slowly working on ts-morph using ts 7 atm. 170
David Sherret @dsherret.dev · 30/07/2026Also, support for multiple files was added by Gerrit Birkeland. 030
David Sherret @dsherret.dev · 30/07/2026ts-ast-viewer.com now supports TypeScript 7 along with nightly builds of the typescript-go repository. It's not selected by default, but available in the dropdown. 2295
David Sherret @dsherret.dev · 30/06/2026Yeah, when the version isn't there then it does node resolution and you only need to maintain the versions in a package.json When a version is specified, dprint will read the npmrc by default (I utilized some deno crates) so that should work, but let me know if not. 000
David Sherret @dsherret.dev · 30/06/2026Oh, I didn't realize there was a PR open to vendor them. Good you don't have to merge that lol. Things like firewall rules was one of the motivations behind this. Also, I had people in Iran complain it wasn't accessible, but usually they already have something setup to access npm. 000
David Sherret @dsherret.dev · 30/06/2026Btw, of you specify any dependencies, dprint won't download them (only the initial package) because all it's interested in is the plugin.wasm file. 100
David Sherret @dsherret.dev · 30/06/2026You could make the package multi-purpose maybe. I don't think there's a gofumpt formatter on npm. For example, place a plugin.wasm file for the dprint plugin, and then have an index.js with an api for formatting with gofumpt via that Wasm file in JavaScript. 200
David Sherret @dsherret.dev · 30/06/2026Release notes outlining all the new features. github.com/dprint/dprin...github.comRelease 0.55.0 · dprint/dprintdprint is a pluggable and configurable code formatting platform that unifies all your formatters. This substantial release adds npm specifier plugins, brings dprint to many more CPU architectures, ... 100
David Sherret @dsherret.dev · 30/06/2026Blog post explaining why npm formatting plugins will be recommended in the future. dsherret.dev/posts/dprint...dsherret.devdprint 0.55: npm specifiers and node resolutionThe gradual move to recommend plugins on npm. 100
David Sherret @dsherret.dev · 30/06/2026Released dprint 0.55—a pluggable and configurable code formatting platform that unifies all your formatters behind a single command. This substantial release lets you specify formatting plugins from npm. 2101
David Sherret @dsherret.dev · 26/05/2026I was wondering that, but one of the issues I reported was that https dependencies didn’t store a checksum in the lock file. It would be possible to serve a different package to someone running bun install from a data centre ip with a bun user agent for example (ex. on deployment) 020
David Sherret @dsherret.dev · 26/05/2026A billion dollar company not doing CVEs ever and not responding to a documented security process is worth calling out on social media so people are aware. I don’t see how my interpretation was uncharitable. They need to get their act together. 330
David Sherret @dsherret.dev · 26/05/2026People should be aware of the practices of the critical infrastructure they rely on. pnpm is maintained by volunteers, but bun has a billion dollar company behind them and was acquired for many millions. Zero published CVEs is inexcusable and irresponsible. 140
David Sherret @dsherret.dev · 25/05/2026Reporting the same security issue to pnpm vs bun: pnpm acknowledged it quickly, shipped a fix, backported it, and published an advisory. bun never acknowledged, silently fixed this and another issue I reported, has not published advisories. One takes security more seriously. 41116
Reposted by David Sherretconputer dipshit @davidcrespo.bsky.social · 16/05/2026beautiful new docs site at dax.land for @dsherret.bsky.social's dax, one of my very favorite tools. I write nearly all my scripts in TypeScript because of it 4192
David Sherret @dsherret.dev · 16/05/2026I never noticed that similarity lol. It's my cat (project initially called "ax"... name too short for jsr → added a d for Deno because it was initially built on Deno APIs... now my cat's name). @hashrock.bsky.social designed it when we used to work together at Deno github.com/dsherret/dax...github.comchore: add logo by hashrock · Pull Request #26 · dsherret/dax 020
David Sherret @dsherret.dev · 04/05/2026Also, the cross-platform shell has been extracted to a dedicated JSR package jsr.io/@david/shelljsr.io@david/shell - JSR@david/shell on JSR: Cross-platform shell for Deno and Node.js inspired by zx. 050
David Sherret @dsherret.dev · 04/05/2026It works well with progress bars, selection, and other features that dax provides. 120
David Sherret @dsherret.dev · 04/05/2026The latest version of dax (dax.land) can show a scrolling view of the last N lines when executing a command. This is especially useful when running multiple commands in parallel. 2141
David Sherret @dsherret.dev · 23/04/2026Also added an `npx gagen --pull-versions` command to sync the version constraints in the TypeScript files with the .yml files after dependabot updates them. More details, including limitations, here: github.com/dsherret/gag...github.comRelease 0.5.0 · dsherret/gagenWhat's Changed feat: store pin comment inline by @dsherret in #37 feat: add npx gagen --pull-versions by @dsherret in #38 Inline pin comments (#37) The pin lockfile moved from a trailing # gagen:... 040
David Sherret @dsherret.dev · 23/04/2026Released gagen 0.5, which simplifies the output to match dependabot. 160
David Sherret @dsherret.dev · 02/04/2026For how we used this in Deno's repo, see this blog post david.deno.dev/posts/gagen/david.deno.devgagen - Writing complex GitHub Action workflow filesSpeeding up the Deno CI with the help of code generated workflow files. 0100
David Sherret @dsherret.dev · 02/04/2026I've published a library here that also has tooling around this github.com/dsherret/gagengithub.comGitHub - dsherret/gagen: Generate complex GitHub Actions YAML files using a declarative API.Generate complex GitHub Actions YAML files using a declarative API. - dsherret/gagen 1182
David Sherret @dsherret.dev · 02/04/2026I've found maintaining GitHub Actions workflow files is much easier when it's generated from Typescript. The latest realization is that the output yaml file can act like a lockfile. So I maintain `actions/checkout@v6`, but the generated output gets locked to a hash. 1492
David Sherret @dsherret.dev · 26/03/2026I'm also working on support for plugins distributed on npm and support for using node resolution to resolve plugins. This should help users who have IT/compliance constraints. 000
David Sherret @dsherret.dev · 26/03/2026For the official process plugins, I was unfortunately using absolute URLs in the plugin manifests, so you'll need to run `dprint config update` to get better reliability for those. 100
David Sherret @dsherret.dev · 26/03/2026Due to terrible GitHub availability, dprint formatting plugins on plugins.dprint.dev are now served directly instead of redirecting to GH assets. Additionally, the plugins are now cached indefinitely by the server, which eliminates the risk of a repo disappearing.plugins.dprint.devPlugins - dprintLatest plugin versions for dprint. 190
David Sherret @dsherret.dev · 20/03/2026Also released new versions of jsonc-morph (github.com/dsherret/jso...) for JavaScript, dprint-plugin-json, and dprint-plugin-jupyter, so those projects include these performance improvements.github.comGitHub - dsherret/jsonc-morph: Parse and edit JSONC in JavaScript.Parse and edit JSONC in JavaScript. Contribute to dsherret/jsonc-morph development by creating an account on GitHub. 130
David Sherret @dsherret.dev · 20/03/2026Released jsonc-parser 0.32, which allows deserializing via serde to a concrete type. It's also much faster. 160
Reposted by David SherretYoshiya Hinosawa @kt3k.org · 19/03/2026Last Monday was my last day at Deno. It was a privilege to work with such talented colleagues. The standard library has been my passion for years. I've reviewed all PRs since 2023 and learned a lot from them. Proud to see it often mentioned as one of the best parts of Deno. 1452
Reposted by David SherretNayeem Rahman @nayeemrmn.bsky.social · 18/03/2026My last day at Deno was this week. I really enjoyed maintaining the language server and working with the CLI team, and I'm sure they will keep building great things. Looking for new work in the space of native-backed JS/TS tooling, or something new! 1432
Reposted by David SherretWilliam Perron @wperron.bsky.social · 17/03/2026Yesterday was my last day at Deno. I'm sad to leave but I'm proud of everything the team and I were able to build. I'm glad I had the opportunity to work with some of the most talented people I've met. I wish them all the best! I'm actively looking for my next challenge, my DMs are open! 07614
Reposted by David SherretJo Franchetti @thisisjofrank.bsky.social · 18/03/2026Today is my last day with the Deno team 🦕💖💔 I know they're gonna keep making awesome things. But now *I* need to make awesome things for someone else! If you're looking for a DevRel with a JS focus and extra sparkle, get in touch! 419863
Reposted by David SherretPhil Hawksworth @philhawksworth.dev · 17/03/2026Marvin is another lovely talented person I had the pleasure to work with who you should try and snag for your company if you can! 1192
David Sherret @dsherret.dev · 17/03/2026There's so many cool things under Deno's hood that we haven't talked about so I'll also take some time to blog or post about them soon. 0120
David Sherret @dsherret.dev · 17/03/2026It's been an incredible privilege to have been paid to spend these last five years working with extremely talented colleagues designing, implementing, and refactoring a large portion of Deno. 1131
David Sherret @dsherret.dev · 17/03/2026Yesterday was my last day at Deno. I'm going to transition from two days a week to full time on a business I cofounded in the auto glass industry. My plan is to increase my contributions to my personal open source projects and keep contributing features/fixes to Deno that I need or want. 4954
Reposted by David SherretLuca Casonato 🏳️🌈 @lcas.dev · 17/03/2026John is an absolutely incredible UX design expert. If you are looking for someone who can come up with, implement, and test your UX flows, you should hire him. 0394
Reposted by David SherretJohn Donmoyer @johndonmoyer.com · 17/03/2026Yesterday I updated my bio as I'm no longer with the #1 🦕-themed javascript company. I'm sad to go but excited to see what's next. I've spent the last few years designing exclusively in code, building agent skills, working on command-line tools, and crafting dev docs experiences. Hit me up. 57811
David Sherret @dsherret.dev · 12/03/2026Also merged a perf improvement to the sharp pkg's install script. Once released, it will make all pkg managers faster installing Next.js with lifecycle scripts when brew is installed (except Bun because it overrides the maintainer's decision and always skips the install script) 020
Reposted by David SherretLuca Casonato 🏳️🌈 @lcas.dev · 27/02/2026I've wanted this for so long - and @kettmeir.dev has finally implemented it! View changes in the public API of packages between versions: - what methods were added, changed (type signature), or removed In the future we could even indicate if you are about to publish a breaking change 0252