-
Notifications
You must be signed in to change notification settings - Fork 3
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
Support aliased type imports #411
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tmeyer2115
previously approved these changes
Oct 17, 2023
alextaing
reviewed
Oct 17, 2023
alextaing
previously approved these changes
Oct 17, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
absolute fire.
tmeyer2115
previously approved these changes
Oct 17, 2023
alextaing
approved these changes
Oct 17, 2023
alextaing
pushed a commit
that referenced
this pull request
Oct 17, 2023
This PR adds support for aliased type imports like `import { CtaData as Cta } from "@yext/search-ui-react";`. This includes multiple levels of aliasing such as an aliased import that imports a type that was itself an aliased import. A number of other bugs are fixed as well: - Fixed missing imports in general across all source files. - A fix to make sure we check that imported Studio types in an external types file (i.e. not directly within a Component file) are properly checked when determining whether the type is imported from Studio. Previously, we only looked within the Component file for imports, so even if a Studio type was imported correctly in an external types file, we would still give an error unless an import for that type was added in the Component file (despite it being unused). The inverse was also an issue where if the type in the external file was not imported correctly, as long as the Component file imported that type from Studio, we wouldn't give an error. - A fix to handle string literal prop types correctly (i.e. “number” is treated as a string literal with the value "number" rather than the `number` type). One thing to note is that Studio doesn't currently support tracing through `export` statements when parsing imported types. For example, if you try to import `UserPaths` from `studio-plugin` in the test site, we will not be able to resolve the type because the type is exported from `studio-plugin` using the `export ... from ...` syntax (e.g. `export { UserPaths } from "./types";`) instead of separate import and export statements. We only trace through `import` statements for now. J=SLAP-2683 TEST=auto, manual See that the updated test site still resolves the type for `nestedColor` properly and the value of that prop can be changed through the UI and saved as expected.
Merged
alextaing
added a commit
that referenced
this pull request
Oct 24, 2023
## Features - We have introduced Collapsible Sidebars (#408). - We now support aliased type imports (#411). - The TypeScript utility types Omit, Pick, and Required are now supported for props in a component's prop interface (#413, #414, #415). - The Studio Preview can now display CSS and SCSS styling.
Merged
alextaing
added a commit
that referenced
this pull request
Oct 30, 2023
## Features - We have introduced Collapsible Sidebars (#408). - We now support aliased type imports (#411). - The TypeScript utility types Omit, Pick, and Required are now supported for props in a component's prop interface (#413, #414, #415). - The Studio Preview can now display CSS and SCSS styling (#418). - Undo keyboard shortcuts (`cmd+z` for OS X, and `ctrl+z` for other OSes) are now supported in Studio (#417). ## Changes - `_server.tsx` and `_client.tsx` are now reserved template names for PagesJS Repos (#423). ## Fixes - Miscellaneous viewport bugs have been fixed (#424).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for aliased type imports like
import { CtaData as Cta } from "@yext/search-ui-react";
. This includes multiple levels of aliasing such as an aliased import that imports a type that was itself an aliased import. A number of other bugs are fixed as well:number
type).One thing to note is that Studio doesn't currently support tracing through
export
statements when parsing imported types. For example, if you try to importUserPaths
fromstudio-plugin
in the test site, we will not be able to resolve the type because the type is exported fromstudio-plugin
using theexport ... from ...
syntax (e.g.export { UserPaths } from "./types";
) instead of separate import and export statements. We only trace throughimport
statements for now.J=SLAP-2683
TEST=auto, manual
See that the updated test site still resolves the type for
nestedColor
properly and the value of that prop can be changed through the UI and saved as expected.