Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jacoborus/directus-lite-sdk
The unofficial Directus Lite SDK in less than 1Kb
https://github.com/jacoborus/directus-lite-sdk
client directus javascript rest rest-api sdk typescript
Last synced: about 1 month ago
JSON representation
The unofficial Directus Lite SDK in less than 1Kb
- Host: GitHub
- URL: https://github.com/jacoborus/directus-lite-sdk
- Owner: jacoborus
- License: mit
- Created: 2022-04-24T02:40:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-05-01T01:09:52.000Z (over 2 years ago)
- Last Synced: 2024-04-25T12:01:28.501Z (8 months ago)
- Topics: client, directus, javascript, rest, rest-api, sdk, typescript
- Language: TypeScript
- Homepage:
- Size: 21.5 KB
- Stars: 19
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-directus - Lite SDK (TypeScript) - Query builder for the Directus API (Browser, Deno, Node.js). Bring your own fetch. (Integration / Community)
- awesome-directus - Lite SDK (TypeScript) - Query builder for the Directus API (Browser, Deno, Node.js). Bring your own fetch. (Integration / Community)
README
# directus-lite-sdk
The unofficial [Directus](https://directus.io/) Lite SDK in less than 1Kb
- ~750 bytes
- It works on the browser, Deno and Node.js
- Bring your own fetch## Install
Node.js: `npm i directus-lite-sdk`
Deno: -- just import it on your file
## Usage
Create a new instance of the SDK passing the URL of your Directus API:
```js
// 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`.
### `query`
Accepts 2 arguments: the path of your request, and an optional object containing
the global params, and the `access_token`:```js
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:
```typescript
interface QueryOptions {
access_token?: string;
filter?: DeepParam;
fields?: string | string[];
sort?: string | string[];
search?: string;
limit?: number;
offset?: number;
page?: number;
aggregate?: Record;
deep?: DeepParam;
alias?: Record;
export?: "json" | "csv" | "xml";
meta?: "total_count" | "filter_count" | "*";
}interface DeepParam {
[key: string]: string | number | DeepParam;
}
```Check [Global Query Parameters](https://docs.directus.io/reference/query/) on
Directus docs for more info### `fileUrl`
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.```js
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:
```typescript
{
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](https://docs.directus.io/reference/files/#requesting-a-thumbnail)
on the Directus docs for more info about custom and advanced transformations## Test
Use Deno
```sh
deno test
```© 2022 [Jacobo Tabernero Rey](https://github.com/jacoborus) - Released under
[MIT License](https://raw.github.com/jacoborus/hexterm/master/LICENSE)