* Add localSettings field to OpenBrowser query * Add wasBrowserSetInCLI as OpenBrowserList prop * Emit launch on mount if --browser was passed * Add entry to cli changelog * Correct typo in changelog * Add link to issue addressed * Add pull request title * Check if browser is already open before launch * Moved features section to top of file * Add reference to PR in changelog * Correct unintended completion * Add features to top of changelog * Change prop name for convention * Add isValidBrowser checkes whether a cliBrowser is valid or not and returns a boolean * Add isValidBrowser to schema * Use isValid browser creates a function launchIfBrowserSetInCli that will launch the browser if a valid browser flag was passed to the cli * Add to changelog.md * Add global launch count to keep track project launch * Make global count available to the launchPad * Add description for globalLaunchCount * Add globalCounnt to schema * Remove unused import and remove unused prop * Use launch function * Import document and use query * Add to changelog * Add to existing features section * Add to changelog * Update changelog.md * Add setter for launchCount and add tests * Update changelog * Remove extra bugfix title * Update changelog * Update changelog * Update changelog * Update changelog * Update Changelog * Update changelog * Update Changelog * Update changelog * Fix changelog for line break error * Update changelog * Refactor to create single field for launching browser * Update schema * Refactor function to make use of single field * Change launch count in beforeEach hook instead * Clean up await in function * Update changelog * Add additional optional chaining for resiliency * Use more precise browser launching query to fix silent bug * Assert that launchProject hasn't been called when browser not found * Update changelog * Update cli/CHANGELOG.md --------- Co-authored-by: Mark Noonan <mark@cypress.io> Co-authored-by: Ryan Manuel <ryanm@cypress.io> Co-authored-by: Matt Schile <mschile@cypress.io> Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com> Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
GraphQL
The GraphQL layer that @packages/launchpad and @packages/app use to interact with @packages/server.
With the goal of type safety, several tools and abstractions are used. The technologies are:
- nexus-graphql library for generating GraphQL schema using TypeScript objects
- graphql-code-generator generate TypeScript types from
gqlqueries (for front-end consuming the API)
This tutorial demonstrates how to build a type-safe GraphQL app using the above technologies. It's a good place to start, to learn how and why each tool is used.
Development
You will generally develop this in parallel with a front-end, in this case @packages/launchpad. Run yarn dev in @packages/launchpad and it will start up the GraphQL server. This also re-generates the graphql.schema file based on the declarations inside of entities.
Visit http://localhost:52200/graphql for the GraphiQL interface.
You can also develop in a test-driven manner using the tests.
yarn test-unitfor the unit testsyarn test-integrationfor the integration tests
Debugging
Logs available at cypress-verbose:graphql:* namespaces {fields,operation}
