Files
directus/packages/sdk-js
2020-10-24 13:50:36 +02:00
..
2020-10-24 13:40:27 +02:00
2020-10-24 13:50:36 +02:00
2020-10-24 13:40:23 +02:00
2020-10-24 13:40:27 +02:00
2020-10-24 13:40:27 +02:00
2020-10-21 18:21:05 +02:00
2020-10-24 13:40:27 +02:00

Directus JS SDK

[WIP] v9

To-Do

  • Items
    • Create
    • Read
    • Update
    • Delete
  • Activity
    • Read
    • Create Comment
    • Update Comment
    • Delete Comment
  • Assets??? (not sure if needed)
    • Read
  • Auth
    • Login
    • Refresh
    • Logout
    • Request Password Reset
    • Reset Password
    • oAuth
      • Get available providers
      • Login with provider
  • Collections
    • Create
    • Read
    • Update
    • Delete
  • Extensions??? (not sure if needed)
    • Read
  • Fields
    • Create
    • Read
    • Update
    • Delete
  • Files
    • Create (upload)
    • Read
    • Update
    • Delete
  • Folders
    • Create
    • Read
    • Update
    • Delete
  • GraphQL??? (not sure if needed)
    • Run
  • Permissions
    • Create
    • Read
    • Update
    • Delete
  • Presets
    • Create
    • Read
    • Update
    • Delete
  • Relations
    • Create
    • Read
    • Update
    • Delete
  • Revisions
    • Create
    • Read
    • Update
    • Delete
  • Roles
    • Create
    • Read
    • Update
    • Delete
  • Server
    • Specs
      • OAS
    • Ping
    • Info
  • Settings
    • Read
    • Update
  • Users
    • Create
    • Read
    • Update
    • Delete
    • Invite
    • Accept Invite
    • Enable TFA
    • Disable TFA
  • Utils
    • Get random string
    • Hash a value
    • Verify a hashed value
    • Sort in collection
    • Revert revision

Installation

npm install @directus/sdk-js

Usage

import DirectusSDK from '@directus/sdk-js';

const directus = new DirectusSDK('https://api.example.com/');

directus.items('articles').read(15);

Docs

NOTE All methods return promises. Make sure to await methods, for example:

import DirectusSDK from '@directus/sdk-js';

const directus = new DirectusSDK('https://api.example.com/');

async function getData() {
	await directus.auth.login({ email: 'admin@example.com', password: 'password' });
	return await directus.items('articles').read();
}

Global SDK

Initialize

import DirectusSDK from '@directus/sdk-js';

const directus = new DirectusSDK('https://api.example.com/');

Get / set API URL

// Get the used API base URL
console.log(directus.url);
// => https://api.example.com/

// Set the API base URL
directus.url = 'https://api2.example.com';

Items

Create

// Create an item
directus.items('articles').create({
	title: 'My New Article'
});

// Create multiple items
directus.items('articles').create([
	{
		title: 'My First Article'
	},
	{
		title: 'My Second Article'
	},
]);

Read

// Get all
directus.items('articles').read();

// Get item by ID (w/ optional query)
directus.items('articles').read(15);
directus.items('articles').read(15, { fields: ['title'] });

// Get items by IDs (w/ optional query)
directus.items('articles').read([15, 42]);
directus.items('articles').read([15, 42], { fields: ['title' ]});

// Get items by search query params
directus.items('articles').read({
	search: 'Directus',
	filter: {
		date_published: {
			_gte: '$NOW'
		}
	}
});

Update

// Update an item (w/ optional query)
directus.items('articles').update(15, {
	title: 'An Updated title'
});
directus.items('articles').update(
	15,
	{ title: 'An Updated title' },
	{ fields: ['title'] }
);

// Update multiple items to the same value (w/ optional query)
directus.items('articles').update([15, 42], {
	title: 'An Updated title'
});
directus.items('articles').update(
	[15, 42],
	{ title: 'An Updated title' },
	{ fields: ['title'] }
);

// Update multiple items to multiple values (w/ optional query)
directus.items('articles').update([
	{
		id: 15,
		title: 'Article 15',
	},
	{
		id: 42,
		title: 'Article 42',
	},
]);
directus.items('articles').update([
	{
		id: 15,
		title: 'Article 15',
	},
	{
		id: 42,
		title: 'Article 42',
	},
], { fields: ['title'] });

// Update by query
directus.items('articles').update(
	{ title: 'An Updated title' },
	{ filter: { title: 'An Old Title' }}
);

Delete

// Delete an item
directus.items('articles').delete(15);

// Delete multiple items
directus.items('articles').delete([15, 42]);

Bunch of others go here


Server

Specs

OAS
// Get the OAS specs for the current API instance
directus.server.specs.oas();

Ping

directus.server.ping();

Info

directus.server.info();

Settings

Users


Utils

Random

// Get a random string (w/ optional length)
directus.utils.random.string();
directus.utils.random.string(42);

Hash

// Generate a hash for a string
directus.utils.hash.generate('Hello World');

// Verify if a hash is valid
directus.utils.hash.verify('$argon2.hash', 'Hello World');

Sort

// Re-sort a collection based on a start / end position
directus.utils.sort('articles', 15, 42);

Revert

// Revert a given revision
directus.utils.revert(13);