Update Console Dev extension - Major Rewrite + Support Windows + Fix Parser#21036
Update Console Dev extension - Major Rewrite + Support Windows + Fix Parser#21036raycastbot merged 3 commits intoraycast:mainfrom
Console Dev extension - Major Rewrite + Support Windows + Fix Parser#21036Conversation
|
Thank you for your contribution! 🎉 🔔 @rawnly @aliaksandrZh you might want to have a look. You can use this guide to learn how to check out the Pull Request locally in order to test it. Due to our current reduced availability during summer, the initial review may take up to 10-15 business days. |
There was a problem hiding this comment.
Greptile Summary
This PR represents a comprehensive modernization and rewrite of the Console Dev extension. The changes fundamentally transform how the extension handles RSS feed data, moving from a complex functional programming approach using fp-ts and axios to a simplified implementation leveraging Raycast's modern utilities.
Core architectural changes:
- Replaced manual state management with
useCachedPromisehook for automatic caching and error handling - Removed fp-ts dependency and complex pipe operations in favor of straightforward JavaScript
- Migrated from axios to native fetch API for HTTP requests
- Updated from deprecated Raycast components (
ListItem,ActionPanelItem) to current equivalents (List.Item,Action)
User experience improvements:
- Added detail view support with markdown-formatted descriptions for all three commands (Tools, Betas, Interviews)
- Enhanced visual presentation with proper date formatting in accessories
- Improved error handling through built-in toast notifications
Technical modernization:
- Updated TypeScript configuration to ES2023 and added proper type definitions
- Migrated ESLint from legacy JSON config to flat config format using
@raycast/eslint-config - Added Windows platform support alongside macOS
- Updated all dependencies to their latest versions (Node 16→22, TypeScript 4→5, React 17→19)
- Added Turndown library for HTML-to-markdown conversion
Infrastructure additions:
- Added metadata images for store presentation
- Created comprehensive README.md documentation
- Updated CHANGELOG.md with proper formatting
The extension now follows modern Raycast development patterns while maintaining the same core functionality of displaying Console Dev's RSS feeds for tools, betas, and interviews. The codebase is significantly simplified and more maintainable.
Important Files Changed
File Changes Overview
| Filename | Score | Overview |
|---|---|---|
| extensions/consoledev/package.json | 4/5 | Major dependency updates, added Windows support, modernized build scripts |
| extensions/consoledev/src/tools_list.tsx | 4/5 | Replaced fp-ts patterns with useCachedPromise hook, added detail view |
| extensions/consoledev/src/betas_list.tsx | 5/5 | Modernized with useCachedPromise hook and detail view support |
| extensions/consoledev/src/interviews_list.tsx | 4/5 | Simplified implementation with modern Raycast hooks and markdown formatting |
| extensions/consoledev/src/util.ts | 4/5 | Replaced fp-ts/axios with native fetch and Promise-based approach |
| extensions/consoledev/src/components/FeedItem.tsx | 4/5 | Updated to current Raycast API components with detail view |
| extensions/consoledev/src/xml.ts | 3/5 | Simplified XML parsing but introduced potential type safety concerns |
| extensions/consoledev/src/lib/string.ts | 5/5 | Replaced complex fp-ts utilities with single HTML-to-markdown converter |
| extensions/consoledev/src/responseTypes.ts | 5/5 | Cleaned up interfaces and added better type definitions |
| extensions/consoledev/tsconfig.json | 5/5 | Updated to ES2023 and modern TypeScript configuration |
| extensions/consoledev/eslint.config.js | 5/5 | Added modern flat config format using Raycast's official configuration |
| extensions/consoledev/.eslintrc.json | 5/5 | Properly removed legacy ESLint configuration |
| extensions/consoledev/CHANGELOG.md | 5/5 | Added properly formatted changelog entry with required template |
| extensions/consoledev/README.md | 4/5 | Added comprehensive documentation with icon and feature descriptions |
| extensions/consoledev/.gitignore | 3/5 | Contains duplicate entries that should be cleaned up |
| extensions/consoledev/src/lib/number.ts | 4/5 | Removed unused functional programming utilities as part of simplification |
Confidence score: 4/5
- This PR is safe to merge with good overall quality and significant improvements to the extension
- Score reflects comprehensive modernization with proper Raycast patterns, though some minor issues need attention
- Pay close attention to src/xml.ts for potential type safety concerns and .gitignore for duplicate entries
16 files reviewed, 2 comments
| [k]: data, | ||
| }; | ||
| }, {} as T); | ||
| const parseXml = (xml: string) => parseStringPromise(xml, { explicitArray: false }) as Promise<FeedResponse>; |
There was a problem hiding this comment.
Adding { explicitArray: false } accounts for all the parsing.
|
Thank you! I'm reviewing this now, sorry I was in vacation! |
|
There is always time for vacation ☀️ |
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag. |
I initially tried to change as less code as possible but after removing
axiosand all of the formatter code, there was no real reason to keeppipecommands for a simple function which is why I removed it.Description
useCachedPromise) to benefit from cachingaxios)Screencast
Old View for reference:

console-dev.mp4
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare located outside the metadata folder if they were not generated with our metadata tool