Skip to content

Commit 0578190

Browse files
authored
feat: create sdk-server-edge package (#83)
* feat: improved the cloudflare LDClient type. Fixed typedoc completely. Removed redundant createLDClient function. * fix: broken waitForInitialization link * chore: moved shared code to shared/sdk-server-edge-function * chore: add platformInfo to typedoc * chore: move common code to shared-server-edge. refactored cloudflare package to use that. * test: support track, initialized and close. add unit tests for unsupported functions. * chore: enable sendEvents and fix hanging unit tests. * fix: change build target commonjs * chore: cleanup readme and changelog. Changed EdgeFunction* to just Edge* * chore: add ci * feat: include all ldClient functions. Set sendEvents to false. * fix: remove unused import * fix: support logger as an option. validate options before constructor. added comments to BasicLogger.get. * chore: improve docs. start validation of public options. * test: added validateOptions function and unit tests. * fix: improved typedoc --------- Co-authored-by: Yusinto Ngadiman <[email protected]>
1 parent f741901 commit 0578190

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+425
-214
lines changed

.github/workflows/sdk-server-edge.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: shared/sdk-server
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths-ignore:
7+
- '**.md' #Do not need to run CI for markdown changes.
8+
pull_request:
9+
branches: [main]
10+
paths-ignore:
11+
- '**.md'
12+
13+
jobs:
14+
build-test-sdk-server:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: actions/setup-node@v3
19+
with:
20+
node-version: 16
21+
registry-url: 'https://registry.npmjs.org'
22+
- id: shared
23+
name: Shared CI Steps
24+
uses: ./actions/ci
25+
with:
26+
workspace_name: '@launchdarkly/js-server-sdk-common-edge'
27+
workspace_path: packages/shared/sdk-server-edge

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"workspaces": [
44
"packages/shared/common",
55
"packages/shared/sdk-server",
6+
"packages/shared/sdk-server-edge",
67
"packages/sdk/server-node",
78
"packages/sdk/cloudflare"
89
],

packages/sdk/cloudflare/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@launchdarkly/cloudflare-server-sdk",
33
"version": "0.0.1",
4-
"description": "LaunchDarkly Server-Side SDK for Cloudflare workers",
4+
"description": "Cloudflare LaunchDarkly SDK",
55
"packageManager": "[email protected]",
66
"keywords": [
77
"launchdarkly",
@@ -11,22 +11,22 @@
1111
],
1212
"main": "./dist/src/index.js",
1313
"types": "./dist/src/index.d.ts",
14-
"type": "module",
1514
"files": [
1615
"/dist"
1716
],
1817
"scripts": {
18+
"doc": "../../../scripts/build-doc.sh .",
1919
"build": "rimraf dist && yarn tsc",
2020
"tsw": "yarn tsc --watch",
2121
"start": "rimraf dist && yarn tsw",
2222
"lint": "eslint . --ext .ts",
2323
"prettier": "prettier --write '**/*.@(js|ts|tsx|json|css)' --ignore-path ../../../.prettierignore",
2424
"test": "NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" jest --ci --runInBand --coverage",
25-
"check": "yarn prettier && yarn lint && yarn tsc && yarn test"
25+
"check": "yarn prettier && yarn lint && yarn build && yarn test && yarn doc"
2626
},
2727
"dependencies": {
2828
"@cloudflare/workers-types": "^4.20230321.0",
29-
"@launchdarkly/js-server-sdk-common": "0.2.0",
29+
"@launchdarkly/js-server-sdk-common-edge": "0.0.1",
3030
"crypto-js": "^4.1.1"
3131
},
3232
"devDependencies": {

packages/sdk/cloudflare/src/createLDClient/createFeatureStore.test.ts renamed to packages/sdk/cloudflare/src/createFeatureStore.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { AsyncStoreFacade, LDFeatureStore } from '@launchdarkly/js-server-sdk-common';
1+
import { AsyncStoreFacade, LDFeatureStore } from '@launchdarkly/js-server-sdk-common-edge';
22
import createFeatureStore from './createFeatureStore';
33

4-
import mockKV from '../utils/mockKV';
5-
import * as testData from '../utils/testData.json';
4+
import mockKV from './utils/mockKV';
5+
import * as testData from './utils/testData.json';
66

77
describe('createFeatureStore', () => {
88
const sdkKey = 'sdkKey';

packages/sdk/cloudflare/src/createLDClient/createFeatureStore.ts renamed to packages/sdk/cloudflare/src/createFeatureStore.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type { KVNamespace } from '@cloudflare/workers-types';
2-
import type {
2+
import {
33
DataKind,
44
LDLogger,
55
LDFeatureStore,
66
LDFeatureStoreDataStorage,
77
LDFeatureStoreItem,
88
LDFeatureStoreKindData,
9-
} from '@launchdarkly/js-server-sdk-common';
10-
import noop from '../utils/noop';
9+
noop,
10+
} from '@launchdarkly/js-server-sdk-common-edge';
1111

1212
const createFeatureStore = (kvNamespace: KVNamespace, sdkKey: string, logger: LDLogger) => {
1313
const key = `LD-Env-${sdkKey}`;

packages/sdk/cloudflare/src/createLDClient/CloudflareImpl.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.

packages/sdk/cloudflare/src/createLDClient/createOptions.test.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

packages/sdk/cloudflare/src/createLDClient/createOptions.ts

Lines changed: 0 additions & 67 deletions
This file was deleted.

packages/sdk/cloudflare/src/createLDClient/index.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

packages/sdk/cloudflare/src/platform/info.ts renamed to packages/sdk/cloudflare/src/createPlatformInfo.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import type { Info, PlatformData, SdkData } from '@launchdarkly/js-server-sdk-common';
1+
import type { Info, PlatformData, SdkData } from '@launchdarkly/js-server-sdk-common-edge';
22

3-
import { name, version } from '../../package.json';
3+
import { name, version } from '../package.json';
44

5-
export default class CloudflareInfo implements Info {
5+
class CloudflarePlatformInfo implements Info {
66
platformData(): PlatformData {
77
return {
88
name: 'Cloudflare worker',
@@ -16,3 +16,7 @@ export default class CloudflareInfo implements Info {
1616
};
1717
}
1818
}
19+
20+
const createPlatformInfo = () => new CloudflarePlatformInfo();
21+
22+
export default createPlatformInfo;

0 commit comments

Comments
 (0)