Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shevernitskiy/cdek
📦CDEK api client
https://github.com/shevernitskiy/cdek
Last synced: about 2 months ago
JSON representation
📦CDEK api client
- Host: GitHub
- URL: https://github.com/shevernitskiy/cdek
- Owner: shevernitskiy
- License: mit
- Created: 2023-03-08T15:30:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-19T07:35:14.000Z (4 months ago)
- Last Synced: 2024-11-08T21:07:16.791Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 70.3 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CDEK API client
[![npm](https://img.shields.io/npm/v/cdek?logo=npm&style=flat&labelColor=000)](https://www.npmjs.com/package/cdek)
[![deno module](https://shield.deno.dev/x/cdek)](https://deno.land/x/cdek/mod.ts)
[![JSR](https://jsr.io/badges/@shevernitskiy/cdek)](https://jsr.io/@shevernitskiy/cdek)
![dependencies](https://img.shields.io/badge/dependencies-0-green?style=flat&labelColor=000)
[![license](https://img.shields.io/github/license/shevernitskiy/amo?style=flat&labelColor=000)](https://github.com/shevernitskiy/cdek/blob/main/LICENSE)This is fully-typed simple wrapper for CDEK REST api v2. It covers almost all api structure pretty precise. Use official
[docs](https://api-docs.cdek.ru/33828739.html) to read about methods.## Installation
For Node.js
```powershell
npm i cdek
``````
npx jsr add @shevernitskiy/cdek
```For Deno
```powershell
deno add @shevernitskiy/cdek
```## Usage
Example for Deno.
```ts
import { ApiError, Cdek, HttpError } from "https://deno.land/x/[email protected]/mod.ts";const client = new Cdek({
account: "EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI",
password: "PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG",
url_base: "https://api.edu.cdek.ru/v2", // forced to use testing endpoint in this case
});try {
const data = await client.getRegions({ country_codes: ["TH"], size: 1 });
console.log(data);const data2 = await client.getOrderByUUID("72753033-1cf5-447c-a420-c29f4b488ac6");
console.log(data2);
} catch (err) {
if (err instanceof ApiError) { // returned in case of Api Error like invalid data, contains api message
console.error(err.response);
} else if (err instanceof HttpError) { // returned in case of method not found
console.error(err);
} else {
console.error("Unknown Error", err);
}
}
```## Webhook
You could handle incoming webhooks.
```ts
import { Cdek } from "https://deno.land/x/[email protected]/mod.ts";const client = new Cdek(...);
client.on("ORDER_STATUS", (ctx) => console.log(ctx.attributes.code));
Deno.serve(client.webhookHandler(), { port: 6767 });
```## Contribution
Pull request, issues and feedback are very welcome. Code style is formatted with `deno fmt`.
## License
Copyright 2023, shevernitskiy. MIT license.