Skip to content

Update Console Dev extension - Major Rewrite + Support Windows + Fix Parser#21036

Merged
raycastbot merged 3 commits intoraycast:mainfrom
xmok:ext/consoledev
Aug 26, 2025
Merged

Update Console Dev extension - Major Rewrite + Support Windows + Fix Parser#21036
raycastbot merged 3 commits intoraycast:mainfrom
xmok:ext/consoledev

Conversation

@xmok
Copy link
Contributor

@xmok xmok commented Aug 19, 2025

I initially tried to change as less code as possible but after removing axios and all of the formatter code, there was no real reason to keep pipe commands for a simple function which is why I removed it.

Description

  • Description shown in Detail panel w/ Markdown formatting
  • Simplify parser to directly expose objects
  • Use Raycast hook (useCachedPromise) to benefit from caching
  • Remove many deps (adios axios)
  • Modernize to use latest Raycast configuration
  • Add metadata images
  • Add README.md

Screencast

Old View for reference:
consoledev-old-look

console-dev.mp4

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: consoledev Issues related to the consoledev extension labels Aug 19, 2025
@raycastbot
Copy link
Collaborator

raycastbot commented Aug 19, 2025

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.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 useCachedPromise hook 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

Edit Code Review Bot Settings | Greptile

[k]: data,
};
}, {} as T);
const parseXml = (xml: string) => parseStringPromise(xml, { explicitArray: false }) as Promise<FeedResponse>;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding { explicitArray: false } accounts for all the parsing.

@pernielsentikaer
Copy link
Collaborator

Hi @xmok👋

Thanks for your contribution 🔥

@rawnly do you want to check this?

@pernielsentikaer pernielsentikaer self-assigned this Aug 19, 2025
@rawnly
Copy link
Contributor

rawnly commented Aug 26, 2025

Thank you! I'm reviewing this now, sorry I was in vacation!

@pernielsentikaer
Copy link
Collaborator

There is always time for vacation ☀️

@raycastbot raycastbot merged commit d6f7c77 into raycast:main Aug 26, 2025
2 checks passed
@github-actions
Copy link
Contributor

Published to the Raycast Store:
https://raycast.com/fedevitaledev/consoledev

@raycastbot
Copy link
Collaborator

🎉 🎉 🎉

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

@xmok xmok deleted the ext/consoledev branch August 27, 2025 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension: consoledev Issues related to the consoledev extension extension fix / improvement Label for PRs with extension's fix improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants