Skip to content

Commit f1729bb

Browse files
authored
chore: scaffolding node-client-sdk migration (#1352)
**Requirements** - [ ] I have added test coverage for new or changed functionality - [ ] I have followed the repository's [pull request submission guidelines](../blob/main/CONTRIBUTING.md#submitting-pull-requests) - [ ] I have validated my changes against all supported platform versions **Related issues** Provide links to any issues in this repository or elsewhere relating to this pull request. **Describe the solution you've provided** Provide a clear and concise description of what you expect to happen. **Describe alternatives you've considered** Provide a clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context about the pull request here. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Adds a new workspace and release metadata with no runtime SDK behavior or changes to existing packages beyond repo configuration. > > **Overview** > Introduces **`@launchdarkly/node-client-sdk`** at `packages/sdk/node-client` as the first step of a Node **client-side** SDK migration. The package is wired into the monorepo (root **workspaces**, root **`tsconfig` project reference**, **`.release-please-manifest`** at `0.0.1`, and **`release-please-config`** with `bump-minor-pre-major` and version bumps in `src/index.ts`). > > The new package ships **build/lint/docs scaffolding** (`tsup` ESM+CJS, TypeScript configs, Typedoc, ESLint override for future contract tests) plus **LICENSE**, **CHANGELOG**, and a **README** that marks the SDK as **experimental / not production-ready**. The public entry point is a **placeholder**: `src/index.ts` only exports a **`version`** constant; comments note that **`createClient`**, logging, and types land in a follow-up (SDK-2312). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 0a15d58. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 58e063b commit f1729bb

15 files changed

Lines changed: 197 additions & 0 deletions

.release-please-manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"packages/sdk/cloudflare": "2.7.24",
99
"packages/sdk/combined-browser": "0.1.22",
1010
"packages/sdk/fastly": "0.2.14",
11+
"packages/sdk/node-client": "0.0.1",
1112
"packages/sdk/react-native": "10.17.6",
1213
"packages/sdk/server-ai": "1.0.1",
1314
"packages/sdk/server-node": "9.11.0",

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"packages/sdk/electron",
1818
"packages/sdk/electron/example",
1919
"packages/sdk/electron/contract-tests/entity",
20+
"packages/sdk/node-client",
2021
"packages/sdk/fastly",
2122
"packages/sdk/fastly/example",
2223
"packages/sdk/react",
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
overrides: [
3+
{
4+
files: ['contract-tests/**/*.ts'],
5+
parserOptions: {
6+
tsconfigRootDir: __dirname,
7+
project: './contract-tests/tsconfig.json',
8+
},
9+
},
10+
],
11+
};
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Changelog
2+
3+
All notable changes to `@launchdarkly/node-client-sdk` will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org).

packages/sdk/node-client/LICENSE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright 2026 Catamorphic, Co.
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.

packages/sdk/node-client/README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# LaunchDarkly Node.js Client-Side SDK
2+
3+
<!--
4+
[![NPM][npm-badge]][npm-link]
5+
[![Actions Status][ci-badge]][ci-link]
6+
[![Documentation][ghp-badge]][ghp-link]
7+
[![NPM][npm-dm-badge]][npm-link]
8+
[![NPM][npm-dt-badge]][npm-link]
9+
-->
10+
11+
> [!CAUTION]
12+
> This SDK is experimental and should NOT be considered ready for production use.
13+
> It may change or be removed without notice and is not subject to backwards
14+
> compatibility guarantees.
15+
16+
<!--
17+
> Pin to a specific minor version and review the [changelog](link-to-changelog) before upgrading.
18+
-->
19+
20+
## Getting started
21+
22+
Refer to the [SDK documentation](https://launchdarkly.com/docs/sdk/client-side/node-js#getting-started) for instructions on getting started with using the SDK.
23+
24+
## About LaunchDarkly
25+
26+
- LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
27+
- Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
28+
- Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
29+
- Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
30+
- Grant access to certain features based on user attributes, like payment plan (eg: users on the 'gold' plan get access to more features than users in the 'silver' plan).
31+
- Disable parts of your application to facilitate maintenance, without taking everything offline.
32+
- LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Read [our documentation](https://docs.launchdarkly.com/sdk) for a complete list.
33+
- Explore LaunchDarkly
34+
- [launchdarkly.com](https://www.launchdarkly.com/ 'LaunchDarkly Main Website') for more information
35+
- [docs.launchdarkly.com](https://docs.launchdarkly.com/ 'LaunchDarkly Documentation') for our documentation and SDK reference guides
36+
- [apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/ 'LaunchDarkly API Documentation') for our API documentation
37+
- [blog.launchdarkly.com](https://blog.launchdarkly.com/ 'LaunchDarkly Blog Documentation') for the latest product updates
38+
39+
40+
<!--
41+
[npm-badge]: https://img.shields.io/npm/v/@launchdarkly/node-client-sdk.svg?style=flat-square
42+
[npm-link]: https://www.npmjs.com/package/@launchdarkly/node-client-sdk
43+
[npm-dm-badge]: https://img.shields.io/npm/dm/@launchdarkly/node-client-sdk.svg?style=flat-square
44+
[npm-dt-badge]: https://img.shields.io/npm/dt/@launchdarkly/node-client-sdk.svg?style=flat-square
45+
[ci-badge]: https://github.com/launchdarkly/js-core/actions/workflows/node-client.yml/badge.svg
46+
[ci-link]: https://github.com/launchdarkly/js-core/actions/workflows/node-client.yml
47+
[ghp-badge]: https://img.shields.io/static/v1?label=GitHub+Pages&message=API+reference&color=00add8
48+
[ghp-link]: https://launchdarkly.github.io/js-core/packages/sdk/node-client/docs/
49+
-->
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"name": "@launchdarkly/node-client-sdk",
3+
"version": "0.0.1",
4+
"description": "LaunchDarkly Client-Side SDK for Node.js",
5+
"homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/sdk/node-client",
6+
"repository": {
7+
"type": "git",
8+
"url": "https://github.com/launchdarkly/js-core.git"
9+
},
10+
"license": "Apache-2.0",
11+
"packageManager": "yarn@3.4.1",
12+
"keywords": [
13+
"launchdarkly",
14+
"node",
15+
"client",
16+
"feature flags",
17+
"feature toggles",
18+
"feature management"
19+
],
20+
"engines": {
21+
"node": ">=18"
22+
},
23+
"type": "module",
24+
"main": "./dist/index.cjs",
25+
"types": "./dist/index.d.ts",
26+
"exports": {
27+
".": {
28+
"types": "./dist/index.d.ts",
29+
"import": "./dist/index.js",
30+
"require": "./dist/index.cjs",
31+
"default": "./dist/index.js"
32+
}
33+
},
34+
"files": [
35+
"dist"
36+
],
37+
"scripts": {
38+
"build": "tsup",
39+
"lint": "eslint . --ext .ts",
40+
"lint:fix": "yarn lint --fix"
41+
},
42+
"devDependencies": {
43+
"@typescript-eslint/eslint-plugin": "^6.20.0",
44+
"@typescript-eslint/parser": "^6.20.0",
45+
"eslint": "^8.45.0",
46+
"eslint-plugin-import": "^2.27.5",
47+
"eslint-plugin-jest": "^27.6.3",
48+
"tsup": "^8.5.1",
49+
"typedoc": "0.25.0",
50+
"typescript": "5.1.6"
51+
}
52+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Placeholder entry point for @launchdarkly/node-client-sdk. The functional
2+
// implementation (createClient, basicLogger, type re-exports) is added in
3+
// the source-port slice (SDK-2312); this file exists so the package builds
4+
// and the version stamp is in place.
5+
6+
export const version = '0.0.1'; // x-release-please-version
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"extends": "./tsconfig.json",
3+
"include": ["**/*.ts"],
4+
"exclude": ["node_modules"]
5+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"compilerOptions": {
3+
"rootDir": ".",
4+
"outDir": "dist",
5+
"target": "es2020",
6+
"lib": ["es2020"],
7+
"module": "commonjs",
8+
"strict": true,
9+
"noImplicitOverride": true,
10+
"allowSyntheticDefaultImports": true,
11+
"sourceMap": true,
12+
"declaration": true,
13+
"declarationMap": true,
14+
"resolveJsonModule": true,
15+
"stripInternal": true,
16+
"moduleResolution": "node"
17+
},
18+
"exclude": ["**/*.test.ts", "dist", "node_modules", "__tests__", "examples", "contract-tests"]
19+
}

0 commit comments

Comments
 (0)