This is fully-typed simple wrapper for CDEK REST api v2. It covers almost all api structure pretty precise. Use official docs to read about methods.
For Node.js
npm i cdek
npx jsr add @shevernitskiy/cdek
For Deno
deno add @shevernitskiy/cdek
Example for Deno.
import { ApiError, Cdek, HttpError } from "https://deno.land/x/cdek@1.0.9/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);
}
}
You could handle incoming webhooks.
import { Cdek } from "https://deno.land/x/cdek@v1.0.4/mod.ts";
const client = new Cdek(...);
client.on("ORDER_STATUS", (ctx) => console.log(ctx.attributes.code));
Deno.serve(client.webhookHandler(), { port: 6767 });
Pull request, issues and feedback are very welcome. Code style is formatted with deno fmt
.
Copyright 2023, shevernitskiy. MIT license.