The unofficial Directus Lite SDK in less than 1Kb
- ~750 bytes
- It works on the browser, Deno and Node.js
- Bring your own fetch
Node.js: npm i directus-lite-sdk
Deno: -- just import it on your file
Create a new instance of the SDK passing the URL of your Directus API:
// Deno
import DirectusLiteSdk from "https://deno.land/x/directus_lite_sdk/lite-sdk.ts";
// Node
import DirectusLiteSdk from "directus-lite-sdk";
const sdk = new DirectusLiteSdk("your-api-url.com");
This instance exposes 2 methods: query
and fileUrl
.
Accepts 2 arguments: the path of your request, and an optional object containing
the global params, and the access_token
:
fetch(
sdk.query("items/articles", {
fields: [
"id",
"title",
"author.name",
],
search: "text",
limit: 30,
page: 4,
filter: {
project: {
_eq: "lite-sdk",
},
"year(pubdate)": 2022,
},
}),
);
Query options:
interface QueryOptions {
access_token?: string;
filter?: DeepParam;
fields?: string | string[];
sort?: string | string[];
search?: string;
limit?: number;
offset?: number;
page?: number;
aggregate?: Record<string, string>;
deep?: DeepParam;
alias?: Record<string, string>;
export?: "json" | "csv" | "xml";
meta?: "total_count" | "filter_count" | "*";
}
interface DeepParam {
[key: string]: string | number | DeepParam;
}
Check Global Query Parameters on Directus docs for more info
Get the full path of a file. Receives the id of the file, and optionally 2 more
arguments, the first one is an object containing the access_token
and custom
transformations; the second is an array containing the advanced transformations.
const imageUrl = sdk.fileUrl(
"1234-abcd",
{
fit: "cover",
width: 100,
format: "jpg",
},
[
["blur", 45],
["tint", "rgba(255, 0, 0)"],
["expand", { "right": 200, "bottom": 150 }],
],
);
FileUrl options:
{
access_token?: string;
key?: string;
fit?: "cover" | "contain" | "inside" | "outside";
width?: number;
height?: number;
quality?: number;
withoutEnlargement?: boolean;
format?: "jpg" | "png" | "webp" | "tiff";
}
Check Requesting a Thumbnail on the Directus docs for more info about custom and advanced transformations
Use Deno
deno test
© 2022 Jacobo Tabernero Rey - Released under MIT License