Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert blob package to TypeScript #61541

Open
wants to merge 3 commits into
base: trunk
Choose a base branch
from

Conversation

jpstevens
Copy link
Contributor

@jpstevens jpstevens commented May 9, 2024

What?

This PR converts the blob package to TypeScript.

Why?

Ensures package is fully type checked.

How?

  • converted files to .ts
  • explicitly typed variables and functions in index file
  • added @ts-ignore statements to tests that call functions in ways that are not type-compliant

Testing Instructions

npm run test:unit -- packages/blob tests pass
npm run build:package-types returns a zero exit code

Copy link

github-actions bot commented May 9, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jpstevens <jpstevens@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@github-actions github-actions bot added the First-time Contributor Pull request opened by a first-time contributor to Gutenberg repository label May 9, 2024
Copy link

github-actions bot commented May 9, 2024

👋 Thanks for your first Pull Request and for helping build the future of Gutenberg and WordPress, @jpstevens! In case you missed it, we'd love to have you join us in our Slack community.

If you want to learn more about WordPress development in general, check out the Core Handbook full of helpful information.

@Mamaduka Mamaduka added [Type] Enhancement A suggestion for improvement. [Package] Blob /packages/blob and removed First-time Contributor Pull request opened by a first-time contributor to Gutenberg repository labels May 14, 2024
@@ -1,7 +1,9 @@
type BlobPart = BufferSource | Blob | string;
Copy link
Member

Choose a reason for hiding this comment

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

BlobPart should be a native built-in type, after all, it's used in the Blob constructor. You don't need to define it here.

/**
* @type {Record<string, File|undefined>}
*/
const cache = {};
const cache: Record< string, File | undefined > = {};
Copy link
Member

Choose a reason for hiding this comment

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

I think the cache type should be Record< string, File >. We never intentionally store undefined values.

Copy link
Member

Choose a reason for hiding this comment

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

Also, we can remove all of the JSDoc type annotations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Blob /packages/blob [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants