Skip to content

docs(sdk): add community TypeScript SDK page - #493

Open
mishkatik wants to merge 1 commit into
remnawave:mainfrom
mishkatik:add-community-typescript-sdk
Open

docs(sdk): add community TypeScript SDK page#493
mishkatik wants to merge 1 commit into
remnawave:mainfrom
mishkatik:add-community-typescript-sdk

Conversation

@mishkatik

Copy link
Copy Markdown
Contributor

Adds a documentation page for the community-maintained TypeScript SDK (@mishkat/remnawave-sdk) under the SDKs section, following the existing community SDK page format.

@greptile-apps

greptile-apps Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds a Docusaurus documentation page for the community-maintained @mishkat/remnawave-sdk TypeScript SDK under the existing SDKs section, following the same structure as the Go community SDK page.

  • Introduces a new docs/sdk/typescript-sdk-community.md file at sidebar_position: 5, covering installation, quick-start config, usage examples for Users/Nodes/error handling, a controller reference table, and project links.
  • The page correctly places MDX imports before component usage and reuses the FaPeopleGroup community admonition pattern from go-sdk.md.

Confidence Score: 4/5

Documentation-only change adding a new page; no runtime code is affected and the page integrates cleanly with the existing SDK section.

The change is a single new Markdown file. The three findings are all presentational — a missing heading marker and missing trailing commas in two illustrative code snippets — none of which affect the site's build or runtime behaviour.

docs/sdk/typescript-sdk-community.md — the three style suggestions above are the only items worth a second look.

Important Files Changed

Filename Overview
docs/sdk/typescript-sdk-community.md New community TypeScript SDK docs page following the existing Go SDK community page format; minor style issues with a plain-text "Key Features" heading and missing trailing commas in two code examples.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User installs @mishkat/remnawave-sdk] --> B[Instantiate RemnawaveSDK]
    B --> C{Make API call via controller}
    C --> D[client.users.*]
    C --> E[client.nodes.*]
    C --> F[client.hosts / system / etc.]
    D & E & F --> G{HTTP response}
    G -->|2xx + valid schema| H[Return typed result]
    G -->|non-2xx / network error| I[Throw RemnawaveApiError]
    G -->|2xx + schema mismatch| J[Throw RemnawaveValidationError]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[User installs @mishkat/remnawave-sdk] --> B[Instantiate RemnawaveSDK]
    B --> C{Make API call via controller}
    C --> D[client.users.*]
    C --> E[client.nodes.*]
    C --> F[client.hosts / system / etc.]
    D & E & F --> G{HTTP response}
    G -->|2xx + valid schema| H[Return typed result]
    G -->|non-2xx / network error| I[Throw RemnawaveApiError]
    G -->|2xx + schema mismatch| J[Throw RemnawaveValidationError]
Loading

Reviews (1): Last reviewed commit: "docs(sdk): add community TypeScript SDK ..." | Re-trigger Greptile

Comment on lines +17 to +19
✨ Key Features

- **Built-in HTTP client**: Ready to use out of the box, no need to implement your own transport.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 The ✨ Key Features line is plain text rather than a Markdown heading, so Docusaurus will not include it in the auto-generated table of contents and it won't carry an anchor. All other top-level sections in this file (Installation, Quick Start, Usage, etc.) use ## headings consistently.

Suggested change
✨ Key Features
- **Built-in HTTP client**: Ready to use out of the box, no need to implement your own transport.
## ✨ Key Features
- **Built-in HTTP client**: Ready to use out of the box, no need to implement your own transport.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment on lines +77 to +81
const user = await client.users.create({
username: 'newuser',
email: 'user@example.com'
// ... other fields
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 The last shown property (email) is missing a trailing comma before the // ... other fields comment. Readers who follow the hint and add a field directly below the comment will produce a syntax error because the preceding line has no comma. Adding the trailing comma now makes the example copy-paste safe.

Suggested change
const user = await client.users.create({
username: 'newuser',
email: 'user@example.com'
// ... other fields
})
const user = await client.users.create({
username: 'newuser',
email: 'user@example.com',
// ... other fields
})

Comment on lines +109 to +114
const node = await client.nodes.create({
name: 'Node 1',
host: 'node.example.com',
port: 443
// ... other fields
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Same trailing-comma issue in the Nodes example — port: 443 is missing a comma before the // ... other fields comment, so copy-pasting and extending the object will fail immediately.

Suggested change
const node = await client.nodes.create({
name: 'Node 1',
host: 'node.example.com',
port: 443
// ... other fields
})
const node = await client.nodes.create({
name: 'Node 1',
host: 'node.example.com',
port: 443,
// ... other fields
})

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.

1 participant