Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
6647133
feat(node): add framework
ISAAC-XXYYZZ Dec 31, 2024
1de5a3c
feat(nodejs): add nodejs support
ISAAC-XXYYZZ Jan 3, 2025
d27d6b7
feat(nodejs): add entry and auto test
ISAAC-XXYYZZ Jan 4, 2025
b07c4e0
feat(nodejs): update model
ISAAC-XXYYZZ Jan 6, 2025
14ee01a
feat(nodejs): async websocket api
ISAAC-XXYYZZ Jan 7, 2025
ffb6ec2
feat(nodejs): update makefile
ISAAC-XXYYZZ Jan 7, 2025
da8d0c9
feat(nodejs): add generated source
ISAAC-XXYYZZ Jan 8, 2025
b4af07a
feat(nodejs): update api signature
ISAAC-XXYYZZ Jan 8, 2025
a5b91ec
feat(nodejs): update generator
ISAAC-XXYYZZ Jan 8, 2025
6669a5a
feat(nodejs): update style
ISAAC-XXYYZZ Jan 9, 2025
cb7aa2c
feat(nodejs): update model style
ISAAC-XXYYZZ Jan 9, 2025
ec2d056
feat(nodejs): update ws style
ISAAC-XXYYZZ Jan 9, 2025
2e8da13
feat(nodejs): update interface
ISAAC-XXYYZZ Jan 9, 2025
8a66494
feat(nodejs): update model
ISAAC-XXYYZZ Jan 9, 2025
9ed296d
feat(nodejs): add api template
ISAAC-XXYYZZ Jan 10, 2025
8778376
feat(nodejs): export types
ISAAC-XXYYZZ Jan 13, 2025
19dc0f0
feat(nodejs): generate index.ts
ISAAC-XXYYZZ Jan 13, 2025
a009f1d
feat(nodejs): generate index.ts with all models
ISAAC-XXYYZZ Jan 13, 2025
bed8aaa
feat(nodejs): generate index.ts for entry
ISAAC-XXYYZZ Jan 14, 2025
96c52ba
feat(nodejs): rename generated method
ISAAC-XXYYZZ Jan 14, 2025
d0dfb17
feat(nodejs): add ws index.ts
ISAAC-XXYYZZ Jan 14, 2025
a4ed675
feat(nodejs): add restful api implementation
DylanJiang11 Jan 14, 2025
6170977
feat(nodejs): update ws files
ISAAC-XXYYZZ Jan 15, 2025
7384986
feat(nodejs): add missing axios lib
ISAAC-XXYYZZ Jan 15, 2025
8acd5c3
feat(nodejs): Optimize code,Add exception handling
DylanJiang11 Jan 15, 2025
64ea8b0
feat(nodejs): Add retry logic
DylanJiang11 Jan 15, 2025
3e00861
feat(nodejs): Add Connection pooling with Axios and agentkeepalive
DylanJiang11 Jan 15, 2025
28cf4d7
feat(nodejs): First Add Websocket transport api implementation
DylanJiang11 Jan 15, 2025
d8a5cd0
feat(nodejs): Fix writeMessage error
DylanJiang11 Jan 15, 2025
0f26185
fix(nodejs): deal with requests is null
DylanJiang11 Jan 15, 2025
ff9558c
feat(nodejs): modify doWithRetry
DylanJiang11 Jan 15, 2025
36826ff
feat(nodejs): update transport implements
ISAAC-XXYYZZ Jan 17, 2025
a59859e
feat(nodejs): add more example
ISAAC-XXYYZZ Jan 17, 2025
aa1801d
Merge branch 'dev' into js
ISAAC-XXYYZZ Jan 17, 2025
d15b442
feat(nodejs): update websocket implements
DylanJiang11 Jan 17, 2025
7e657a2
style: Code formatting
DylanJiang11 Jan 17, 2025
ab45c6a
feat(nodejs): update api
ISAAC-XXYYZZ Jan 17, 2025
4d373c8
feat(nodejs): add todo list
ISAAC-XXYYZZ Jan 17, 2025
d4f01f3
feat(nodejs): fix npm build
DylanJiang11 Jan 17, 2025
b6fbd14
feat(nodejs): add some tests
ISAAC-XXYYZZ Jan 17, 2025
df8ecca
feat(nodejs): add ws tests
ISAAC-XXYYZZ Jan 17, 2025
39f2412
fix: modify some todolist
DylanJiang11 Jan 17, 2025
64d873f
fix(nodejs):fix remove query items
DylanJiang11 Jan 19, 2025
f505c3f
feat(nodejs): add test & copy trading
ISAAC-XXYYZZ Jan 20, 2025
368cced
feat(nodejs):modify notifyEvent,using eventEmitter to notify
DylanJiang11 Jan 20, 2025
905188f
feat(nodejs):modify notifyEvent,using eventEmitter to notify
DylanJiang11 Jan 20, 2025
cb2512a
fix(nodejs):modify timeout reconnect logic
DylanJiang11 Jan 20, 2025
212d156
feat(nodejs):update restful transport impl
DylanJiang11 Jan 20, 2025
4bb53f4
feat(nodejs): update var as requried
ISAAC-XXYYZZ Jan 20, 2025
80fb3dc
feat(nodejs): fix ws type
ISAAC-XXYYZZ Jan 20, 2025
0106a03
fix(nodejs):fix build error
DylanJiang11 Jan 20, 2025
5345e8b
feat(nodejs): update ws model
ISAAC-XXYYZZ Jan 20, 2025
cf1dfba
feat(nodejs):modify rest impl
DylanJiang11 Jan 20, 2025
4b235b6
feat(nodejs): update tests
ISAAC-XXYYZZ Jan 21, 2025
1aa4e8b
feat(nodejs):websocket use mutilthread
DylanJiang11 Jan 21, 2025
f774fc6
feat(nodejs): add example project
ISAAC-XXYYZZ Jan 21, 2025
c3ad008
feat(nodejs): remove queue-typescript,use stream to store websocket m…
DylanJiang11 Jan 21, 2025
c654ca4
feat(nodejs): update docs
ISAAC-XXYYZZ Jan 21, 2025
701d9af
feat(nodejs): add restful test & fix interceptor
ISAAC-XXYYZZ Jan 22, 2025
3616311
feat(nodejs): wrap error
ISAAC-XXYYZZ Jan 22, 2025
9e386d3
feat(nodejs): update tests
ISAAC-XXYYZZ Jan 23, 2025
2db3b0c
feat(nodejs): update websocket examples
DylanJiang11 Feb 10, 2025
78c6b37
test(nodejs): add more tests
ISAAC-XXYYZZ Feb 10, 2025
e1ef3bd
test(nodejs): add public tests
DylanJiang11 Feb 10, 2025
652b167
test(nodejs): add futures public websocket tests
DylanJiang11 Feb 10, 2025
8e4ed6e
test(nodejs): add more tests
ISAAC-XXYYZZ Feb 11, 2025
2139d90
test(nodejs): add margin public websocket tests
DylanJiang11 Feb 11, 2025
f857c6c
test(nodejs): update margin test
ISAAC-XXYYZZ Feb 11, 2025
5916a0c
test(nodejs): update futures test
ISAAC-XXYYZZ Feb 11, 2025
315b9ab
test(nodejs): add more tests
ISAAC-XXYYZZ Feb 11, 2025
4810186
test(nodejs): add spot tests
ISAAC-XXYYZZ Feb 12, 2025
2b965af
test(nodejs): add more test for robustness
ISAAC-XXYYZZ Feb 12, 2025
88bb45b
feat(nodejs): update websocket impl,use work thread manage connection
DylanJiang11 Feb 12, 2025
307d0fb
feat(nodejs): add readme
ISAAC-XXYYZZ Feb 12, 2025
99490cd
test(nodejs): fix worker path
ISAAC-XXYYZZ Feb 13, 2025
17b772d
fix(nodejs): remove some debug log
DylanJiang11 Feb 13, 2025
e89687f
test(nodejs): add private channel test
ISAAC-XXYYZZ Feb 13, 2025
0dff42f
Merge branch 'js' of https://github.com/Kucoin/kucoin-universal-sdk i…
DylanJiang11 Feb 13, 2025
c831afc
test(nodejs): add private channel test
ISAAC-XXYYZZ Feb 13, 2025
bf6ab24
feat(nodejs): add log framework
ISAAC-XXYYZZ Feb 14, 2025
c72b7b6
feat(nodejs): fix logger package
ISAAC-XXYYZZ Feb 14, 2025
e7ca1ec
feat(nodejs): export interface
ISAAC-XXYYZZ Feb 14, 2025
fa15833
test(nodejs): add some websocket test
DylanJiang11 Feb 15, 2025
a82cbdf
feat(nodejs): update ts export
ISAAC-XXYYZZ Feb 17, 2025
dd6c746
feat(nodejs): fix api
ISAAC-XXYYZZ Feb 18, 2025
72db439
test(nodejs): add some websocket test
DylanJiang11 Feb 18, 2025
a820253
feat(nodejs): fix websocket export
ISAAC-XXYYZZ Feb 18, 2025
8bfd6a0
feat(nodejs): add more example and export ws interface
ISAAC-XXYYZZ Feb 19, 2025
5bc9b7e
feat(nodejs): remove extra log
DylanJiang11 Feb 20, 2025
dbcadde
test(nodejs): update test for private channel
ISAAC-XXYYZZ Feb 20, 2025
71a21cb
feat(nodejs): add ci
ISAAC-XXYYZZ Feb 20, 2025
390adae
Merge branch 'main' into dev
ISAAC-XXYYZZ Feb 20, 2025
4cca16a
feat(nodejs): add comment
ISAAC-XXYYZZ Feb 21, 2025
6c37c4c
feat(nodejs): modify some todo
DylanJiang11 Feb 21, 2025
120cae8
feat(nodejs):send data to work directly
DylanJiang11 Feb 21, 2025
312944b
feat(nodejs): update js doc
ISAAC-XXYYZZ Feb 21, 2025
9192e8f
feat(nodejs): add read buffer
DylanJiang11 Feb 21, 2025
2ecdaf0
fix(nodejs):fix duplicated
DylanJiang11 Feb 21, 2025
e51c413
fix(nodejs):ack event memory leak
DylanJiang11 Feb 21, 2025
4b92dfd
fix(nodejs):fix clean resource
DylanJiang11 Feb 21, 2025
84f4a1f
fix(nodejs):move buffer in client
DylanJiang11 Feb 21, 2025
251b98c
feat(nodejs): update websocket implements
ISAAC-XXYYZZ Feb 24, 2025
5cc8e1d
feat(nodejs): update websocket implements
ISAAC-XXYYZZ Feb 25, 2025
5a5c5db
feat(nodejs): update websocket implements
ISAAC-XXYYZZ Feb 25, 2025
dd683b8
feat(nodejs): update model
ISAAC-XXYYZZ Feb 25, 2025
f611913
feat(nodejs): update websocket option
ISAAC-XXYYZZ Feb 25, 2025
21f444b
feat(nodejs): add more tests
ISAAC-XXYYZZ Feb 26, 2025
6e1305e
feat(nodejs): fix logs
ISAAC-XXYYZZ Feb 26, 2025
35ff71f
doc(nodejs): update readme
ISAAC-XXYYZZ Feb 26, 2025
6a47cf9
Merge pull request #17 from Kucoin/dev
ISAAC-XXYYZZ Feb 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
50 changes: 50 additions & 0 deletions .github/workflows/upload-nodejs-sdk-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Upload Nodejs SDK Package

on:
workflow_dispatch:
inputs:
publish:
description: "Publish Nodejs SDK to NPM"
required: false
default: "false"

permissions:
contents: read
packages: write
id-token: write

jobs:
release-build:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'
cache: 'npm'
cache-dependency-path: sdk/node/package-lock.json

- name: Install Dependencies
working-directory: sdk/node
run: npm ci

- name: Build Project
working-directory: sdk/node
run: npm run build

- name: Dry Run Package Publishing
if: github.event.inputs.publish == 'false'
working-directory: sdk/node
run: npm publish --dry-run

- name: Publish Package to npm
if: github.event.inputs.publish == 'true'
working-directory: sdk/node
run: npm publish --provenance --access public --tag latest
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
9 changes: 8 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,28 @@ RUN --mount=type=cache,target=/root/.m2,sharing=locked mvn -U clean package -Dsk
# build tools
FROM openapitools/openapi-generator-cli:v7.7.0

RUN apt-get update && apt-get install python3 python3-pip python3.8-venv -y
RUN apt-get update && apt-get install python3 python3-pip python3.8-venv nodejs npm -y
RUN pip install yapf
ENV GOLANG_VERSION=1.22.2
RUN curl -OL https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz && \
tar -C /usr/local -xzf go${GOLANG_VERSION}.linux-amd64.tar.gz && \
rm go${GOLANG_VERSION}.linux-amd64.tar.gz
WORKDIR /APP
COPY --from=generator-builder /build/target/sdk-openapi-generator-1.0.0.jar /opt/openapi-generator/modules/openapi-generator-cli/target/openapi-generator-cli.jar

# node & npm
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
RUN npm install -g prettier

ENV CGO_ENABLED=0
ENV PATH="/usr/local/go/bin:$PATH"
ENV GOPATH="/go"
ENV PATH="$GOPATH/bin:$PATH"

ENV GO_POST_PROCESS_FILE="/usr/local/go/bin/gofmt -w"
ENV PYTHON_POST_PROCESS_FILE="/usr/local/bin/yapf -i"
ENV TS_POST_PROCESS_FILE="/usr/bin/prettier --write --semi --single-quote --tab-width 4 --trailing-comma all --bracket-spacing --arrow-parens always --end-of-line lf --print-width 100"

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

Expand Down
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,12 @@ define generate-code

@echo "$(GREEN)lang: $(lang), clean...$(NC)"
docker run --rm -v "${PWD}:/local" $(IMAGE_NAME):$(IMAGE_TAG) rm -rf $(outdir)

@echo "$(GREEN)lang: ${lang}, copy changelog...$(NC)"
docker run --rm -v "${PWD}:/local" $(IMAGE_NAME):$(IMAGE_TAG) cp /local/CHANGELOG.md /local/sdk/$(lang)

@make -f generate.mk generate lang=$(1) subdir=$(2)
@make -f generate.mk generate lang=$(1) subdir=$(2) USER_VERSION=$(3)

@echo "$(GREEN)lang: $(lang), clean...$(NC)"
docker run --rm -v "${PWD}:/local" $(IMAGE_NAME):$(IMAGE_TAG) rm -rf $(outdir)/.openapi-generator
docker run --rm -v "${PWD}:/local" $(IMAGE_NAME):$(IMAGE_TAG) rm -rf $(outdir)/.openapi-generator-ignore
Expand Down Expand Up @@ -97,6 +97,7 @@ generate: setup-logs
$(call generate-postman)
$(call generate-code,golang,/pkg/generate)
$(call generate-code,python,/kucoin_universal_sdk/generate)
$(call generate-code,node,/src/generate,v0.1.0-alpha)

.PHONY: gen-postman
gen-postman: preprocessor
Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ go get github.com/Kucoin/kucoin-universal-sdk/sdk/golang
go mod tidy
```

### Node.js Installation (`0.1.0-alpha`)
Note: This SDK is currently in the Alpha phase. We are actively iterating and improving its features, stability, and documentation. Feedback and contributions are highly encouraged to help us refine the SDK.
```bash
npm install kucoin-universal-sdk
```

### Postman Installation
Visit the [KuCoin API Collection on Postman](https://www.postman.com/kucoin-api/kucoin-api/overview)

Expand Down Expand Up @@ -124,6 +130,7 @@ For other languages, refer to the [Examples](#-examples) section.
- Official Documentation: [KuCoin API Docs](https://www.kucoin.com/docs-new)
- **[Python Documentation](sdk/python/README.md)**
- **[Go Documentation](sdk/golang/README.md)**
- **[Node.js Documentation](sdk/node/README.md)**
- **[Postman Documentation](sdk/postman/README.md)**

## 📂 Examples
Expand All @@ -132,7 +139,8 @@ Find usage examples for your desired language by selecting the corresponding lin
| Language | Example Directory |
|----------|--------------------------------------------|
| Python | [sdk/python/examples/](sdk/python/example/)|
| Go | [sdk/go/examples/](sdk/golang/example/) |
| Go | [sdk/go/examples/](sdk/golang/example/) |
| Node.js | [sdk/node/examples/](sdk/node/example/) |

## 📋 Changelog

Expand Down
9 changes: 6 additions & 3 deletions generate.mk
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
IMAGE_NAME=sdk-tools
IMAGE_TAG=1.0
VERSION := $(shell cat VERSION)
DATE := $(shell date +%Y-%m-%d)

FILE_VERSION := $(shell cat VERSION)
USER_VERSION ?=
VERSION := $(if $(USER_VERSION),$(USER_VERSION),$(FILE_VERSION))

RED=\033[0;31m
GREEN=\033[0;32m
NC=\033[0m
Expand Down Expand Up @@ -54,7 +57,7 @@ define generate-entry
-g $(2)-sdk \
-o $(3) \
--skip-validate-spec \
--additional-properties=GEN_MODE=entry,API_VERSION=$(VERSION),API_DATE=$(DATE) > logs/$(service)-$(lang)-entry.log 2>&1 || \
--additional-properties=GEN_MODE=entry,API_VERSION=$(VERSION),API_DATE=$(DATE),CSV_PATH=/local/spec > logs/$(service)-$(lang)-entry.log 2>&1 || \
{ echo "$(RED)Entry Task $(service) for $(lang) failed$(NC)"; exit 1; }
endef

Expand Down Expand Up @@ -90,7 +93,7 @@ WS_FILES := $(wildcard ./spec/ws/*.json)
generate-postman:
$(call generate-postman-func)

generate: $(patsubst ./spec/rest/api/%.json,generate-rest-%, $(REST_FILES)) $(patsubst ./spec/rest/entry/%.json,generate-entry-%, $(ENTRY_FILES)) $(patsubst ./spec/ws/%.json,generate-ws-%, $(WS_FILES))
generate: $(patsubst ./spec/rest/api/%.json,generate-rest-%, $(REST_FILES)) $(patsubst ./spec/ws/%.json,generate-ws-%, $(WS_FILES)) $(patsubst ./spec/rest/entry/%.json,generate-entry-%, $(ENTRY_FILES))

generate-rest-%: ./spec/rest/api/%.json | force
$(eval service=$*)
Expand Down
8 changes: 8 additions & 0 deletions generator/plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<maven.shade.plugin.version>3.2.4</maven.shade.plugin.version>
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
<ascii-table.version>1.8.0</ascii-table.version>
<csv.version>5.7.1</csv.version>
</properties>

<dependencies>
Expand All @@ -36,6 +37,12 @@
<version>${ascii-table.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>${csv.version}</version>
<scope>compile</scope>
</dependency>
</dependencies>


Expand Down Expand Up @@ -67,6 +74,7 @@
<includes>
<include>org.openapitools:openapi-generator-cli</include>
<include>com.github.freva:ascii-table</include>
<include>com.opencsv:opencsv</include>
</includes>
</artifactSet>
<transformers>
Expand Down
Loading
Loading