-
Notifications
You must be signed in to change notification settings - Fork 743
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
Allow periods in arguments to be ignored when parsing cacheKeys #2057
Conversation
@calvincestari can do! |
@Iron-Ham Thanks for this. I'm still a bit concerned about the performance implications, just because these cache key functions are called many times during the execution of GraphQL operations. We have some rudimentary performance tests in the repo. I'm going to run those and see if I can get a better idea of the impact of this. I'd also like to see more test cases to ensure this regex is correct. One test for the happy path is great, but are we certain that this is correctly ignoring |
After running our performance tests, it doesn't seem to create a noticeable regression, so I'm for merging this in. @Iron-Ham would you be willing to provide a few more test cases, to ensure that this only ignoring |
Writing this down for future track-ability, as this was originally posted on Slack: I spent time reading up on the documentation around The original solution produced the following outputs:
Note that the final example is wrong: The last two items in the array should be one string. The ICU regex spec only supports known-count nesting, so supporting one degree would look like this: Instead, we should create these tokens by just scanning the string manually. I've written up a few test cases that reflect desired behaviors and cover cases of string inputs that contain parentheses and whipped up a quick&dirty solution. |
private var isBalanced: Bool { | ||
guard contains("(") || contains(")") else { return true } | ||
|
||
var stack = [Character]() | ||
for character in self where ["(", ")"].contains(character) { | ||
if character == "(" { | ||
stack.append(character) | ||
} else if !stack.isEmpty && character == ")" { | ||
_ = stack.popLast() | ||
} | ||
} | ||
|
||
return stack.isEmpty | ||
} |
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.
Maybe this isn't the best name for this since this isn't strictly checking for balanced parentheses pairs.
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.
This LGTM! Anything else that needs to be done here before merging it in?
@AnthonyMDev not afaict, so if you're good with it: merge away! |
Thanks so much for this contribution @Iron-Ham! |
…lographql#2057) * Allow commas in arguments to be ignored when parsing cacheKeys * Update * More tests * No-split case
…lographql#2057) * Allow commas in arguments to be ignored when parsing cacheKeys * Update * More tests * No-split case
* Attempted fix for integration test failing on CI (apollographql#2024) * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.6 (apollographql#2026) Co-authored-by: Renovate Bot <[email protected]> * Update apollo-tooling to v2.33.9 (apollographql#2028) * Update to v2.33.9 of the CLI tooling * Update StarWarsAPI output generated by updated tooling * Update test with expected output * Keep the parameter spacing * Gateway clarification based on license change * Update SQLite.swift to version 13.0 (apollographql#2015) * Update Package.swift and podspec * Updated XcodeProj * Bump SQLite.swift minimum required version to 0.13.1 Co-authored-by: Calvin Cestari <[email protected]> * Release `0.50.0` (apollographql#2031) * Update version number for release * Updated changelog for release * Update documentation for release changes * Update changelog for apollographql#2015 * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.8 (apollographql#2038) Co-authored-by: Renovate Bot <[email protected]> * Update caching.mdx (apollographql#2042) fixed typo * Update ROADMAP.md (apollographql#2053) * Clean up Github API for performance tests * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.9 (apollographql#2062) Co-authored-by: Renovate Bot <[email protected]> * Make filesystem diagram a bit easier to understand (apollographql#2063) * Update ASCII art for filesystem, clarify where Apollo Codegen folder goes * update spacing to make comments clearer, fix missing file emoji * Allow periods in arguments to be ignored when parsing cacheKeys (apollographql#2057) * Allow commas in arguments to be ignored when parsing cacheKeys * Update * More tests * No-split case * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.11 (apollographql#2068) Co-authored-by: Renovate Bot <[email protected]> * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.12 (apollographql#2074) Co-authored-by: Renovate Bot <[email protected]> * Add tutorial on subscriptions to match Android (apollographql#2072) * Remove bits from under construction that are going to be handled with blog posts, update versions * Get rid of fragments and cache, bring over android subscriptions stuff * this is actually part 9 on iOS * bring over screenshots from Android tutorial * Correct link * Update everything for iOS * update index and link from prior step to include subscriptions * Fix link to subscriptions * add missing image * fix borked link * be clearer about replacing the print statement * remove "unnecessary" quotation marks * add missing sentence, make image less ginormous * Fix direction I definitely know my left from my right! :woman-facepaming: Co-authored-by: Calvin Cestari <[email protected]> * add missing word Co-authored-by: Calvin Cestari <[email protected]> * Bump mermaid from 8.13.6 to 8.13.8 in /docs (apollographql#2083) Bumps [mermaid](https://github.com/knsv/mermaid) from 8.13.6 to 8.13.8. - [Release notes](https://github.com/knsv/mermaid/releases) - [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/docs/CHANGELOG.md) - [Commits](mermaid-js/mermaid@8.13.6...8.13.8) --- updated-dependencies: - dependency-name: mermaid dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): update dependency engine.io to 4.1.2 [security] (apollographql#2094) Co-authored-by: Renovate Bot <[email protected]> * chore(deps): update dependency follow-redirects to 1.14.7 [security] (apollographql#2092) Co-authored-by: Renovate Bot <[email protected]> * chore(deps): update dependency node-forge to 1.0.0 [security] (apollographql#2095) Co-authored-by: Renovate Bot <[email protected]> * Add note about acceptable extensions for types of schema file. (apollographql#2059) * Docs: Bump to Gatsby v3 (apollographql#2104) * Bump gatsby to v3, bump docs theme to version that supports v3 * Bump docs theme to latest prerelease for gatsby v3 * Bump docs theme to new major version * fix(deps): pin dependency gatsby-theme-apollo-docs to 6.0.0 (apollographql#2113) Co-authored-by: Renovate Bot <[email protected]> * fix(deps): pin dependency gatsby to 3.14.6 (apollographql#2123) Co-authored-by: Renovate Bot <[email protected]> * Edits to intro and installation docs (apollographql#2125) * Edits to intro and installation docs * Fix broken links * Edits from @designatednerd plus new screenshots * Fix tutorial URL and tweak downloading a schema article (apollographql#2133) * Split advanced "Creating a client" content into separate article (apollographql#2143) * WIP on revamp to Creating a client article * Break request chain content into separate article * Fix broken links * Incorporate feedback * Disable flaky integration test Will go back and fix this during WebSocket updates after 1.0 alpha * Update gatsby config to deploy 1.0 alpha docs * Update roadmap after 1.0.0-alpha.1 release (apollographql#2145) * [v1.0.0 Alpha 1] JavascriptError @unchecked Sendable (apollographql#2147) * fix: added unchecked sendable to JavascriptError to be able to compile with Swift 5.6 * Update CircleCI to use latest images * Change JavaScriptError properties to read-only * Fix typo in header doc Co-authored-by: TizianoCoroneo <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> * Update documentation to clarify schema download format and filename (apollographql#2160) * Update documentation to clarify schema download format and filename * Fix documentation link * chore(deps): update dependency follow-redirects to 1.14.8 [security] (apollographql#2161) Co-authored-by: Renovate Bot <[email protected]> * Update license copyright notice * Delete Jazzy config - not supported * Update list of active maintainers * [Fix apollographql#2170] Do not refetch query watcher from server after cache miss when cache policy is cache only (apollographql#2177) * [Fix apollographql#2170] Do not refetch query watcher from server after cache miss when cache policy is cache only * Revert test broken test infra change * Add `graphql-ws` protocol support (apollographql#2168) * Implement graphql-transport-ws protocol support * Add graphql-transport-ws integration test based on Apollo Server docs-examples * Add CI step for Apollo Server graphql-transport-ws tests * After installing node v12 switch to use v16 * Instruct nvm to use version in .nvmrc * Update documentation and tutorial * Change WSProtocol cases to closer match library names * Remove initializer defaults and require web socket protocol on designated initializer. * Update Subscriptions documentation * Add WSProtocol option for AWS AppSync * Add ping/pong message support required by graphql-ws * Update documentation and tutorial * Add tests for subscriptionWsProtocol * Add tests for graphqlWSProtocol * Revert to naming aligned with the protocols and not the implementation libraries * Use longer async timeout for slower environments like CI * Fix test names * Fix project configuration * Rename protocol parameter on WebSocket initializers * Revert "Use longer async timeout for slower environments like CI" * Fix async timing bug and refactor websocket protocol tests * chore(deps): update dependency prismjs to 1.27.0 [security] (apollographql#2179) Co-authored-by: Renovate Bot <[email protected]> * Release 0.51.0 (apollographql#2086) * Update version number * Update changelog * Update SourceDocsLib dependecy * Update generated documentation * Update changelog with cache key caveat * Update changelog for merging of apollographql#2147 * Update changelog for apollographql#2177 and apollographql#2168 * Update documentation * Enable lazy access to the request body creation for leverage in custom built interceptors (apollographql#2184) * Release `0.51.1` (apollographql#2188) * Update project version * Update changelog for apollographql#2184 * Update documentation * Updates for new docs infra (apollographql#2197) * Prepare ios docs for new infra * Add sidebar config * Update ExpansionPanelList components * Update code fences * Move _redirects file * Fix links * Update docset title * Update sidebar config * Add version to ios docs config * Remove imports and fix links * Remove mb from homepage button * Add algolia filters * Remove files from old Gatsby docs theme (apollographql#2202) * Remove files from old Gatsby docs theme * Remove netlify.toml * Clear body on APQ retry in JSONRequest (apollographql#2206) * Release 0.51.2 (apollographql#2207) * Release 0.51.2 * Fix Package file * Fix changelog version. * Add netlify config for deploy previews (apollographql#2208) * Add netlify config for deploy previews * Trigger deploy * Remove circle config * Update docs repo branch * Use buttonlink component * Add codegen option for excludes (apollographql#2205) * Add exclude options * Add test case * Fix typo (apollographql#2212) * Start a docs production deploy when docs changes get merged (apollographql#2211) * Create docs-publish.yml * Tweak ignore command * Bump minimist from 1.2.5 to 1.2.6 in /SimpleUploadServer (apollographql#2214) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump node-fetch from 2.6.6 to 2.6.7 in /SimpleUploadServer (apollographql#2215) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](node-fetch/node-fetch@v2.6.6...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add note to tutorial about the `graphql-ws` subscription library (apollographql#2219) * Add note to tutorial about new subscription library * tweak spacing * tweak phrasing * Add links and clarify which library is not maintained Co-authored-by: Calvin Cestari <[email protected]> * Update tutorial-obtain-schema.md (apollographql#2225) Change extension of the downloaded schema file. * Update tutorial-execute-query.md (apollographql#2228) * Update tutorial-execute-query.md * Change the schema file type to json. * chore: Update Xcode build tool versions on CircleCI (apollographql#2242) * chose: update xcode build environment versions * fix: update Node version to match CircleCI image * chore: Update roadmap * fix: Sandbox documentation links (apollographql#2254) * ci: Update xcode image to fix Node version mismatch * ci: Update Node version to match what is installed with Xcode 13.3.1 image * chore: updates roadmap (apollographql#2258) * chore: updates roadmap * Update ROADMAP.md Co-authored-by: Calvin Cestari <[email protected]> * Update ROADMAP.md Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> * Update build phases example to propagate errors to Xcode (apollographql#2260) Without the explicit propagation I wasn't seeing errors in Xcode. Build phase shell env: `/bin/sh` Xcode version: `Version 13.2.1 (13C100)` * Add a comment about a new use of the X-APOLLO-OPERATION-NAME header (apollographql#2267) * Set permissions for GitHub actions (apollographql#2248) * updates roadmap for june 2022 (apollographql#2295) * Update CircleCI tool versions (apollographql#2304) * ci: Update Xcode and iOS simulator versions * ci: Update Node version * fix: `graphql_transport_ws` protocol should send 'complete' to end subscription (apollographql#2320) * fix: graphql_transport_ws protocol should send 'complete' to end subscription * fix: Require MockWebSocket to be initialized with a graphql subscriptions protocol * tests: Fix StarWarsSubscriptionTests to use updated MockWebSocket initializer * Replace print statement with CodegenLogger.log (apollographql#2348) * Fix buttons on docs root (apollographql#2369) * Expose GraphQLResultError Path String (apollographql#2361) * Expose the path as a String * tests: Add unit tests for ResponsePath Co-authored-by: Calvin Cestari <[email protected]> * Revert "Fix buttons on docs root (apollographql#2369)" (apollographql#2371) This reverts commit d26751a. * release: 0.52.0 (apollographql#2370) * chore: Update release version number * chore: Update changelog * dep: Update packages * docs: Update API reference * Fix typo (apollographql#2379) Removed duplicate "the" * Fix incorrect parameter name (apollographql#2380) `id` was set as a parameter, but the query expects `launchId`. * chore: Update ROADMAP for Beta release cycle (apollographql#2393) * Remove all instances of bitcode as not supported in Xcode 14 (apollographql#2398) https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes * Release 0.53.0 (apollographql#2406) * chore: Update version number * chore: Update CHANGELOG * fix: checkout at tag with legacy optionals behavior (apollographql#2412) * Update version in Swift Scripting docs (apollographql#2416) * Re-added support for iOS 11 Co-authored-by: Anthony Miller <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: hwillson <[email protected]> Co-authored-by: Hesham Salman <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: bogdanbeczkowski <[email protected]> Co-authored-by: Ellen Shapiro <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Janessa Garrow <[email protected]> Co-authored-by: Stephen Barlow <[email protected]> Co-authored-by: TizianoCoroneo <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: Rick Fast <[email protected]> Co-authored-by: Trevor Blades <[email protected]> Co-authored-by: bannzai <[email protected]> Co-authored-by: Ayden Lee <[email protected]> Co-authored-by: Rose M Koron <[email protected]> Co-authored-by: Carrione <[email protected]> Co-authored-by: Martin Bonnin <[email protected]> Co-authored-by: JV <[email protected]> Co-authored-by: Adam Zethraeus <[email protected]> Co-authored-by: David Glasser <[email protected]> Co-authored-by: neilnaveen <[email protected]> Co-authored-by: Hilton Campbell <[email protected]> Co-authored-by: Joshua Shroyer <[email protected]> Co-authored-by: Mischa Hildebrand <[email protected]> Co-authored-by: stareque-atlassian <[email protected]> Co-authored-by: Yuki Yamamoto <[email protected]>
* Attempted fix for integration test failing on CI (apollographql#2024) * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.6 (apollographql#2026) Co-authored-by: Renovate Bot <[email protected]> * Update apollo-tooling to v2.33.9 (apollographql#2028) * Update to v2.33.9 of the CLI tooling * Update StarWarsAPI output generated by updated tooling * Update test with expected output * Keep the parameter spacing * Gateway clarification based on license change * Update SQLite.swift to version 13.0 (apollographql#2015) * Update Package.swift and podspec * Updated XcodeProj * Bump SQLite.swift minimum required version to 0.13.1 Co-authored-by: Calvin Cestari <[email protected]> * Release `0.50.0` (apollographql#2031) * Update version number for release * Updated changelog for release * Update documentation for release changes * Update changelog for apollographql#2015 * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.8 (apollographql#2038) Co-authored-by: Renovate Bot <[email protected]> * Update caching.mdx (apollographql#2042) fixed typo * Update ROADMAP.md (apollographql#2053) * Clean up Github API for performance tests * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.9 (apollographql#2062) Co-authored-by: Renovate Bot <[email protected]> * Make filesystem diagram a bit easier to understand (apollographql#2063) * Update ASCII art for filesystem, clarify where Apollo Codegen folder goes * update spacing to make comments clearer, fix missing file emoji * Allow periods in arguments to be ignored when parsing cacheKeys (apollographql#2057) * Allow commas in arguments to be ignored when parsing cacheKeys * Update * More tests * No-split case * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.11 (apollographql#2068) Co-authored-by: Renovate Bot <[email protected]> * fix(deps): update dependency gatsby-theme-apollo-docs to v5.3.12 (apollographql#2074) Co-authored-by: Renovate Bot <[email protected]> * Add tutorial on subscriptions to match Android (apollographql#2072) * Remove bits from under construction that are going to be handled with blog posts, update versions * Get rid of fragments and cache, bring over android subscriptions stuff * this is actually part 9 on iOS * bring over screenshots from Android tutorial * Correct link * Update everything for iOS * update index and link from prior step to include subscriptions * Fix link to subscriptions * add missing image * fix borked link * be clearer about replacing the print statement * remove "unnecessary" quotation marks * add missing sentence, make image less ginormous * Fix direction I definitely know my left from my right! :woman-facepaming: Co-authored-by: Calvin Cestari <[email protected]> * add missing word Co-authored-by: Calvin Cestari <[email protected]> * Bump mermaid from 8.13.6 to 8.13.8 in /docs (apollographql#2083) Bumps [mermaid](https://github.com/knsv/mermaid) from 8.13.6 to 8.13.8. - [Release notes](https://github.com/knsv/mermaid/releases) - [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/docs/CHANGELOG.md) - [Commits](mermaid-js/mermaid@8.13.6...8.13.8) --- updated-dependencies: - dependency-name: mermaid dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): update dependency engine.io to 4.1.2 [security] (apollographql#2094) Co-authored-by: Renovate Bot <[email protected]> * chore(deps): update dependency follow-redirects to 1.14.7 [security] (apollographql#2092) Co-authored-by: Renovate Bot <[email protected]> * chore(deps): update dependency node-forge to 1.0.0 [security] (apollographql#2095) Co-authored-by: Renovate Bot <[email protected]> * Add note about acceptable extensions for types of schema file. (apollographql#2059) * Docs: Bump to Gatsby v3 (apollographql#2104) * Bump gatsby to v3, bump docs theme to version that supports v3 * Bump docs theme to latest prerelease for gatsby v3 * Bump docs theme to new major version * fix(deps): pin dependency gatsby-theme-apollo-docs to 6.0.0 (apollographql#2113) Co-authored-by: Renovate Bot <[email protected]> * fix(deps): pin dependency gatsby to 3.14.6 (apollographql#2123) Co-authored-by: Renovate Bot <[email protected]> * Edits to intro and installation docs (apollographql#2125) * Edits to intro and installation docs * Fix broken links * Edits from @designatednerd plus new screenshots * Fix tutorial URL and tweak downloading a schema article (apollographql#2133) * Split advanced "Creating a client" content into separate article (apollographql#2143) * WIP on revamp to Creating a client article * Break request chain content into separate article * Fix broken links * Incorporate feedback * Disable flaky integration test Will go back and fix this during WebSocket updates after 1.0 alpha * Update gatsby config to deploy 1.0 alpha docs * Update roadmap after 1.0.0-alpha.1 release (apollographql#2145) * [v1.0.0 Alpha 1] JavascriptError @unchecked Sendable (apollographql#2147) * fix: added unchecked sendable to JavascriptError to be able to compile with Swift 5.6 * Update CircleCI to use latest images * Change JavaScriptError properties to read-only * Fix typo in header doc Co-authored-by: TizianoCoroneo <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> * Update documentation to clarify schema download format and filename (apollographql#2160) * Update documentation to clarify schema download format and filename * Fix documentation link * chore(deps): update dependency follow-redirects to 1.14.8 [security] (apollographql#2161) Co-authored-by: Renovate Bot <[email protected]> * Update license copyright notice * Delete Jazzy config - not supported * Update list of active maintainers * [Fix apollographql#2170] Do not refetch query watcher from server after cache miss when cache policy is cache only (apollographql#2177) * [Fix apollographql#2170] Do not refetch query watcher from server after cache miss when cache policy is cache only * Revert test broken test infra change * Add `graphql-ws` protocol support (apollographql#2168) * Implement graphql-transport-ws protocol support * Add graphql-transport-ws integration test based on Apollo Server docs-examples * Add CI step for Apollo Server graphql-transport-ws tests * After installing node v12 switch to use v16 * Instruct nvm to use version in .nvmrc * Update documentation and tutorial * Change WSProtocol cases to closer match library names * Remove initializer defaults and require web socket protocol on designated initializer. * Update Subscriptions documentation * Add WSProtocol option for AWS AppSync * Add ping/pong message support required by graphql-ws * Update documentation and tutorial * Add tests for subscriptionWsProtocol * Add tests for graphqlWSProtocol * Revert to naming aligned with the protocols and not the implementation libraries * Use longer async timeout for slower environments like CI * Fix test names * Fix project configuration * Rename protocol parameter on WebSocket initializers * Revert "Use longer async timeout for slower environments like CI" * Fix async timing bug and refactor websocket protocol tests * chore(deps): update dependency prismjs to 1.27.0 [security] (apollographql#2179) Co-authored-by: Renovate Bot <[email protected]> * Release 0.51.0 (apollographql#2086) * Update version number * Update changelog * Update SourceDocsLib dependecy * Update generated documentation * Update changelog with cache key caveat * Update changelog for merging of apollographql#2147 * Update changelog for apollographql#2177 and apollographql#2168 * Update documentation * Enable lazy access to the request body creation for leverage in custom built interceptors (apollographql#2184) * Release `0.51.1` (apollographql#2188) * Update project version * Update changelog for apollographql#2184 * Update documentation * Updates for new docs infra (apollographql#2197) * Prepare ios docs for new infra * Add sidebar config * Update ExpansionPanelList components * Update code fences * Move _redirects file * Fix links * Update docset title * Update sidebar config * Add version to ios docs config * Remove imports and fix links * Remove mb from homepage button * Add algolia filters * Remove files from old Gatsby docs theme (apollographql#2202) * Remove files from old Gatsby docs theme * Remove netlify.toml * Clear body on APQ retry in JSONRequest (apollographql#2206) * Release 0.51.2 (apollographql#2207) * Release 0.51.2 * Fix Package file * Fix changelog version. * Add netlify config for deploy previews (apollographql#2208) * Add netlify config for deploy previews * Trigger deploy * Remove circle config * Update docs repo branch * Use buttonlink component * Add codegen option for excludes (apollographql#2205) * Add exclude options * Add test case * Fix typo (apollographql#2212) * Start a docs production deploy when docs changes get merged (apollographql#2211) * Create docs-publish.yml * Tweak ignore command * Bump minimist from 1.2.5 to 1.2.6 in /SimpleUploadServer (apollographql#2214) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump node-fetch from 2.6.6 to 2.6.7 in /SimpleUploadServer (apollographql#2215) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](node-fetch/node-fetch@v2.6.6...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add note to tutorial about the `graphql-ws` subscription library (apollographql#2219) * Add note to tutorial about new subscription library * tweak spacing * tweak phrasing * Add links and clarify which library is not maintained Co-authored-by: Calvin Cestari <[email protected]> * Update tutorial-obtain-schema.md (apollographql#2225) Change extension of the downloaded schema file. * Update tutorial-execute-query.md (apollographql#2228) * Update tutorial-execute-query.md * Change the schema file type to json. * chore: Update Xcode build tool versions on CircleCI (apollographql#2242) * chose: update xcode build environment versions * fix: update Node version to match CircleCI image * chore: Update roadmap * fix: Sandbox documentation links (apollographql#2254) * ci: Update xcode image to fix Node version mismatch * ci: Update Node version to match what is installed with Xcode 13.3.1 image * chore: updates roadmap (apollographql#2258) * chore: updates roadmap * Update ROADMAP.md Co-authored-by: Calvin Cestari <[email protected]> * Update ROADMAP.md Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> * Update build phases example to propagate errors to Xcode (apollographql#2260) Without the explicit propagation I wasn't seeing errors in Xcode. Build phase shell env: `/bin/sh` Xcode version: `Version 13.2.1 (13C100)` * Add a comment about a new use of the X-APOLLO-OPERATION-NAME header (apollographql#2267) * Set permissions for GitHub actions (apollographql#2248) * updates roadmap for june 2022 (apollographql#2295) * Update CircleCI tool versions (apollographql#2304) * ci: Update Xcode and iOS simulator versions * ci: Update Node version * fix: `graphql_transport_ws` protocol should send 'complete' to end subscription (apollographql#2320) * fix: graphql_transport_ws protocol should send 'complete' to end subscription * fix: Require MockWebSocket to be initialized with a graphql subscriptions protocol * tests: Fix StarWarsSubscriptionTests to use updated MockWebSocket initializer * Replace print statement with CodegenLogger.log (apollographql#2348) * Fix buttons on docs root (apollographql#2369) * Expose GraphQLResultError Path String (apollographql#2361) * Expose the path as a String * tests: Add unit tests for ResponsePath Co-authored-by: Calvin Cestari <[email protected]> * Revert "Fix buttons on docs root (apollographql#2369)" (apollographql#2371) This reverts commit d26751a. * release: 0.52.0 (apollographql#2370) * chore: Update release version number * chore: Update changelog * dep: Update packages * docs: Update API reference * Fix typo (apollographql#2379) Removed duplicate "the" * Fix incorrect parameter name (apollographql#2380) `id` was set as a parameter, but the query expects `launchId`. * chore: Update ROADMAP for Beta release cycle (apollographql#2393) * Remove all instances of bitcode as not supported in Xcode 14 (apollographql#2398) https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes * Release 0.53.0 (apollographql#2406) * chore: Update version number * chore: Update CHANGELOG * fix: checkout at tag with legacy optionals behavior (apollographql#2412) * Update version in Swift Scripting docs (apollographql#2416) * Re-added support for iOS 11 * Update to 0.53.0 Co-authored-by: Anthony Miller <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: hwillson <[email protected]> Co-authored-by: Hesham Salman <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: bogdanbeczkowski <[email protected]> Co-authored-by: Ellen Shapiro <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Janessa Garrow <[email protected]> Co-authored-by: Stephen Barlow <[email protected]> Co-authored-by: TizianoCoroneo <[email protected]> Co-authored-by: Calvin Cestari <[email protected]> Co-authored-by: Rick Fast <[email protected]> Co-authored-by: Trevor Blades <[email protected]> Co-authored-by: bannzai <[email protected]> Co-authored-by: Ayden Lee <[email protected]> Co-authored-by: Rose M Koron <[email protected]> Co-authored-by: Carrione <[email protected]> Co-authored-by: Martin Bonnin <[email protected]> Co-authored-by: JV <[email protected]> Co-authored-by: Adam Zethraeus <[email protected]> Co-authored-by: David Glasser <[email protected]> Co-authored-by: neilnaveen <[email protected]> Co-authored-by: Hilton Campbell <[email protected]> Co-authored-by: Joshua Shroyer <[email protected]> Co-authored-by: Mischa Hildebrand <[email protected]> Co-authored-by: stareque-atlassian <[email protected]> Co-authored-by: Yuki Yamamoto <[email protected]>
…lographql#2057) * Allow commas in arguments to be ignored when parsing cacheKeys * Update * More tests * No-split case
This PR closes #1071 by introducing a regular expression when targeting the components of a
CacheKey
. Instead of simply splitting on.
, we use a regular expression that matches.
only if it is not contained within parentheses.Performance:
As far as performance goes... maybe this isn't the best way to go about quantifying that, but it seems that any performance hit here is... trackable, but perhaps pretty negligible?