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

feat(cli): add expo typescript command #23642

Merged
merged 11 commits into from
Aug 15, 2023

Conversation

marklawlor
Copy link
Contributor

Why

The command serves two purposes

  • Allow users to manually start the Expo Typescript bootstrap process
  • Generate Expo Router types within CI environments.

Unlike the automatic Typescript detection, this command will bypass prompts and simply enable Typescript support.

How

Reuses TypeScriptProjectPrerequisite and the Typescript services from MetroBundlerDevServer.

This PR also modifies the MetroBundlerDevServer.startTypeScriptServices() to run without a started server (so file watching will be disabled)

Test Plan

Checklist

@expo-bot expo-bot added the bot: passed checks ExpoBot has nothing to complain about label Jul 20, 2023
@marklawlor marklawlor force-pushed the marklawlor/cli/typed-routes/generation branch from 7b18f48 to 1db875f Compare July 20, 2023 09:27
@marklawlor marklawlor changed the title Marklawlor/cli/typed routes/generation feat(cli): add expo typescript command Jul 20, 2023
@marklawlor marklawlor force-pushed the marklawlor/cli/typed-routes/generation branch from 2014a6d to 35eef1c Compare July 20, 2023 10:27
@@ -85,6 +85,13 @@ export const TEMPLATES: {
destination: ({ webStaticPath }) => webStaticPath + '/index.html',
dependencies: [],
},
{
// `tsconfig.json` is special cased and don't not follow the template
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// `tsconfig.json` is special cased and don't not follow the template
// `tsconfig.json` is special cased and do not follow the template

// Ensure the process doesn't fail if the TypeScript check fails.
// This could happen during the install.
Log.log();
Log.exception(error);
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we want to throw here?

@EvanBacon EvanBacon merged commit 87669a9 into main Aug 15, 2023
5 checks passed
@EvanBacon EvanBacon deleted the marklawlor/cli/typed-routes/generation branch August 15, 2023 15:00
EvanBacon pushed a commit that referenced this pull request Aug 23, 2023
# Why

The command serves two purposes
  - Allow users to manually start the Expo Typescript bootstrap process
  - Generate Expo Router types within CI environments. 
 
Unlike the automatic Typescript detection, this command will bypass
prompts and simply enable Typescript support.

# How

Reuses `TypeScriptProjectPrerequisite` and the Typescript services from
`MetroBundlerDevServer`.

This PR also modifies the
`MetroBundlerDevServer.startTypeScriptServices()` to run without a
started server (so file watching will be disabled)

# Test Plan

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
brentvatne pushed a commit that referenced this pull request Oct 19, 2023
# Why

The command serves two purposes
  - Allow users to manually start the Expo Typescript bootstrap process
  - Generate Expo Router types within CI environments. 
 
Unlike the automatic Typescript detection, this command will bypass
prompts and simply enable Typescript support.

# How

Reuses `TypeScriptProjectPrerequisite` and the Typescript services from
`MetroBundlerDevServer`.

This PR also modifies the
`MetroBundlerDevServer.startTypeScriptServices()` to run without a
started server (so file watching will be disabled)

# Test Plan

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
@brentvatne brentvatne added the published Changes from the PR have been published to npm label Oct 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: passed checks ExpoBot has nothing to complain about published Changes from the PR have been published to npm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants