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>
63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
/* eslint-disable no-console */
|
|
|
|
import { createPinia } from 'pinia';
|
|
import { createApp } from 'vue';
|
|
import { version } from '../package.json';
|
|
import App from './app.vue';
|
|
import { registerComponents } from './components/register';
|
|
import { DIRECTUS_LOGO } from './constants';
|
|
import { registerDirectives } from './directives/register';
|
|
import { i18n } from './lang/';
|
|
import { router } from './router';
|
|
import './styles/main.scss';
|
|
import { registerViews } from './views/register';
|
|
import { loadExtensions, registerExtensions } from './extensions';
|
|
|
|
init();
|
|
|
|
async function init() {
|
|
console.log(DIRECTUS_LOGO);
|
|
console.info(
|
|
`Hey! Interested in helping build this open-source data management platform?\nIf so, join our growing team of contributors at: https://directus.chat`
|
|
);
|
|
|
|
if (import.meta.env.DEV) {
|
|
console.info(`%c🐰 Starting Directus v${version}...`, 'color:Green');
|
|
} else {
|
|
console.info(`%c🐰 Starting Directus...`, 'color:Green');
|
|
}
|
|
|
|
console.time('🕓 Application Loaded');
|
|
|
|
const app = createApp(App);
|
|
|
|
app.use(router);
|
|
app.use(i18n);
|
|
app.use(createPinia());
|
|
|
|
registerDirectives(app);
|
|
registerComponents(app);
|
|
registerViews(app);
|
|
|
|
await loadExtensions();
|
|
|
|
registerExtensions(app);
|
|
|
|
app.mount('#app');
|
|
|
|
console.timeEnd('🕓 Application Loaded');
|
|
|
|
console.group(`%c✨ Project Information`, 'color:DodgerBlue'); // groupCollapsed
|
|
|
|
if (import.meta.env.DEV) {
|
|
console.info(`%cVersion: v${version}`, 'color:DodgerBlue');
|
|
}
|
|
|
|
console.info(`%cEnvironment: ${import.meta.env.MODE}`, 'color:DodgerBlue');
|
|
console.groupEnd();
|
|
|
|
// Prevent the browser from opening files that are dragged on the window
|
|
window.addEventListener('dragover', (e) => e.preventDefault(), false);
|
|
window.addEventListener('drop', (e) => e.preventDefault(), false);
|
|
}
|