From 0325a2ac967f67114651d7b3e17f4df901b4b388 Mon Sep 17 00:00:00 2001 From: wojtek-krysiak Date: Fri, 7 Aug 2020 12:10:44 +0200 Subject: [PATCH] fix: move RegisteredAdapters to globak scope --- src/admin-bro.spec.ts | 4 ++-- src/admin-bro.ts | 8 +++----- vendor-types/node/node.d.ts | 1 + yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/admin-bro.spec.ts b/src/admin-bro.spec.ts index ed08de7b3..66a2870c6 100644 --- a/src/admin-bro.spec.ts +++ b/src/admin-bro.spec.ts @@ -10,7 +10,7 @@ import { OverridableComponent } from './frontend/utils/overridable-component' describe('AdminBro', function () { beforeEach(function () { - AdminBro.registeredAdapters = [] + global.RegisteredAdapters = [] }) describe('#constructor', function () { @@ -28,7 +28,7 @@ describe('AdminBro', function () { it('adds given adapter to list off all available adapters', function () { AdminBro.registerAdapter(this.DatabaseAdapter) - expect(AdminBro.registeredAdapters).to.have.lengthOf(1) + expect(global.RegisteredAdapters).to.have.lengthOf(1) }) it('throws an error when adapter is not full', function () { diff --git a/src/admin-bro.ts b/src/admin-bro.ts index 4854a88d8..45ed37ec7 100644 --- a/src/admin-bro.ts +++ b/src/admin-bro.ts @@ -78,8 +78,6 @@ class AdminBro { public translateFunctions!: TranslateFunctions - public static registeredAdapters: Array - /** * Contains set of routes available within the application. * It is used by external plugins. @@ -182,7 +180,7 @@ class AdminBro { this.initI18n() const { databases, resources } = this.options - const resourcesFactory = new ResourcesFactory(this, AdminBro.registeredAdapters) + const resourcesFactory = new ResourcesFactory(this, global.RegisteredAdapters || []) this.resources = resourcesFactory.buildResources({ databases, resources }) } @@ -231,7 +229,8 @@ class AdminBro { } // checking if both Database and Resource have at least isAdapterFor method if (Database.isAdapterFor && Resource.isAdapterFor) { - AdminBro.registeredAdapters.push({ Database, Resource }) + global.RegisteredAdapters = global.RegisteredAdapters || [] + global.RegisteredAdapters.push({ Database, Resource }) } else { throw new Error('Adapter elements has to be a subclass of AdminBro.BaseResource and AdminBro.BaseDatabase') } @@ -365,7 +364,6 @@ class AdminBro { } } -AdminBro.registeredAdapters = [] AdminBro.VERSION = VERSION // eslint-disable-next-line @typescript-eslint/no-empty-interface diff --git a/vendor-types/node/node.d.ts b/vendor-types/node/node.d.ts index 47f5e2ede..455f7146d 100644 --- a/vendor-types/node/node.d.ts +++ b/vendor-types/node/node.d.ts @@ -3,5 +3,6 @@ type UserComponentsMap = {[key: string]: string} declare namespace NodeJS { interface Global { UserComponents: UserComponentsMap | null; + RegisteredAdapters: Array | null; } } diff --git a/yarn.lock b/yarn.lock index b2500d575..a41b966fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@admin-bro/design-system@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@admin-bro/design-system/-/design-system-1.3.2.tgz#ec409d189b5112dd27f8ece974f2a7252c6db8c7" - integrity sha512-uwPiOLYgqlEwBnaCmKh0FXdhsDZ4HNIVkCBXzEW9U2SNcccZprYFYE0r2W5m7j2A9yVTPnAwKrwzrYjSGe0OBw== +"@admin-bro/design-system@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@admin-bro/design-system/-/design-system-1.3.3.tgz#a57d44988ec9501e7f199a49cad4f2b0180b9be1" + integrity sha512-sZ1ocow6pU5JuNA1mW4u8Sg82CEeT3jbD/GhSGzl4ct58A/iXC7uBoN6KvM/rqR+Fzk2T/EMh4ZCpEDh3Yp6Cw== dependencies: "@carbon/icons-react" "^10.14.0" jw-paginate "^1.0.4"