mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* merge components merge args, parser, docs, formatter, help and handlers * change directus command and add auto debug * output format fixes * adds back some reformatted and documented commands * better help output format * refactor all output flow * export cli types * more formatting fixes and param rework * fix table spacing * add yaml formatting and fix string colors * finished formatting docs * remove log * remove package-lock * update dependency versions * fix command description * workaround typescript loading * module loading fixes added command error rename human to table fix disconnect usage * add typescript loader redirect execution to local package if installed locally added command alias `directus-ctl` * fix module load directories * reimplement stdin pipe to work on linux * fix sdk server info type * info command * Fix stdin bug Disable community extensions to discourage use for now Added template to config files Added password stdin to connect to instances Fixed typescript command load * Added command suggestions and QOL features * Linter fixes * Add command hints * Separate positional options * Add back delete many, fix delete one location * Change score logic * Add whoami util command * Add short online docs * Fix typo * Fix typo * Update commands * Param consistency fix and docs update * Create commands * Update package.json version * Update package-lock * Fixed several linting problems * Update dependencies * Update lock * Remove locked dependencies * Stop conflicts when in home directory * Package lock update and npm audit fix * Fix formatting errors * Comment out extending cli section until we figure out cli ext * Update readme * Tweak dev/build/prebuild script naming * Use up to date deps * Fix dependency version in lock (fix build) Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { Directus } from '@directus/sdk';
|
|
import { Toolbox } from '../../toolbox';
|
|
import { CLIRuntimeError } from '../exceptions';
|
|
import { InstanceStorage } from '../sdk/storage';
|
|
|
|
export default (toolbox: Toolbox): void => {
|
|
toolbox.sdk = new Directus('http://localhost:8055');
|
|
|
|
toolbox.options.feature('sdk', (builder) => {
|
|
return builder.option('instance', {
|
|
default: toolbox.config.project.data.instance || 'default',
|
|
description: 'The instance name the command should use to talk to Directus api.',
|
|
});
|
|
});
|
|
|
|
toolbox.events.on('command.execute.before', async (command, options) => {
|
|
if (!command.settings?.features?.sdk) {
|
|
return;
|
|
}
|
|
|
|
const instances = toolbox.config.system.data.instances;
|
|
if (!(options.instance in instances)) {
|
|
throw new CLIRuntimeError(`Unknown instance: ${options.instance}`);
|
|
}
|
|
|
|
const instance = toolbox.config.system.data.instances[options.instance]!;
|
|
const sdk = new Directus(instance.endpoint, {
|
|
storage: new InstanceStorage(options.instance, toolbox.config.system),
|
|
});
|
|
|
|
if (instance?.auth === 'token') {
|
|
await sdk.auth.static(instance.data?.auth_token);
|
|
} else if (instance?.auth === 'credentials') {
|
|
await sdk.auth.refresh(true);
|
|
toolbox.config.system.save();
|
|
}
|
|
|
|
toolbox.sdk = sdk;
|
|
});
|
|
};
|