plugins-context.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import type { VbenPluginsOptions } from "./types";
  2. let globalPluginsOptions: VbenPluginsOptions | null = null;
  3. export function providePluginsOptions(options: VbenPluginsOptions) {
  4. if (!globalPluginsOptions) {
  5. globalPluginsOptions = options;
  6. return;
  7. }
  8. globalPluginsOptions = {
  9. ...globalPluginsOptions,
  10. ...options,
  11. form: globalPluginsOptions.form && options.form
  12. ? { ...globalPluginsOptions.form, ...options.form }
  13. : globalPluginsOptions.form || options.form,
  14. modal: globalPluginsOptions.modal && options.modal
  15. ? { ...globalPluginsOptions.modal, ...options.modal }
  16. : globalPluginsOptions.modal || options.modal,
  17. message: globalPluginsOptions.message && options.message
  18. ? { ...globalPluginsOptions.message, ...options.message }
  19. : globalPluginsOptions.message || options.message,
  20. components: {
  21. ...globalPluginsOptions.components,
  22. ...options.components,
  23. },
  24. };
  25. }
  26. export function injectPluginsOptions() {
  27. return globalPluginsOptions;
  28. }
  29. export function resetPluginsOptions() {
  30. globalPluginsOptions = null;
  31. }