mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* Add bundle type to constants and types * Add support for API bundle extensions * Rename generateExtensionsEntry to generateExtensionsEntrypoint * Add support for App bundle extensions * Refactor App extension registration * Replace extensions inject with useExtensions() * Replace getInterfaces() with useExtensions() * Replace getDisplays() with useExtensions() * Replace getLayouts() with useExtensions() * Replace getModules() with useExtensions() * Replace getPanels() with useExtensions() * Replace getOperations() with useExtensions() * Add useExtension() composable * Replace useExtensions() with useExtension() where applicable * Remove interface getters * Remove display getters * Remove layout getters * Remove module getter * Remove panel getters * Remove operation getters * Rename extension register.ts files to index.ts * Perform module pre register check in parallel * Remove Refs from AppExtensionConfigs type * Remove old extension shims * Ensure registration of modules is awaited when hydrating * Add support for scaffolding package extensions * Add support for building bundle extensions * Add JsonValue type * Use json for complex command line flags * Load internal extensions if custom ones are not available * Fix extension manifest validation for pack extensions * Fix tests in shared * Add SplitEntrypoint type * Move command specific utils to helpers * Add SDK version getter * Move extension dev deps generation to helpers * Move template path to getter util * Move template copying to a helper * Only rename copied template files * Add directus-extension add command * Convert provided extension source path to url * Replace deprecated import.meta.globEager * Mock URL.createObjectURL to make App unit tests pass * Update rollup-plugin-typescript2 * indentation * sort vite glob imported modules * fix unintentional wrong commit * Simplify app extension import logic * reinstall @rollup/plugin-virtual * add test for getInterfaces() expected sort order Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
37 lines
900 B
JavaScript
Executable File
37 lines
900 B
JavaScript
Executable File
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
const inquirer = require('inquirer');
|
|
const { EXTENSION_LANGUAGES, EXTENSION_PACKAGE_TYPES, EXTENSION_TYPES } = require('@directus/shared/constants');
|
|
const { create } = require('@directus/extensions-sdk/cli');
|
|
|
|
run();
|
|
|
|
async function run() {
|
|
// eslint-disable-next-line no-console
|
|
console.log('This utility will walk you through creating a Directus extension.\n');
|
|
|
|
const { type, name, language } = await inquirer.prompt([
|
|
{
|
|
type: 'list',
|
|
name: 'type',
|
|
message: 'Choose the extension type',
|
|
choices: EXTENSION_PACKAGE_TYPES,
|
|
},
|
|
{
|
|
type: 'input',
|
|
name: 'name',
|
|
message: 'Choose a name for the extension',
|
|
},
|
|
{
|
|
type: 'list',
|
|
name: 'language',
|
|
message: 'Choose the language to use',
|
|
choices: EXTENSION_LANGUAGES,
|
|
when: ({ type }) => EXTENSION_TYPES.includes(type),
|
|
},
|
|
]);
|
|
|
|
await create(type, name, { language });
|
|
}
|