From 31b96cc1b301d57de4cd2bbaf9955637b815a664 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Wed, 20 Mar 2024 20:34:46 -0700 Subject: [PATCH 01/19] Create jsr.json --- packages/shared/common/jsr.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/shared/common/jsr.json diff --git a/packages/shared/common/jsr.json b/packages/shared/common/jsr.json new file mode 100644 index 0000000000..66c8f879b1 --- /dev/null +++ b/packages/shared/common/jsr.json @@ -0,0 +1,7 @@ +{ + "name": "@launchdarkly/js-sdk-common", + "version": "2.3.0", + "exports": { + ".": "./dist/index.js" + } +} From c39756bd0648a089b9b692aa8a95f6689bcebd1e Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Fri, 22 Mar 2024 14:09:48 -0700 Subject: [PATCH 02/19] fix: Added explicit return types. --- packages/sdk/cloudflare/jsr.json | 9 +++++++++ packages/sdk/cloudflare/src/createPlatformInfo.ts | 5 +++-- packages/sdk/cloudflare/src/index.ts | 10 +++++++--- packages/sdk/cloudflare/tsconfig.json | 2 +- packages/shared/common/jsr.json | 7 ------- 5 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 packages/sdk/cloudflare/jsr.json delete mode 100644 packages/shared/common/jsr.json diff --git a/packages/sdk/cloudflare/jsr.json b/packages/sdk/cloudflare/jsr.json new file mode 100644 index 0000000000..fe2d86c38f --- /dev/null +++ b/packages/sdk/cloudflare/jsr.json @@ -0,0 +1,9 @@ +{ + "name": "@launchdarkly/cloudflare-server-sdk", + "version": "2.4.1", + "exports": "./src/index.ts", + "publish": { + "include": ["LICENSE", "README.md", "package.json", "src/**/*.ts"], + "exclude": ["src/**/*.test.ts"] + } +} diff --git a/packages/sdk/cloudflare/src/createPlatformInfo.ts b/packages/sdk/cloudflare/src/createPlatformInfo.ts index e66971d953..96fe8c06eb 100644 --- a/packages/sdk/cloudflare/src/createPlatformInfo.ts +++ b/packages/sdk/cloudflare/src/createPlatformInfo.ts @@ -1,6 +1,7 @@ import type { Info, PlatformData, SdkData } from '@launchdarkly/js-server-sdk-common-edge'; -import { name, version } from '../package.json'; +// eslint-disable-next-line prettier/prettier +import { name, version } from '../package.json' assert { type: "json" }; class CloudflarePlatformInfo implements Info { platformData(): PlatformData { @@ -18,6 +19,6 @@ class CloudflarePlatformInfo implements Info { } } -const createPlatformInfo = () => new CloudflarePlatformInfo(); +const createPlatformInfo = (): CloudflarePlatformInfo => new CloudflarePlatformInfo() export default createPlatformInfo; diff --git a/packages/sdk/cloudflare/src/index.ts b/packages/sdk/cloudflare/src/index.ts index 692a0c6fc4..064e6e969b 100644 --- a/packages/sdk/cloudflare/src/index.ts +++ b/packages/sdk/cloudflare/src/index.ts @@ -14,8 +14,8 @@ import { BasicLogger, EdgeFeatureStore, init as initEdge, - LDClient, - LDOptions, + type LDClient, + type LDOptions, } from '@launchdarkly/js-server-sdk-common-edge'; import createPlatformInfo from './createPlatformInfo'; @@ -45,7 +45,11 @@ export type { LDClient }; * @return * The new {@link LDClient} instance. */ -export const init = (clientSideID: string, kvNamespace: KVNamespace, options: LDOptions = {}) => { +export const init = ( + clientSideID: string, + kvNamespace: KVNamespace, + options: LDOptions = {}, +): LDClient => { const logger = options.logger ?? BasicLogger.get(); return initEdge(clientSideID, createPlatformInfo(), { featureStore: new EdgeFeatureStore(kvNamespace, clientSideID, 'Cloudflare', logger), diff --git a/packages/sdk/cloudflare/tsconfig.json b/packages/sdk/cloudflare/tsconfig.json index d46b7b5e95..290c9853ab 100644 --- a/packages/sdk/cloudflare/tsconfig.json +++ b/packages/sdk/cloudflare/tsconfig.json @@ -4,7 +4,7 @@ "declaration": true, "declarationMap": true, "lib": ["es6"], - "module": "ES6", + "module": "ESNext", "moduleResolution": "node", "noImplicitOverride": true, "outDir": "dist", diff --git a/packages/shared/common/jsr.json b/packages/shared/common/jsr.json deleted file mode 100644 index 66c8f879b1..0000000000 --- a/packages/shared/common/jsr.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "@launchdarkly/js-sdk-common", - "version": "2.3.0", - "exports": { - ".": "./dist/index.js" - } -} From 05353a3bc3283dde340955a1923acadbf22c7675 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Fri, 22 Mar 2024 14:19:59 -0700 Subject: [PATCH 03/19] fix: Include jsr.json when publishing. --- packages/sdk/cloudflare/jsr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sdk/cloudflare/jsr.json b/packages/sdk/cloudflare/jsr.json index fe2d86c38f..43524f3117 100644 --- a/packages/sdk/cloudflare/jsr.json +++ b/packages/sdk/cloudflare/jsr.json @@ -1,9 +1,9 @@ { "name": "@launchdarkly/cloudflare-server-sdk", - "version": "2.4.1", + "version": "0.0.1", "exports": "./src/index.ts", "publish": { - "include": ["LICENSE", "README.md", "package.json", "src/**/*.ts"], + "include": ["LICENSE", "README.md", "package.json", "jsr.json", "src/**/*.ts"], "exclude": ["src/**/*.test.ts"] } } From cde1ba49e8c99dcab58d8047d6a84b9c2fd9652e Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 15:47:28 -0700 Subject: [PATCH 04/19] fix: Modify package.json import to resolve esbuild error. Update esbuild to latest version. Set cf sdk to jsr. --- packages/sdk/cloudflare/example/package.json | 4 ++-- packages/sdk/cloudflare/src/createPlatformInfo.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/sdk/cloudflare/example/package.json b/packages/sdk/cloudflare/example/package.json index fbabf0d18d..1da685da3e 100644 --- a/packages/sdk/cloudflare/example/package.json +++ b/packages/sdk/cloudflare/example/package.json @@ -5,12 +5,12 @@ "module": "./dist/index.mjs", "packageManager": "yarn@3.4.1", "dependencies": { - "@launchdarkly/cloudflare-server-sdk": "2.2.3" + "@launchdarkly/cloudflare-server-sdk": "npm:@jsr/launchdarkly__cloudflare-server-sdk@^0.0.1" }, "devDependencies": { "@cloudflare/workers-types": "^4.20230321.0", "@types/jest": "^29.5.5", - "esbuild": "^0.14.41", + "esbuild": "0.20.2", "jest": "^29.7.0", "jest-environment-miniflare": "^2.5.0", "miniflare": "^2.5.0", diff --git a/packages/sdk/cloudflare/src/createPlatformInfo.ts b/packages/sdk/cloudflare/src/createPlatformInfo.ts index 96fe8c06eb..481c059a5d 100644 --- a/packages/sdk/cloudflare/src/createPlatformInfo.ts +++ b/packages/sdk/cloudflare/src/createPlatformInfo.ts @@ -1,7 +1,9 @@ import type { Info, PlatformData, SdkData } from '@launchdarkly/js-server-sdk-common-edge'; // eslint-disable-next-line prettier/prettier -import { name, version } from '../package.json' assert { type: "json" }; +import packageJson from '../package.json' assert { type: "json" } + +const { name, version } = packageJson class CloudflarePlatformInfo implements Info { platformData(): PlatformData { From 2c305ca7161d0918f7e1e53560e4c933b24df5c9 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 15:49:04 -0700 Subject: [PATCH 05/19] chore: Added jsr registry to npmrc and yarnrc. --- .yarnrc.yml | 4 ++++ packages/sdk/cloudflare/example/.npmrc | 1 + 2 files changed, 5 insertions(+) create mode 100644 packages/sdk/cloudflare/example/.npmrc diff --git a/.yarnrc.yml b/.yarnrc.yml index 41bc1d890d..5a857bef1a 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -2,6 +2,10 @@ nodeLinker: node-modules npmPublishAccess: public +npmScopes: + jsr: + npmRegistryServer: 'https://npm.jsr.io' + plugins: - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs spec: '@yarnpkg/plugin-workspace-tools' diff --git a/packages/sdk/cloudflare/example/.npmrc b/packages/sdk/cloudflare/example/.npmrc new file mode 100644 index 0000000000..41583e36ca --- /dev/null +++ b/packages/sdk/cloudflare/example/.npmrc @@ -0,0 +1 @@ +@jsr:registry=https://npm.jsr.io From fba552ada00bace75cbfae980a5aff308d4cd392 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 15:55:38 -0700 Subject: [PATCH 06/19] Update .prettierrc --- .prettierrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierrc b/.prettierrc index 932bffe392..c4564e090e 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,5 +5,6 @@ "importOrder": ["^@launchdarkly/(.*)$", "^[./]"], "importOrderCaseInsensitive": true, "importOrderSeparation": true, - "importOrderSortSpecifiers": true + "importOrderSortSpecifiers": true, + "trailingComma": "all" } From af96d8267e1dad26a6250392fee5a73f6dfea414 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 15:57:24 -0700 Subject: [PATCH 07/19] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 88dc724c5f..37ff832f46 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ yarn-error.log .DS_Store .vscode dump.rdb +.wrangler From 8f06f60f43898be6e58f339210f8507d37eef045 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 15:58:17 -0700 Subject: [PATCH 08/19] Update jsr.json --- packages/sdk/cloudflare/jsr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/cloudflare/jsr.json b/packages/sdk/cloudflare/jsr.json index 43524f3117..3e94eb7613 100644 --- a/packages/sdk/cloudflare/jsr.json +++ b/packages/sdk/cloudflare/jsr.json @@ -1,6 +1,6 @@ { "name": "@launchdarkly/cloudflare-server-sdk", - "version": "0.0.1", + "version": "0.0.2", "exports": "./src/index.ts", "publish": { "include": ["LICENSE", "README.md", "package.json", "jsr.json", "src/**/*.ts"], From 5e014f83ab5afd61ef9076f3e0d06a1ee5129138 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Thu, 28 Mar 2024 16:02:28 -0700 Subject: [PATCH 09/19] Update package.json --- packages/sdk/cloudflare/example/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/cloudflare/example/package.json b/packages/sdk/cloudflare/example/package.json index 1da685da3e..e15186dadd 100644 --- a/packages/sdk/cloudflare/example/package.json +++ b/packages/sdk/cloudflare/example/package.json @@ -5,7 +5,7 @@ "module": "./dist/index.mjs", "packageManager": "yarn@3.4.1", "dependencies": { - "@launchdarkly/cloudflare-server-sdk": "npm:@jsr/launchdarkly__cloudflare-server-sdk@^0.0.1" + "@launchdarkly/cloudflare-server-sdk": "npm:@jsr/launchdarkly__cloudflare-server-sdk@^0.0.2" }, "devDependencies": { "@cloudflare/workers-types": "^4.20230321.0", From e5886161e43bbba9978e4a7ba3a79dee85565ddb Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 11:53:55 -0700 Subject: [PATCH 10/19] fix: Prettier ignore import assert. --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 2ef3c10866..e43a1c6132 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,3 +10,4 @@ coverage .vscode **/*/CHANGELOG.md packages/sdk/akamai-edgekv/src/edgekv/edgekv.js +packages/sdk/cloudflare/src/createPlatformInfo.ts From cc7f0dc5dec18bf81cbb919118a66a212cd06804 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 13:27:52 -0700 Subject: [PATCH 11/19] fix: ts-ignore for import assertion because ts-jest errors. --- packages/sdk/cloudflare/src/createPlatformInfo.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/sdk/cloudflare/src/createPlatformInfo.ts b/packages/sdk/cloudflare/src/createPlatformInfo.ts index 481c059a5d..fe9c7d6c22 100644 --- a/packages/sdk/cloudflare/src/createPlatformInfo.ts +++ b/packages/sdk/cloudflare/src/createPlatformInfo.ts @@ -1,7 +1,8 @@ import type { Info, PlatformData, SdkData } from '@launchdarkly/js-server-sdk-common-edge'; +// @ts-ignore // eslint-disable-next-line prettier/prettier -import packageJson from '../package.json' assert { type: "json" } +import * as packageJson from '../package.json' assert { type: "json" } const { name, version } = packageJson From b416c412b70d0bb0d1384c6cff8d5165535145c3 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 13:47:56 -0700 Subject: [PATCH 12/19] chore: Corrected example sdk key. Updated example README. --- packages/sdk/cloudflare/example/README.md | 10 ++++++++-- packages/sdk/cloudflare/example/src/index.ts | 2 +- packages/sdk/cloudflare/tsconfig.json | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/sdk/cloudflare/example/README.md b/packages/sdk/cloudflare/example/README.md index 1cf8915388..62e57cb856 100644 --- a/packages/sdk/cloudflare/example/README.md +++ b/packages/sdk/cloudflare/example/README.md @@ -25,10 +25,9 @@ yarn && yarn build kv_namespaces = [{ binding = "LD_KV", id = "YOUR_KV_ID", preview_id = "YOUR_PREVIEW_KV_ID" }] ``` -3. Insert test data to the preview environment: +3. Insert test data to the preview environment. You must use your own clientSideID and prefix it with `LD-Env-`. In the example below, our clientSideID is `test-sdk-key`. Internally, the Cloudflare SDK uses this `LD-Env-` namespace to distinguish LaunchDarkly data from others. ```shell -# The Cloudflare SDK automatically adds the "LD-Env-" prefix to your sdk key npx wrangler kv:key put --binding=LD_KV "LD-Env-test-sdk-key" --path ./src/testData.json --preview ``` @@ -38,6 +37,13 @@ npx wrangler kv:key put --binding=LD_KV "LD-Env-test-sdk-key" --path ./src/testD npx wrangler kv:key get --binding=LD_KV "LD-Env-test-sdk-key" --preview ``` +5. Edit [index.ts](https://github.com/launchdarkly/js-core/blob/main/packages/sdk/cloudflare/example/src/index.ts#L6) to use your clientSideID and a valid flag key from the test data you just inserted. + +```ts + const clientSideID = 'test-sdk-key'; + const flagKey = 'test-boolean-flag'; +``` + 5. Finally: ```shell diff --git a/packages/sdk/cloudflare/example/src/index.ts b/packages/sdk/cloudflare/example/src/index.ts index 8c44228cbb..15ce952657 100644 --- a/packages/sdk/cloudflare/example/src/index.ts +++ b/packages/sdk/cloudflare/example/src/index.ts @@ -3,7 +3,7 @@ import { init as initLD } from '@launchdarkly/cloudflare-server-sdk'; export default { async fetch(request: Request, env: Bindings, ctx: ExecutionContext): Promise { - const clientSideID = 'test-client-side-id'; + const clientSideID = 'test-sdk-key'; const flagKey = 'testFlag1'; const { searchParams } = new URL(request.url); diff --git a/packages/sdk/cloudflare/tsconfig.json b/packages/sdk/cloudflare/tsconfig.json index 290c9853ab..d46b7b5e95 100644 --- a/packages/sdk/cloudflare/tsconfig.json +++ b/packages/sdk/cloudflare/tsconfig.json @@ -4,7 +4,7 @@ "declaration": true, "declarationMap": true, "lib": ["es6"], - "module": "ESNext", + "module": "ES6", "moduleResolution": "node", "noImplicitOverride": true, "outDir": "dist", From 117363c7d13973bff1ce1d9a20ac9cee50a71300 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 13:57:17 -0700 Subject: [PATCH 13/19] chore: Added jsr instructions. --- packages/sdk/cloudflare/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/sdk/cloudflare/README.md b/packages/sdk/cloudflare/README.md index 3d06f21fdd..745a09dbb4 100644 --- a/packages/sdk/cloudflare/README.md +++ b/packages/sdk/cloudflare/README.md @@ -15,7 +15,14 @@ For more information, see the [complete reference guide for this SDK](https://do ## Install ```shell +# npm npm i @launchdarkly/cloudflare-server-sdk + +# yarn +yarn add @launchdarkly/cloudflare-server-sdk + +# jsr +npx jsr add @launchdarkly/cloudflare-server-sdk ``` Then turn on the Node.js compatibility flag in your `wrangler.toml`. This allows the SDK to use `node:events`: @@ -24,6 +31,10 @@ Then turn on the Node.js compatibility flag in your `wrangler.toml`. This allows compatibility_flags = [ "nodejs_compat" ] ``` +## Additional JSR setup + +If you want to install this package as a JSR package, you will need to use [`esbuild` version >= 19.7](https://github.com/evanw/esbuild/releases/tag/v0.19.7) to enable support for `import attributes`. + ## Quickstart Initialize the ldClient with your client side sdk key and the [Cloudflare KV namespace](https://developers.cloudflare.com/workers/runtime-apis/kv#kv-bindings): From a7d7dae7ca827d31dfe3ccfab184ba149bf0f3bb Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:00:10 -0700 Subject: [PATCH 14/19] chore: Reverted example cf sdk version. --- packages/sdk/cloudflare/example/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/cloudflare/example/package.json b/packages/sdk/cloudflare/example/package.json index e15186dadd..6aee0708e3 100644 --- a/packages/sdk/cloudflare/example/package.json +++ b/packages/sdk/cloudflare/example/package.json @@ -5,7 +5,7 @@ "module": "./dist/index.mjs", "packageManager": "yarn@3.4.1", "dependencies": { - "@launchdarkly/cloudflare-server-sdk": "npm:@jsr/launchdarkly__cloudflare-server-sdk@^0.0.2" + "@launchdarkly/cloudflare-server-sdk": "2.2.3" }, "devDependencies": { "@cloudflare/workers-types": "^4.20230321.0", From 4fdab2a43fae625fab4f2f66ad56934a78b15b43 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:19:34 -0700 Subject: [PATCH 15/19] chore: Minor readme and version updates after testing. --- packages/sdk/cloudflare/example/README.md | 4 ++-- packages/sdk/cloudflare/jsr.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/sdk/cloudflare/example/README.md b/packages/sdk/cloudflare/example/README.md index 62e57cb856..883d173b30 100644 --- a/packages/sdk/cloudflare/example/README.md +++ b/packages/sdk/cloudflare/example/README.md @@ -25,7 +25,7 @@ yarn && yarn build kv_namespaces = [{ binding = "LD_KV", id = "YOUR_KV_ID", preview_id = "YOUR_PREVIEW_KV_ID" }] ``` -3. Insert test data to the preview environment. You must use your own clientSideID and prefix it with `LD-Env-`. In the example below, our clientSideID is `test-sdk-key`. Internally, the Cloudflare SDK uses this `LD-Env-` namespace to distinguish LaunchDarkly data from others. +3. Insert test data to the preview environment. You must use your own clientSideID and prefix it with `LD-Env-`. In the example below, the clientSideID is `test-sdk-key`. Internally, the Cloudflare SDK uses this `LD-Env-` namespace to distinguish LaunchDarkly data from others. ```shell npx wrangler kv:key put --binding=LD_KV "LD-Env-test-sdk-key" --path ./src/testData.json --preview @@ -44,7 +44,7 @@ npx wrangler kv:key get --binding=LD_KV "LD-Env-test-sdk-key" --preview const flagKey = 'test-boolean-flag'; ``` -5. Finally: +6. Finally: ```shell yarn start diff --git a/packages/sdk/cloudflare/jsr.json b/packages/sdk/cloudflare/jsr.json index 3e94eb7613..2770ea1534 100644 --- a/packages/sdk/cloudflare/jsr.json +++ b/packages/sdk/cloudflare/jsr.json @@ -1,6 +1,6 @@ { "name": "@launchdarkly/cloudflare-server-sdk", - "version": "0.0.2", + "version": "0.0.3", "exports": "./src/index.ts", "publish": { "include": ["LICENSE", "README.md", "package.json", "jsr.json", "src/**/*.ts"], From 55feca34c813529cef6830ba759e81f6143cafb2 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:21:52 -0700 Subject: [PATCH 16/19] Delete .npmrc --- packages/sdk/cloudflare/example/.npmrc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 packages/sdk/cloudflare/example/.npmrc diff --git a/packages/sdk/cloudflare/example/.npmrc b/packages/sdk/cloudflare/example/.npmrc deleted file mode 100644 index 41583e36ca..0000000000 --- a/packages/sdk/cloudflare/example/.npmrc +++ /dev/null @@ -1 +0,0 @@ -@jsr:registry=https://npm.jsr.io From 9c9ca3c759e9854b23daea4d49e0aba04e405272 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:29:43 -0700 Subject: [PATCH 17/19] chore: Remove trailingCommas setting because its redundant. --- .prettierrc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.prettierrc b/.prettierrc index c4564e090e..932bffe392 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,6 +5,5 @@ "importOrder": ["^@launchdarkly/(.*)$", "^[./]"], "importOrderCaseInsensitive": true, "importOrderSeparation": true, - "importOrderSortSpecifiers": true, - "trailingComma": "all" + "importOrderSortSpecifiers": true } From 4b29910b7f64c705b248c647ddbfc0c9d00be190 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:34:02 -0700 Subject: [PATCH 18/19] Update package.json --- packages/sdk/cloudflare/example/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/cloudflare/example/package.json b/packages/sdk/cloudflare/example/package.json index 6aee0708e3..d7efaa6d5e 100644 --- a/packages/sdk/cloudflare/example/package.json +++ b/packages/sdk/cloudflare/example/package.json @@ -10,7 +10,7 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20230321.0", "@types/jest": "^29.5.5", - "esbuild": "0.20.2", + "esbuild": "^0.20.2", "jest": "^29.7.0", "jest-environment-miniflare": "^2.5.0", "miniflare": "^2.5.0", From f2cbc4fe2eb2ce067592a95bcd72b5b6c90051c4 Mon Sep 17 00:00:00 2001 From: Yusinto Ngadiman Date: Mon, 1 Apr 2024 14:50:32 -0700 Subject: [PATCH 19/19] chore: Replace all instances of sdkKey with clientSideID. --- packages/sdk/cloudflare/README.md | 4 ++-- packages/sdk/cloudflare/example/README.md | 8 ++++---- packages/sdk/cloudflare/example/package.json | 2 +- packages/sdk/cloudflare/example/src/index.test.ts | 2 +- packages/sdk/cloudflare/example/src/index.ts | 2 +- packages/sdk/cloudflare/src/index.test.ts | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/sdk/cloudflare/README.md b/packages/sdk/cloudflare/README.md index 745a09dbb4..56171ce9f4 100644 --- a/packages/sdk/cloudflare/README.md +++ b/packages/sdk/cloudflare/README.md @@ -44,12 +44,12 @@ import { init as initLD } from '@launchdarkly/cloudflare-server-sdk'; export default { async fetch(request: Request, env: Bindings): Promise { - const sdkKey = 'test-sdk-key'; + const clientSideID = 'test-client-side-id'; const flagKey = 'testFlag1'; const context = { kind: 'user', key: 'test-user-key-1' }; // init the ldClient, wait and finally evaluate - const client = initLD(sdkKey, env.LD_KV); + const client = initLD(clientSideID, env.LD_KV); await client.waitForInitialization(); const flagValue = await client.variation(flagKey, context, false); diff --git a/packages/sdk/cloudflare/example/README.md b/packages/sdk/cloudflare/example/README.md index 883d173b30..4a96552020 100644 --- a/packages/sdk/cloudflare/example/README.md +++ b/packages/sdk/cloudflare/example/README.md @@ -25,22 +25,22 @@ yarn && yarn build kv_namespaces = [{ binding = "LD_KV", id = "YOUR_KV_ID", preview_id = "YOUR_PREVIEW_KV_ID" }] ``` -3. Insert test data to the preview environment. You must use your own clientSideID and prefix it with `LD-Env-`. In the example below, the clientSideID is `test-sdk-key`. Internally, the Cloudflare SDK uses this `LD-Env-` namespace to distinguish LaunchDarkly data from others. +3. Insert test data to the preview environment. You must use your own clientSideID and prefix it with `LD-Env-`. In the example below, the clientSideID is `test-client-side-id`. Internally, the Cloudflare SDK uses this `LD-Env-` namespace to distinguish LaunchDarkly data from others. ```shell -npx wrangler kv:key put --binding=LD_KV "LD-Env-test-sdk-key" --path ./src/testData.json --preview +npx wrangler kv:key put --binding=LD_KV "LD-Env-test-client-side-id" --path ./src/testData.json --preview ``` 4. View that test data to ensure it's present: ```shell -npx wrangler kv:key get --binding=LD_KV "LD-Env-test-sdk-key" --preview +npx wrangler kv:key get --binding=LD_KV "LD-Env-test-client-side-id" --preview ``` 5. Edit [index.ts](https://github.com/launchdarkly/js-core/blob/main/packages/sdk/cloudflare/example/src/index.ts#L6) to use your clientSideID and a valid flag key from the test data you just inserted. ```ts - const clientSideID = 'test-sdk-key'; + const clientSideID = 'test-client-side-id'; const flagKey = 'test-boolean-flag'; ``` diff --git a/packages/sdk/cloudflare/example/package.json b/packages/sdk/cloudflare/example/package.json index d7efaa6d5e..94f5ea7bb4 100644 --- a/packages/sdk/cloudflare/example/package.json +++ b/packages/sdk/cloudflare/example/package.json @@ -14,7 +14,7 @@ "jest": "^29.7.0", "jest-environment-miniflare": "^2.5.0", "miniflare": "^2.5.0", - "prettier": "^2.6.2", + "prettier": "^3.2.5", "ts-jest": "^28.0.3", "typescript": "5.1.6", "wrangler": "2.20.2" diff --git a/packages/sdk/cloudflare/example/src/index.test.ts b/packages/sdk/cloudflare/example/src/index.test.ts index 4ae6b27c8d..d8bf5e0c31 100644 --- a/packages/sdk/cloudflare/example/src/index.test.ts +++ b/packages/sdk/cloudflare/example/src/index.test.ts @@ -16,7 +16,7 @@ describe('test', () => { }; env = getMiniflareBindings(); const { LD_KV } = env; - await LD_KV.put('LD-Env-test-sdk-key', JSON.stringify(testData)); + await LD_KV.put('LD-Env-test-client-side-id', JSON.stringify(testData)); }); afterEach(() => { diff --git a/packages/sdk/cloudflare/example/src/index.ts b/packages/sdk/cloudflare/example/src/index.ts index 15ce952657..8c44228cbb 100644 --- a/packages/sdk/cloudflare/example/src/index.ts +++ b/packages/sdk/cloudflare/example/src/index.ts @@ -3,7 +3,7 @@ import { init as initLD } from '@launchdarkly/cloudflare-server-sdk'; export default { async fetch(request: Request, env: Bindings, ctx: ExecutionContext): Promise { - const clientSideID = 'test-sdk-key'; + const clientSideID = 'test-client-side-id'; const flagKey = 'testFlag1'; const { searchParams } = new URL(request.url); diff --git a/packages/sdk/cloudflare/src/index.test.ts b/packages/sdk/cloudflare/src/index.test.ts index 978d525d63..747bc75e17 100644 --- a/packages/sdk/cloudflare/src/index.test.ts +++ b/packages/sdk/cloudflare/src/index.test.ts @@ -12,13 +12,13 @@ const mf = new Miniflare({ kvNamespaces: ['TEST_NAMESPACE'], }); -const sdkKey = 'test-sdk-key'; +const clientSideID = 'test-client-side-id'; const flagKey1 = 'testFlag1'; const flagKey2 = 'testFlag2'; const flagKey3 = 'testFlag3'; const context: LDContext = { kind: 'user', key: 'test-user-key-1' }; const namespace = 'LD_KV'; -const rootEnvKey = `LD-Env-${sdkKey}`; +const rootEnvKey = `LD-Env-${clientSideID}`; describe('init', () => { let kv: KVNamespace; @@ -27,7 +27,7 @@ describe('init', () => { beforeAll(async () => { kv = (await mf.getKVNamespace(namespace)) as unknown as KVNamespace; await kv.put(rootEnvKey, JSON.stringify(allFlagsSegments)); - ldClient = init(sdkKey, kv); + ldClient = init(clientSideID, kv); await ldClient.waitForInitialization(); });