Skip to content

Commit

Permalink
chore: disable SSE for nodeJS
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathannorris committed Jan 20, 2025
1 parent d2c8bb2 commit b10e760
Show file tree
Hide file tree
Showing 9 changed files with 138 additions and 85 deletions.
33 changes: 31 additions & 2 deletions jest-global.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
import { getSDKs } from './harness/types'
import testContainersSetup from '@eresearchqut/jest-testcontainers/dist/setup'
import { exec } from 'child_process'
import { promisify } from 'util'

const execAsync = promisify(exec)

async function checkDockerCommand() {
try {
await execAsync('docker compose version')
return 'docker compose'
} catch {
try {
await execAsync('docker-compose version')
return 'docker-compose'
} catch {
throw new Error(
'Neither docker compose nor docker-compose commands are available',
)
}
}
}

async function setup(opts) {
const sdks = getSDKs()
Expand All @@ -12,8 +32,17 @@ async function setup(opts) {
.join(',')

if (process.env.LOCAL_MODE === '1') {
// Effectively disable all docker containers by setting a profile that none of them use
process.env.COMPOSE_PROFILES = 'local'
// In LOCAL_MODE, we don't need to set up any containers
return Promise.resolve()
}

try {
// Check which docker compose command is available and set it in the environment
process.env.DOCKER_COMPOSE_COMMAND = await checkDockerCommand()
console.log(`Using ${process.env.DOCKER_COMPOSE_COMMAND} command`)
} catch (error) {
console.error('Docker compose command check failed:', error.message)
throw error
}

console.log(`Set COMPOSE_PROFILES to ${process.env.COMPOSE_PROFILES}`)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"author": "DevCycle <[email protected]>",
"license": "MIT",
"devDependencies": {
"@devcycle/types": "^1.14.0",
"@devcycle/types": "^1.20.0",
"@eresearchqut/jest-testcontainers": "^3.2.0",
"@koa/router": "^12.0.0",
"@types/jest": "^29.2.3",
Expand Down
7 changes: 6 additions & 1 deletion proxies/nodejs/handlers/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => {
let client: DevCycleClient | DevCycleCloudClient

if (!enableCloudBucketing) {
client = initializeDevCycle(sdkKey, { ...options })
client = initializeDevCycle(sdkKey, {
...options,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore disableRealTimeUpdates needs to get released in the updated types release.
disableRealTimeUpdates: true,
})
if (waitForInitialization) {
try {
await client.onClientInitialized()
Expand Down
4 changes: 2 additions & 2 deletions proxies/nodejs/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"dependencies": {
"@devcycle/js-client-sdk": "^1.26.0",
"@devcycle/nodejs-server-sdk": "^1.31.1",
"@devcycle/js-client-sdk": "^1.33.0",
"@devcycle/nodejs-server-sdk": "../../../js-sdks/dist/sdk/nodejs",
"@types/koa": "^2.13.5",
"@types/koa-bodyparser": "^4.3.10",
"@types/koa-router": "^7.4.4",
Expand Down
70 changes: 37 additions & 33 deletions proxies/nodejs/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,66 +14,70 @@ __metadata:
languageName: node
linkType: hard

"@devcycle/bucketing-assembly-script@npm:^1.23.0":
version: 1.23.0
resolution: "@devcycle/bucketing-assembly-script@npm:1.23.0"
"@devcycle/bucketing-assembly-script@npm:^1.29.0":
version: 1.29.0
resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0"
dependencies:
protobufjs: "npm:^7.2.5"
checksum: 10/feab0a9d3abf99872af78e26bc1096516afe248b1ccc71d7b2986366053d8130bbeff6f6bf68ce658c08a5a0eb58278120e37c33999eff860c0f5658c042b637
protobufjs: "npm:^7.4.0"
checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15
languageName: node
linkType: hard

"@devcycle/js-client-sdk@npm:^1.26.0":
version: 1.26.0
resolution: "@devcycle/js-client-sdk@npm:1.26.0"
"@devcycle/js-client-sdk@npm:^1.33.0":
version: 1.33.0
resolution: "@devcycle/js-client-sdk@npm:1.33.0"
dependencies:
"@devcycle/types": "npm:^1.14.0"
"@devcycle/types": "npm:^1.20.0"
fetch-retry: "npm:^5.0.6"
lodash: "npm:^4.17.21"
ua-parser-js: "npm:^1.0.36"
uuid: "npm:^8.3.2"
checksum: 10/1087bd5b4a01f46f17044c30eb24499a5c647072b111b8c551dcffbbd31bc45ef9023948887efc9b63f8724b7145b8a0991eb3de24091bb9e342613f7e0c8206
checksum: 10/b0039b99afd50dd5269432c222e7a30995d48a4d99d7040a554893eeeaaed29e3d524957aba49bde1003eb259f39141ab9cdf37690643c7b897112c8492c424e
languageName: node
linkType: hard

"@devcycle/js-cloud-server-sdk@npm:^1.13.0":
version: 1.13.0
resolution: "@devcycle/js-cloud-server-sdk@npm:1.13.0"
"@devcycle/js-cloud-server-sdk@npm:^1.19.0":
version: 1.19.0
resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0"
dependencies:
"@devcycle/types": "npm:^1.14.0"
"@devcycle/types": "npm:^1.20.0"
cross-fetch: "npm:^4.0.0"
fetch-retry: "npm:^5.0.6"
lodash: "npm:^4.17.21"
checksum: 10/32674e92fd8f83377723553ea54ac91a11dfa4dab169f8e6f809b6692418c203054c188d331a0eb7927075894bcda6977f17ee53677108fd0d43686931929c11
checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a
languageName: node
linkType: hard

"@devcycle/nodejs-server-sdk@npm:^1.31.1":
version: 1.31.1
resolution: "@devcycle/nodejs-server-sdk@npm:1.31.1"
"@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs::locator=root-workspace-0b6124%40workspace%3A.":
version: 1.39.0
resolution: "@devcycle/nodejs-server-sdk@file:../../../js-sdks/dist/sdk/nodejs#../../../js-sdks/dist/sdk/nodejs::hash=bafbe1&locator=root-workspace-0b6124%40workspace%3A."
dependencies:
"@devcycle/bucketing-assembly-script": "npm:^1.23.0"
"@devcycle/js-cloud-server-sdk": "npm:^1.13.0"
"@devcycle/types": "npm:^1.14.0"
"@devcycle/bucketing-assembly-script": "npm:^1.29.0"
"@devcycle/js-cloud-server-sdk": "npm:^1.19.0"
"@devcycle/types": "npm:^1.20.0"
cross-fetch: "npm:^4.0.0"
eventsource: "npm:^2.0.2"
fetch-retry: "npm:^5.0.6"
peerDependencies:
"@openfeature/server-sdk": ^1.13.5
checksum: 10/19dd5b21e5a9e4e614d80734adb9bdc7e754e05b18785a34ecd1275508b8c7d2209120c7332a2bf3274496feb7f7fb3f881a4b3c194f32260548162c754c2e4d
"@openfeature/multi-provider": ^0.1.1
"@openfeature/server-sdk": ^1.16.2
peerDependenciesMeta:
"@openfeature/multi-provider":
optional: true
checksum: 10/32e9ab300202585c03c48cfdb351f36deb0626ff47a48f5591acb58def80090d6c0555b4be9d11afd4d8ac316e1fc7d93ee222c9de4fb827b8656d229c3b708c
languageName: node
linkType: hard

"@devcycle/types@npm:^1.14.0":
version: 1.14.0
resolution: "@devcycle/types@npm:1.14.0"
"@devcycle/types@npm:^1.20.0":
version: 1.20.0
resolution: "@devcycle/types@npm:1.20.0"
dependencies:
class-transformer: "npm:0.5.1"
class-validator: "npm:0.14.1"
iso-639-1: "npm:^2.1.13"
lodash: "npm:^4.17.21"
reflect-metadata: "npm:^0.1.13"
checksum: 10/f040ca4262c53214f7236fb5c04612fd29ec8f41b55e3e2e9ae97748b64827bf4a1c9be03593ce98fbb4838a6eb954e9b40b77900776d1a208aede518543d528
checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2
languageName: node
linkType: hard

Expand Down Expand Up @@ -950,9 +954,9 @@ __metadata:
languageName: node
linkType: hard

"protobufjs@npm:^7.2.5":
version: 7.2.5
resolution: "protobufjs@npm:7.2.5"
"protobufjs@npm:^7.4.0":
version: 7.4.0
resolution: "protobufjs@npm:7.4.0"
dependencies:
"@protobufjs/aspromise": "npm:^1.1.2"
"@protobufjs/base64": "npm:^1.1.2"
Expand All @@ -966,7 +970,7 @@ __metadata:
"@protobufjs/utf8": "npm:^1.1.0"
"@types/node": "npm:>=13.7.0"
long: "npm:^5.0.0"
checksum: 10/6c5aa62b61dff843f585f3acd9cb7a82d566de2dbf167a300b39afee91b04298c4b4aec61354b7c00308b40596f5f3f4b07d6246cfb4ee0abeaea25101033315
checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b
languageName: node
linkType: hard

Expand Down Expand Up @@ -1002,8 +1006,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@devcycle/js-client-sdk": "npm:^1.26.0"
"@devcycle/nodejs-server-sdk": "npm:^1.31.1"
"@devcycle/js-client-sdk": "npm:^1.33.0"
"@devcycle/nodejs-server-sdk": ../../../js-sdks/dist/sdk/nodejs
"@types/koa": "npm:^2.13.5"
"@types/koa-bodyparser": "npm:^4.3.10"
"@types/koa-router": "npm:^7.4.4"
Expand Down
3 changes: 3 additions & 0 deletions proxies/openfeature-nodejs/handlers/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@ export const handleClient = async (ctx: Koa.ParameterizedContext) => {

try {
let asyncError
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore disableRealTimeUpdates needs to get released in the updated types release.
const dvcClient = initializeDevCycle(sdkKey, {
...options,
enableCloudBucketing,
disableRealTimeUpdates: true,
})

try {
Expand Down
6 changes: 3 additions & 3 deletions proxies/openfeature-nodejs/package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"dependencies": {
"@devcycle/nodejs-server-sdk": "^1.28.1",
"@openfeature/core": "^1.1.0",
"@openfeature/server-sdk": "^1.13.5",
"@devcycle/nodejs-server-sdk": "^1.39.0",
"@openfeature/core": "^1.6.0",
"@openfeature/server-sdk": "^1.17.0",
"@types/koa": "^2.13.5",
"@types/koa-bodyparser": "^4.3.10",
"@types/koa-router": "^7.4.4",
Expand Down
88 changes: 50 additions & 38 deletions proxies/openfeature-nodejs/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,52 +14,57 @@ __metadata:
languageName: node
linkType: hard

"@devcycle/bucketing-assembly-script@npm:^1.20.1":
version: 1.20.1
resolution: "@devcycle/bucketing-assembly-script@npm:1.20.1"
"@devcycle/bucketing-assembly-script@npm:^1.29.0":
version: 1.29.0
resolution: "@devcycle/bucketing-assembly-script@npm:1.29.0"
dependencies:
protobufjs: "npm:^7.2.5"
checksum: 10/2045f818f85f53241cf8928d5676797d2b95193f850daa15fd74e1ca6478d712d106d84a07522685961bc0eb1e4e76bdecfcf70a659b11f1467f86ab1c731627
protobufjs: "npm:^7.4.0"
checksum: 10/a923c5d81d65c3edb9e52980e615cce9cd1860c8b9334357c2fb68e5bce5cce991a572bcd18acf3cfcbf9ca102af8aee4cfdcc1b7d6520c34c35127bddbd0f15
languageName: node
linkType: hard

"@devcycle/js-cloud-server-sdk@npm:^1.11.2":
version: 1.11.2
resolution: "@devcycle/js-cloud-server-sdk@npm:1.11.2"
"@devcycle/js-cloud-server-sdk@npm:^1.19.0":
version: 1.19.0
resolution: "@devcycle/js-cloud-server-sdk@npm:1.19.0"
dependencies:
"@devcycle/types": "npm:^1.12.2"
"@devcycle/types": "npm:^1.20.0"
cross-fetch: "npm:^4.0.0"
fetch-retry: "npm:^5.0.6"
lodash: "npm:^4.17.21"
checksum: 10/063f3d41ed41cb69c3e2636fbbcf576d089116e19546f9cef0182cc2ccde2ce1b45c072fb99a6f43ae8235350be7542c73edf2200423baf98f95661f0590008e
checksum: 10/09232931d3d6b390804b2fba5fd80d0331eaef54a0fcd9dcf0c74e7430f5243b8e9597114e8f379644237c790ba98705f062d7bd24517fe7f88a449ebee3ce9a
languageName: node
linkType: hard

"@devcycle/nodejs-server-sdk@npm:^1.28.1":
version: 1.28.1
resolution: "@devcycle/nodejs-server-sdk@npm:1.28.1"
"@devcycle/nodejs-server-sdk@npm:^1.39.0":
version: 1.39.0
resolution: "@devcycle/nodejs-server-sdk@npm:1.39.0"
dependencies:
"@devcycle/bucketing-assembly-script": "npm:^1.20.1"
"@devcycle/js-cloud-server-sdk": "npm:^1.11.2"
"@devcycle/types": "npm:^1.12.2"
"@devcycle/bucketing-assembly-script": "npm:^1.29.0"
"@devcycle/js-cloud-server-sdk": "npm:^1.19.0"
"@devcycle/types": "npm:^1.20.0"
cross-fetch: "npm:^4.0.0"
eventsource: "npm:^2.0.2"
fetch-retry: "npm:^5.0.6"
peerDependencies:
"@openfeature/server-sdk": ^1.13.5
checksum: 10/135555a655d3515b0345e04c041fd4812f7af538ff251b7878e020450eef85d6c312b7ec0b241a0ca5b05ea5a72fb948dfb4d98b85a5d5ad1418a90d4b43bbff
"@openfeature/multi-provider": ^0.1.1
"@openfeature/server-sdk": ^1.16.2
peerDependenciesMeta:
"@openfeature/multi-provider":
optional: true
checksum: 10/d1e9a9b2d851f2bd3c4d50a1ed3f42863fa876168876c9caa1d2d4b814afeeb06d27c5834ffac2142e1d8c75bf736976a5261317a137cf5b215725a6f093e54f
languageName: node
linkType: hard

"@devcycle/types@npm:^1.12.2":
version: 1.12.2
resolution: "@devcycle/types@npm:1.12.2"
"@devcycle/types@npm:^1.20.0":
version: 1.20.0
resolution: "@devcycle/types@npm:1.20.0"
dependencies:
class-transformer: "npm:0.5.1"
class-validator: "npm:0.14.1"
iso-639-1: "npm:^2.1.13"
lodash: "npm:^4.17.21"
reflect-metadata: "npm:^0.1.13"
checksum: 10/d7fd998d9a3f30007429f6568de863b608653833710cb538f5f9bf7b7d21820d1327b7081097c83311ff6b6fd931c5c42ba9f9c4bb42172c4b06aca3a04729a2
checksum: 10/bcfc96b7095c7af6768a6252d406e6f231020e03c18683c81f79ab969cc84b400e6185e4a9cd69a256b0907faaefbd07cdddd0430f7d95404965dc593d34e3a2
languageName: node
linkType: hard

Expand Down Expand Up @@ -87,19 +92,19 @@ __metadata:
languageName: node
linkType: hard

"@openfeature/core@npm:^1.1.0":
version: 1.1.0
resolution: "@openfeature/core@npm:1.1.0"
checksum: 10/7b319beeccadcdedde968a039dd3c7bc5158294aa4977754b4612a4eca97433265837ca5d1cf73cd14ce284354bf1bab08ef96390f720f1d5cadaf4737aa3a08
"@openfeature/core@npm:^1.6.0":
version: 1.6.0
resolution: "@openfeature/core@npm:1.6.0"
checksum: 10/017460339bb86125166cc379352f1079f6a021ca817e0beac6eb10d4251ab7ca0ae5917ff3d67e388ae8061bf61a2b28058c6921ae43d62dfd490238de7437c4
languageName: node
linkType: hard

"@openfeature/server-sdk@npm:^1.13.5":
version: 1.13.5
resolution: "@openfeature/server-sdk@npm:1.13.5"
"@openfeature/server-sdk@npm:^1.17.0":
version: 1.17.0
resolution: "@openfeature/server-sdk@npm:1.17.0"
peerDependencies:
"@openfeature/core": 1.1.0
checksum: 10/51d4203c32fb0d4fb1415ac232c8e8149067ce0cbc11c3f6241dbae107a24efb7b642cc5dce408131e3819d12bef6be8723ef4308bdd1ebed075baae5f4bc8b1
"@openfeature/core": ^1.6.0
checksum: 10/62b6c08f6a3e4622427ea4ad8aaf5957e9313e91c956c6e5acfae07fc0bd223a6eabbc9594e3eedc907470948225e5f23a07a4c836e7eec9a56ab3ab5cf091b0
languageName: node
linkType: hard

Expand Down Expand Up @@ -611,6 +616,13 @@ __metadata:
languageName: node
linkType: hard

"eventsource@npm:^2.0.2":
version: 2.0.2
resolution: "eventsource@npm:2.0.2"
checksum: 10/e1c4c3664cebf9efdd55c90818ef847099f298bf521768d479cf22d8a681e666b3042de85327711ba6a8414ac6a04c70d2aeb4f405bba8239a8c36e06a019374
languageName: node
linkType: hard

"fetch-retry@npm:^5.0.6":
version: 5.0.6
resolution: "fetch-retry@npm:5.0.6"
Expand Down Expand Up @@ -945,9 +957,9 @@ __metadata:
languageName: node
linkType: hard

"protobufjs@npm:^7.2.5":
version: 7.2.5
resolution: "protobufjs@npm:7.2.5"
"protobufjs@npm:^7.4.0":
version: 7.4.0
resolution: "protobufjs@npm:7.4.0"
dependencies:
"@protobufjs/aspromise": "npm:^1.1.2"
"@protobufjs/base64": "npm:^1.1.2"
Expand All @@ -961,7 +973,7 @@ __metadata:
"@protobufjs/utf8": "npm:^1.1.0"
"@types/node": "npm:>=13.7.0"
long: "npm:^5.0.0"
checksum: 10/6c5aa62b61dff843f585f3acd9cb7a82d566de2dbf167a300b39afee91b04298c4b4aec61354b7c00308b40596f5f3f4b07d6246cfb4ee0abeaea25101033315
checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b
languageName: node
linkType: hard

Expand Down Expand Up @@ -997,9 +1009,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@devcycle/nodejs-server-sdk": "npm:^1.28.1"
"@openfeature/core": "npm:^1.1.0"
"@openfeature/server-sdk": "npm:^1.13.5"
"@devcycle/nodejs-server-sdk": "npm:^1.39.0"
"@openfeature/core": "npm:^1.6.0"
"@openfeature/server-sdk": "npm:^1.17.0"
"@types/koa": "npm:^2.13.5"
"@types/koa-bodyparser": "npm:^4.3.10"
"@types/koa-router": "npm:^7.4.4"
Expand Down
Loading

0 comments on commit b10e760

Please sign in to comment.