Skip to content

Conversation

@kinyoklion
Copy link
Member

No description provided.

});

// Common setup code for all tests
// 1. Sets up streamer
Copy link
Member Author

Choose a reason for hiding this comment

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

Replaced all streamer with either updateProcessor or streaming.

if (this.context) {
// identify will start streamer
// identify will start the update processor
return this.identify(this.context, { timeout: this.identifyTimeout });
Copy link
Member Author

Choose a reason for hiding this comment

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

I think this isn't the correct way to do this long-term. We don't need the identify events, for instance, and are probably doing more work than required.

pollingPath = `${pollingPath}?withReasons=true`;
}
this.updateProcessor = new PollingProcessor(
this.sdkKey,
Copy link
Member Author

Choose a reason for hiding this comment

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

Streaming takes a "ClientContext", but providing the individual items allows better encapsulation and also mocking without needing to mock as many components.

public readonly privateAttributes: string[] = [];

public readonly initialConnectionMode: ConnectionMode = 'streaming';
public connectionMode: ConnectionMode;
Copy link
Member Author

Choose a reason for hiding this comment

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

Runtime state is part of the client now, not part of the configuration.

}

/**
* Note: The requestor is implemented independently from polling such that it can be used to
Copy link
Member Author

Choose a reason for hiding this comment

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

In the browser version of JS we should maintain something close to the existing behavior, and we can use this to do that. Current js-client-sdk will make a single request first. If someone listens to changes, or specifically requests streaming, then it will stream.

We may make the requestor in the client, but for now I am putting it in the polling implementation.

Copy link
Member Author

Choose a reason for hiding this comment

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

The spelling Requestor is for consistency even though requester would be more common in american english.

@kinyoklion kinyoklion marked this pull request as ready for review July 31, 2024 16:40
@kinyoklion kinyoklion requested a review from a team as a code owner July 31, 2024 16:40
@kinyoklion kinyoklion merged commit f861078 into feat/client-connection-handling-rework Jul 31, 2024
@kinyoklion kinyoklion deleted the rlamb/sc-249240/implement-polling-support branch July 31, 2024 20:32
kinyoklion added a commit that referenced this pull request Jul 31, 2024
kinyoklion added a commit that referenced this pull request Aug 1, 2024
@github-actions github-actions bot mentioned this pull request Aug 1, 2024
kinyoklion pushed a commit that referenced this pull request Aug 13, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>akamai-edgeworker-sdk-common: 1.1.12</summary>

##
[1.1.12](akamai-edgeworker-sdk-common-v1.1.11...akamai-edgeworker-sdk-common-v1.1.12)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from ^2.4.4 to ^2.4.5
</details>

<details><summary>akamai-server-base-sdk: 2.1.12</summary>

##
[2.1.12](akamai-server-base-sdk-v2.1.11...akamai-server-base-sdk-v2.1.12)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^1.1.11 to
^1.1.12
    * @launchdarkly/js-server-sdk-common bumped from ^2.4.4 to ^2.4.5
</details>

<details><summary>akamai-server-edgekv-sdk: 1.1.12</summary>

##
[1.1.12](akamai-server-edgekv-sdk-v1.1.11...akamai-server-edgekv-sdk-v1.1.12)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^1.1.11 to
^1.1.12
    * @launchdarkly/js-server-sdk-common bumped from ^2.4.4 to ^2.4.5
</details>

<details><summary>cloudflare-server-sdk: 2.5.10</summary>

##
[2.5.10](cloudflare-server-sdk-v2.5.9...cloudflare-server-sdk-v2.5.10)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-server-sdk-common-edge bumped from 2.3.5 to 2.3.6
</details>

<details><summary>js-client-sdk-common: 1.3.0</summary>

##
[1.3.0](js-client-sdk-common-v1.2.0...js-client-sdk-common-v1.3.0)
(2024-08-12)


### Features

* Add connection mananger.
([#522](#522))
([5bf8b16](5bf8b16))
* Implement polling support.
([#524](#524))
([a99048e](a99048e))
* Refactor application state handling.
([#523](#523))
([f5b81e6](f5b81e6))
* refactors the implementation of context caching. You can now s…
([#531](#531))
([8ab2ee4](8ab2ee4))


### Bug Fixes

* Fix field visibility.
([#530](#530))
([21fb18b](21fb18b))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-sdk-common bumped from 2.5.0 to 2.6.0
</details>

<details><summary>js-sdk-common: 2.6.0</summary>

##
[2.6.0](js-sdk-common-v2.5.0...js-sdk-common-v2.6.0)
(2024-08-12)


### Features

* refactors the implementation of context caching. You can now s…
([#531](#531))
([8ab2ee4](8ab2ee4))
</details>

<details><summary>js-server-sdk-common: 2.4.5</summary>

##
[2.4.5](js-server-sdk-common-v2.4.4...js-server-sdk-common-v2.4.5)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-sdk-common bumped from 2.5.0 to 2.6.0
</details>

<details><summary>js-server-sdk-common-edge: 2.3.6</summary>

##
[2.3.6](js-server-sdk-common-edge-v2.3.5...js-server-sdk-common-edge-v2.3.6)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.4.4 to 2.4.5
</details>

<details><summary>node-server-sdk: 9.5.1</summary>

##
[9.5.1](node-server-sdk-v9.5.0...node-server-sdk-v9.5.1)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.4.4 to 2.4.5
</details>

<details><summary>node-server-sdk-dynamodb: 6.1.18</summary>

##
[6.1.18](node-server-sdk-dynamodb-v6.1.17...node-server-sdk-dynamodb-v6.1.18)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.5.0 to 9.5.1
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.5.1
</details>

<details><summary>node-server-sdk-otel: 1.0.10</summary>

##
[1.0.10](node-server-sdk-otel-v1.0.9...node-server-sdk-otel-v1.0.10)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.5.0 to 9.5.1
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.5.1
</details>

<details><summary>node-server-sdk-redis: 4.1.18</summary>

##
[4.1.18](node-server-sdk-redis-v4.1.17...node-server-sdk-redis-v4.1.18)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.5.0 to 9.5.1
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.5.1
</details>

<details><summary>react-native-client-sdk: 10.4.0</summary>

##
[10.4.0](react-native-client-sdk-v10.3.1...react-native-client-sdk-v10.4.0)
(2024-08-12)


### Features

* Add configuration validation for ReactNative specific configuration.
([#532](#532))
([c1490e2](c1490e2))
* Add connection mananger.
([#522](#522))
([5bf8b16](5bf8b16))
* Implement polling support.
([#524](#524))
([a99048e](a99048e))
* Refactor application state handling.
([#523](#523))
([f5b81e6](f5b81e6))


### Bug Fixes

* Fix field visibility.
([#530](#530))
([21fb18b](21fb18b))
* Handle non-status code errors for streaming connection.
([#533](#533))
([fc4645e](fc4645e))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.2.0 to 1.3.0
</details>

<details><summary>vercel-server-sdk: 1.3.13</summary>

##
[1.3.13](vercel-server-sdk-v1.3.12...vercel-server-sdk-v1.3.13)
(2024-08-12)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common-edge bumped from 2.3.5 to 2.3.6
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Anderson <127344469+tanderson-ld@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants